ws-savan-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Jonsen <>
Subject Re: import header migration from Apache SOAP to Axis2
Date Sat, 06 Mar 2010 02:44:21 GMT
Thank you Martin,

I can't imagine that RPC would be a requirement in this case; it's probably just what was
easier to use in 2001.  I am simply trying to get the code below to build.  If there is a
newer/better way to do this using Axis2 with minimal changes, that may be easier than downgrading
just for RPC capability.  Any thoughts on how to get the code below to compile would be greatly

Dan Jonsen

Security Software Solutions


 * Copyright (c) 2001 Ethan Cerami.  All rights reserved.
 * This code is from the book XML Web Services Essentials.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
package com.ecerami.soap;

 * "Hello, SOAP!" SOAP Client
 * usage:  java HelloClient first_name
import java.util.Vector;
import org.apache.soap.SOAPException;
import org.apache.soap.Fault;
import org.apache.soap.Constants;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;

public class HelloClient {

   * Static Main method
  public static void main (String[] args) {
    String firstName = args[0];
    System.out.println ("Hello SOAP Client");
    HelloClient helloClient = new HelloClient();
    try {
      String greeting = helloClient.getGreeting(firstName);
      System.out.print (greeting);
    } catch (SOAPException e) {
      String faultCode = e.getFaultCode();
      String faultMsg = e.getMessage();
      System.err.println ("SOAPException Thrown (details below):");
      System.err.println ("FaultCode:  "+faultCode);
      System.err.println ("FaultMessage:  "+faultMsg);
    } catch (MalformedURLException e) {
      System.err.println (e);

   * getGreeting Method
  public String getGreeting (String firstName)
    throws SOAPException, MalformedURLException {

    //  Create SOAP RPC Call Object
    Call call = new Call ();

    // Set Encoding Style to standard SOAP encoding

    // Set Object URI and Method Name
    call.setTargetObjectURI ("urn:examples:helloservice");
    call.setMethodName ("sayHello");

    //  Set Method Parameters
    Parameter param = new Parameter("firstName", String.class,
      firstName, Constants.NS_URI_SOAP_ENC);

    Vector paramList = new Vector ();
    paramList.addElement (param);
    call.setParams (paramList);

    //  Set the URL for the Web Service
    URL url = new URL ("http://localhost:8080/soap/servlet/rpcrouter");

    // Invoke the Service
    Response resp = call.invoke (url, "");

    // Check for Faults
    if (!resp.generatedFault()) {
      // Extract Return value
      Parameter result = resp.getReturnValue ();
      String greeting = (String) result.getValue();
      return greeting;
    else {
      //  Extract Fault Code and String
      Fault f = resp.getFault();
      String faultCode = f.getFaultCode();
      String faultString = f.getFaultString();
      System.err.println("Fault Occurred (details follow):");
      System.err.println("Fault Code:  "+faultCode);
      System.err.println("Fault String:  "+faultString);
      return new String ("Fault Occurred.  No greeting for you!");


On Mar 5, 2010, at 9:11 PM, Martin Gainty wrote:

> axis2 document-literal style has progressed far beyond single RPC method with single
parameter roots
> if RPC *is a requirement* you may want to consider fallback to Axis 1.4 for RPC capability
> any reason why your requirement would prefer RPC over doc-literal type?
> Martin Gainty 
> ______________________________________________ 
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so
bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer
Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und
entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails
koennen wir keine Haftung fuer den Inhalt uebernehmen.
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire
prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe
quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information
seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les
email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune
responsabilité pour le contenu fourni.
> From:
> Subject: import header migration from Apache SOAP to Axis2
> Date: Fri, 5 Mar 2010 19:19:03 -0500
> To:
> I am new to web services in general, and to Java development (though I have done a lot
of C, C++, and C# development).  I am working through the book, "Web Services Essentials"
by Ethan Cerami, (c) 2002 O'Reilly.  I am trying to compile one of the examples in the text,
but since the book is so old, all of the packages it refers to are long since obsolete.  I
have installed JDK 6u18, Tomcat 6.0-24, Axis2 1.5.1, Xerces 2.9.1, Javamail 1.4.3, and Java
Activation Framework 1.1.1 on my (Vista Ultimate x64) system.  When I attempt to compile the
code, it complains about unresolved external references b/c the package names are obsolete.
 The offending import statements from the code are listed below.  I have resolved the first
3, but am still unable to do so for the last 3.
> import org.apache.soap.SOAPException;   // OK --> javax.xml.soap.SOAPException
> import org.apache.soap.Fault;           // OK --> javax.xml.soap.SOAPFault
> import org.apache.soap.Constants;       // OK --> javax.xml.soap.SOAPConstants
> import org.apache.soap.rpc.Call;        // still unresolved
> import org.apache.soap.rpc.Parameter;   // still unresolved
> import org.apache.soap.rpc.Response;    // still unresolved
> Does anyone know what the last 3 package names should be changed to in order to reference
equivalent classes in the Axis2 distribution?  
> Also, does anyone know which JARs in the Axis2 distribution need to be on the classpath
in order to compile this example?  Right now I have classpath set to include every JAR in
the "lib" directory of the Axis2 distribution (62 JARs), which I'd really like to cut down
on if I can.
> Thank you very much for any help you can provide
> Dan Jonsen
> Consultant, Security Software Solutions
> Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.

View raw message