2 Replies Latest reply on Jun 5, 2007 4:20 AM by Kapilesh

    javax.xml.rpc.JAXRPCException: Cannot obtain operation meta

    Kapilesh Newbie

      Hi Folks

      I am trying to resolve a problem a few days and I am stuck here. I am relatively new to webservices and trying to figure out what is the problem. I am using JBoss 4.0.5 GA which has bundled JBossWS 1.4. When I run a webservice client I get an error. Note: I have used "+++" to seperate peices of Source Code

      Will appreciate if some one could point me to the problem. I am assuming that there is a problem is with some mapping file ,because I am able to invoke the sayHello method via the second method . Also I read same kind of problem faced by another person,but had no reply posted
      http://lists.jboss.org/pipermail/jbossws-users/2007-January/001196.html
      Note - I picked up the server code from example stated in the URL below
      http://www.soapui.org/jbossws/topdown_example.html

      Thanks a ton in advance
      +++++++++++++++++++++++++++++++++++
      ERROR
      +++++++++++++++++++++++++++++++++++
      Contacting webservice at http://localhost:8080/HelloWorld
      output:Hello How are you, Kapilesh!
      Exception in thread "main" javax.xml.rpc.JAXRPCException: Cannot obtain operation meta data for: {http://localhost:8080/HelloWorld}sayHello
      at org.jboss.ws.jaxrpc.CallImpl.getOperationMetaData(CallImpl.java:840)
      at org.jboss.ws.jaxrpc.CallImpl.getOperationMetaData(CallImpl.java:820)
      at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:618)
      at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:404)
      at helloworld.client.HelloClient.main(HelloClient.java:50)
      +++++++++++++++++++++++++++++++++++++++++++++
      I am invoking the webservice in 2 ways . One fetching the remote interface and one use a CallImpl

      My client code is as follows :-
      +++++++++++++++++++++++++++++++++++++++++++++++

      package helloworld.client;

      import helloworld.*;

      import javax.xml.rpc.Service;
      import javax.xml.rpc.Call;
      import javax.xml.rpc.ServiceFactory;
      import org.jboss.ws.jaxrpc.ServiceImpl;
      import org.jboss.ws.jaxrpc.CallImpl;
      import org.jboss.ws.jaxrpc.encoding.*;
      import javax.xml.namespace.QName;

      import java.net.URL;

      public class HelloClient
      {
      public static void main(String[] args)
      throws Exception
      {
      String TARGET_NAMESPACE = "http://localhost:8080/HelloWorld";
      String argument = "Kapilesh";

      System.out.println("Contacting webservice at " + TARGET_NAMESPACE );
      ServiceFactory factory = ServiceFactory.newInstance();
      URL wsdlLoction = new URL(TARGET_NAMESPACE+"?wsdl");
      QName serviceName = new QName(TARGET_NAMESPACE,
      "HelloWorldService");


      ServiceImpl service = (ServiceImpl)factory.createService(wsdlLoction, serviceName);
      QName operationName = new QName(TARGET_NAMESPACE, "sayHello");
      //first method
      IHelloWorld hello = (IHelloWorld) service.getPort(IHelloWorld.class);

      // System.out.println("hello.hello(" + argument + ")");
      System.out.println("output:" + hello.sayHello(argument));




      CallImpl call = (CallImpl)service.createCall();
      call.setOperationName(operationName);

      // System.out.println(call.isParameterAndReturnSpecRequired(operationName));
      // second method
      Object retObj = call.invoke(new Object[]{argument});



      }
      }
      +++++++++++++++++++++++++++++++++++++++++++++++
      I have deployed a webservice on a server and I am able to deploy it sucessfully...
      15:08:30,968 WARN [PortComponentMetaData] <wsdl-port> element in webservices.xml not namespace qualified: HelloWorldPort
      15:08:31,437 WARN [JSR109ServerMetaDataBuilder] Adding wsdl targetNamespace to: {http://localhost:8080/HelloWorld/}HelloWorldPort
      15:08:31,812 INFO [TomcatDeployer] deploy, ctxPath=/HelloWorld, warUrl=.../tmp/deploy/tmp52320HelloWorld-exp.war/
      15:08:32,062 INFO [WSDLFilePublisher] WSDL published to: file:/C:/jboss-4.0.5.GA/server/default/data/wsdl/HelloWorld.war/HelloWorld.wsdl
      15:08:32,093 INFO [ServiceEndpointManager] WebService started: http://localhost:8080/HelloWorld
      ++++++++++++++++++++++++++++++++++++++++++++++++
      On the server side I have the following files deployed



      WEB-INF/classes/helloworld/HelloWorldService.class
      WEB-INF/classes/helloworld/IHelloWorld.class
      WEB-INF/classes/helloworld/impl/HelloWorld.class
      WEB-INF/classes/HelloWorld-mapping.xml
      WEB-INF/HelloWorld-mapping.xml
      WEB-INF/jaxrpc-mapping.xml
      WEB-INF/web.xml
      WEB-INF/webservices.xml
      WEB-INF/wsdl/HelloWorld.wsdl

      ++++++++++++++++++++++++++++++++++++++++++++++
      webservices.xml
      ++++++++++++++++++++++++++++++++++++++++++++++
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices version="1.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:impl="http://localhost:8080/HelloWorld/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <webservice-description>
      <webservice-description-name>HelloWorld</webservice-description-name>
      <wsdl-file>WEB-INF/wsdl/HelloWorld.wsdl</wsdl-file>
      <jaxrpc-mapping-file>WEB-INF/HelloWorld-mapping.xml</jaxrpc-mapping-file>
      <port-component>
      <port-component-name>IHelloWorldPort</port-component-name>
      <wsdl-port>HelloWorldPort</wsdl-port>
      <service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
      <service-impl-bean>
      <servlet-link>HelloWorld</servlet-link>
      </service-impl-bean>
      </port-component>
      </webservice-description>
      ++++++++++++++++++++++++++++++++++++++++++++++++
      web.xml
      ++++++++++++++++++++++++++++++++++++++++++++++++
      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">

      <servlet-name>HelloWorld</servlet-name>
      <servlet-class>helloworld.impl.HelloWorld</servlet-class>

      <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>/*</url-pattern>
      </servlet-mapping>
      </web-app>
      ++++++++++++++++++++++++++++++++++++++++++++++++
      jax-rpc-mapping.xml
      ++++++++++++++++++++++++++++++++++++++++++++++++
      <?xml version="1.0" encoding="UTF-8"?>

      <java-wsdl-mapping version="1.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <package-mapping>
      <package-type>helloworld</package-type>
      http://localhost:8080/HelloWorld/
      </package-mapping><service-interface-mapping>
      <service-interface>helloworld.HelloWorld</service-interface>
      <wsdl-service-name xmlns:serviceNS="http://localhost:8080/HelloWorld/">serviceNS:HelloWorld</wsdl-service-name>
      <port-mapping>
      <port-name>IHelloWorldPort</port-name>
      <java-port-name>IHelloWorldPort</java-port-name>
      </port-mapping>
      </service-interface-mapping><service-endpoint-interface-mapping>
      <service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
      <wsdl-port-type xmlns:portTypeNS="http://localhost:8080/HelloWorld/">portTypeNS:IHelloWorld</wsdl-port-type>
      <wsdl-binding xmlns:bindingNS="http://localhost:8080/HelloWorld/">bindingNS:IHelloWorldBinding</wsdl-binding>
      <service-endpoint-method-mapping>
      <java-method-name>sayHello</java-method-name>
      <wsdl-operation>sayHello</wsdl-operation>
      <method-param-parts-mapping>
      <param-position>0</param-position>
      <param-type>java.lang.String</param-type>
      <wsdl-message-mapping>
      <wsdl-message xmlns:wsdlMsgNS="http://localhost:8080/HelloWorld/">wsdlMsgNS:IHelloWorld_sayHello</wsdl-message>
      <wsdl-message-part-name>String_1</wsdl-message-part-name>
      <parameter-mode>IN</parameter-mode>
      </wsdl-message-mapping>
      </method-param-parts-mapping>
      <wsdl-return-value-mapping>
      <method-return-value>java.lang.String</method-return-value>
      <wsdl-message xmlns:wsdlMsgNS="http://localhost:8080/HelloWorld/">wsdlMsgNS:IHelloWorld_sayHelloResponse</wsdl-message>
      <wsdl-message-part-name>result</wsdl-message-part-name>
      </wsdl-return-value-mapping>
      </service-endpoint-method-mapping>
      </service-endpoint-interface-mapping></java-wsdl-mapping>
      ++++++++++++++++++++++++++++++++++++++++++++++++

      HelloWorld-mapping.xml
      ++++++++++++++++++++++++++++++++++++++++++++++++
      <?xml version='1.0' encoding='UTF-8'?><java-wsdl-mapping version='1.1' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee '>
      <package-mapping>
      <package-type>helloworld</package-type>
      http://localhost:8080/HelloWorld/
      </package-mapping>
      <service-interface-mapping>
      <service-interface>helloworld.HelloWorldService</service-interface>
      <wsdl-service-name xmlns:serviceNS='http://localhost:8080/HelloWorld/'>serviceNS:HelloWorldService</wsdl-service-name>
      <port-mapping>
      <port-name>HelloWorldPort</port-name>
      <java-port-name>HelloWorldPort</java-port-name>
      </port-mapping>
      </service-interface-mapping>
      <service-endpoint-interface-mapping>
      <service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
      <wsdl-port-type xmlns:portTypeNS='http://localhost:8080/HelloWorld/'>portTypeNS:IHelloWorld</wsdl-port-type>
      <wsdl-binding xmlns:bindingNS='http://localhost:8080/HelloWorld/'>bindingNS:HelloWorld</wsdl-binding>
      <service-endpoint-method-mapping>
      <java-method-name>sayHello</java-method-name>
      <wsdl-operation>sayHello</wsdl-operation>
      <method-param-parts-mapping>
      <param-position>0</param-position>
      <param-type>java.lang.String</param-type>
      <wsdl-message-mapping>
      <wsdl-message xmlns:wsdlMsgNS='http://localhost:8080/HelloWorld/'>wsdlMsgNS:sayHelloRequest</wsdl-message>
      <wsdl-message-part-name>sayHelloRequest</wsdl-message-part-name>
      <parameter-mode>IN</parameter-mode>
      </wsdl-message-mapping>
      </method-param-parts-mapping>
      <wsdl-return-value-mapping>
      <method-return-value>java.lang.String</method-return-value>
      <wsdl-message xmlns:wsdlMsgNS='http://localhost:8080/HelloWorld/'>wsdlMsgNS:sayHelloResponse</wsdl-message>
      <wsdl-message-part-name>sayHelloResponse</wsdl-message-part-name>
      </wsdl-return-value-mapping>
      </service-endpoint-method-mapping>
      </service-endpoint-interface-mapping>
      </java-wsdl-mapping>
      ++++++++++++++++++++++++++++++++++++++++++++++++

      HelloWorld.wsdl
      ++++++++++++++++++++++++++++++++++++++++++++++++
      <?xml version="1.0" encoding="UTF-8"?>
      <wsdl:definitions name="HelloWorld"
      targetNamespace="http://localhost:8080/HelloWorld/"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:tns="http://localhost:8080/HelloWorld/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
      <wsdl:types/>
      <wsdl:message name="sayHelloRequest">
      <wsdl:part name="sayHelloRequest" type="xsd:string"></wsdl:part>
      </wsdl:message>
      <wsdl:message name="sayHelloResponse">
      <wsdl:part name="sayHelloResponse" type="xsd:string"></wsdl:part>
      </wsdl:message>
      <wsdl:portType name="IHelloWorld">
      <wsdl:operation name="sayHello">
      <wsdl:input message="tns:sayHelloRequest"></wsdl:input>
      <wsdl:output message="tns:sayHelloResponse"></wsdl:output>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="HelloWorld" type="tns:IHelloWorld">
      <soap:binding style="rpc"
      transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="sayHello">
      <soap:operation
      soapAction="http://localhost:8080/HelloWorld/sayHello" />
      <wsdl:input>
      <soap:body use="literal"
      namespace="http://localhost:8080/HelloWorld/" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal"
      namespace="http://localhost:8080/HelloWorld/" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="HelloWorldService">
      <wsdl:port name="HelloWorldPort" binding="tns:HelloWorld">
      <soap:address location="http://localhost:8080/HelloWorld" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
      +++++++++++++++++++++++++++++++++++++++++++++++
      My Java Class Files are as follows :-

      /*
      * JBoss, the OpenSource EJB server
      * Distributable under LGPL license. See terms of license at gnu.org.
      */

      //Auto Generated by jbossws - Please do not edit!!!

      package helloworld;


      import javax.xml.rpc.*;


      public interface HelloWorldService extends javax.xml.rpc.Service
      {

      public helloworld.IHelloWorld getHelloWorldPort() throws ServiceException;

      }

      +++++++++++++++++++++++++++++++++++
      /*
      * JBossWS WS-Tools Generated Source
      *
      * Generation Date: Mon Jun 04 14:47:16 IST 2007
      *
      * This generated source code represents a derivative work of the input to
      * the generator that produced it. Consult the input for the copyright and
      * terms of use that apply to this source code.
      */
      package helloworld;
      public interface IHelloWorld extends java.rmi.Remote
      {

      public java.lang.String sayHello(java.lang.String sayHelloRequest) throws java.rmi.RemoteException;
      }
      +++++++++++++++++++++++++++++++++++++++++++++
      HelloWorld.java
      ++++++++++++++++++++++++++++++++++
      package helloworld.impl;

      import helloworld.IHelloWorld;

      public class HelloWorld implements IHelloWorld
      {
      public String sayHello(String sayHelloRequest)
      {
      return "Hello How are you, " + sayHelloRequest + "!";
      }
      }







        • 1. Re: javax.xml.rpc.JAXRPCException: Cannot obtain operation m
          Oskar Carlstedt Novice

          Hi!

          I read another thread on this forum having the same problem. It sounds that the SOAPAction http header is not set. Can you try to invoke the service by using SoapUI http://www.soapui.org, or enable the RequestDumperValve in tomcat's service.xml ($JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml). Doing so you can see all the sent request parameters, headers etc.

          Kind regards
          Oskar

          • 2. Re: javax.xml.rpc.JAXRPCException: Cannot obtain operation m
            Kapilesh Newbie

            Thanks for ur response oskar . I enabled the Request dumper value.

            In "HelloClient.java" When I use the following code and exeute it runs correctly and returns me a reply.
            +++++++++++++++++++++++++++++++++++++++++++++
            Sample 1 Here I need a Remote interface to invoke the service:-
            ++++++++++++++++++++++++++++++++++++++++++++++
            IHelloWorld hello = (IHelloWorld) service.getPort(IHelloWorld.class);
            // System.out.println("hello.hello(" + argument + ")");
            System.out.println("output:" + hello.sayHello(argument));
            // CallImpl call = (CallImpl)service.createCall();
            //call.setOperationName(operationName);
            // System.out.println(call.isParameterAndReturnSpecRequired(operationName));
            //Object retObj = call.invoke(new Object[]{argument});
            +++++++++++++++++++++++++++++++++++++++++++++++
            The following Headers appear in the Log in the log
            +++++++++++++++++++++++++++++++++++++++++++++
            13:28:15,750 INFO [[localhost]] REQUEST URI =/HelloWorld
            13:28:15,750 INFO [[localhost]] authType=null
            13:28:15,750 INFO [[localhost]] characterEncoding=null
            13:28:15,750 INFO [[localhost]] contentLength=-1
            13:28:15,750 INFO [[localhost]] contentType=application/x-www-form-urlencoded
            13:28:15,750 INFO [[localhost]] contextPath=/HelloWorld
            13:28:15,750 INFO [[localhost]] header=user-agent=Java/1.5.0_09
            13:28:15,750 INFO [[localhost]] header=host=localhost:8080
            13:28:15,750 INFO [[localhost]] header=accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
            13:28:15,750 INFO [[localhost]] header=connection=keep-alive
            13:28:15,750 INFO [[localhost]] header=content-type=application/x-www-form-urlencoded
            13:28:15,750 INFO [[localhost]] locale=en_US
            13:28:15,750 INFO [[localhost]] method=GET
            13:28:15,750 INFO [[localhost]] parameter=wsdl=
            13:28:15,750 INFO [[localhost]] pathInfo=/
            13:28:15,750 INFO [[localhost]] protocol=HTTP/1.1
            13:28:15,750 INFO [[localhost]] queryString=wsdl
            13:28:15,750 INFO [[localhost]] remoteAddr=127.0.0.1
            13:28:15,750 INFO [[localhost]] remoteHost=127.0.0.1
            13:28:15,750 INFO [[localhost]] remoteUser=null
            13:28:15,750 INFO [[localhost]] requestedSessionId=null
            13:28:15,750 INFO [[localhost]] scheme=http
            13:28:15,750 INFO [[localhost]] serverName=localhost
            13:28:15,750 INFO [[localhost]] serverPort=8080
            13:28:15,750 INFO [[localhost]] servletPath=
            13:28:15,750 INFO [[localhost]] isSecure=false
            13:28:15,750 INFO [[localhost]] ---------------------------------------------------------------
            13:28:15,812 INFO [[localhost]] ---------------------------------------------------------------
            13:28:15,812 INFO [[localhost]] authType=null
            13:28:15,812 INFO [[localhost]] contentLength=-1
            13:28:15,812 INFO [[localhost]] contentType=text/xml
            13:28:15,812 INFO [[localhost]] header=X-Powered-By=Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
            13:28:15,812 INFO [[localhost]] header=Content-Type=text/xml
            13:28:15,812 INFO [[localhost]] header=Transfer-Encoding=chunked
            13:28:15,812 INFO [[localhost]] header=Date=Tue, 05 Jun 2007 07:58:15 GMT
            13:28:15,812 INFO [[localhost]] message=null
            13:28:15,812 INFO [[localhost]] remoteUser=null
            13:28:15,812 INFO [[localhost]] status=200
            13:28:15,812 INFO [[localhost]] ===============================================================
            13:28:15,890 INFO [[localhost]] REQUEST URI =/HelloWorld
            13:28:15,890 INFO [[localhost]] authType=null
            13:28:15,890 INFO [[localhost]] characterEncoding=null
            13:28:15,890 INFO [[localhost]] contentLength=-1
            13:28:15,890 INFO [[localhost]] contentType=application/x-www-form-urlencoded
            13:28:15,890 INFO [[localhost]] contextPath=/HelloWorld
            13:28:15,890 INFO [[localhost]] header=user-agent=Java/1.5.0_09
            13:28:15,890 INFO [[localhost]] header=host=localhost:8080
            13:28:15,890 INFO [[localhost]] header=accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
            13:28:15,890 INFO [[localhost]] header=connection=keep-alive
            13:28:15,890 INFO [[localhost]] header=content-type=application/x-www-form-urlencoded
            13:28:15,890 INFO [[localhost]] locale=en_US
            13:28:15,890 INFO [[localhost]] method=GET
            13:28:15,890 INFO [[localhost]] parameter=wsdl=
            13:28:15,890 INFO [[localhost]] pathInfo=/
            13:28:15,890 INFO [[localhost]] protocol=HTTP/1.1
            13:28:15,890 INFO [[localhost]] queryString=wsdl
            13:28:15,890 INFO [[localhost]] remoteAddr=127.0.0.1
            13:28:15,890 INFO [[localhost]] remoteHost=127.0.0.1
            13:28:15,890 INFO [[localhost]] remoteUser=null
            13:28:15,890 INFO [[localhost]] requestedSessionId=null
            13:28:15,890 INFO [[localhost]] scheme=http
            13:28:15,890 INFO [[localhost]] serverName=localhost
            13:28:15,890 INFO [[localhost]] serverPort=8080
            13:28:15,890 INFO [[localhost]] servletPath=
            13:28:15,890 INFO [[localhost]] isSecure=false
            13:28:15,890 INFO [[localhost]] ---------------------------------------------------------------
            13:28:15,906 INFO [[localhost]] ---------------------------------------------------------------
            13:28:15,906 INFO [[localhost]] authType=null
            13:28:15,906 INFO [[localhost]] contentLength=-1
            13:28:15,906 INFO [[localhost]] contentType=text/xml
            13:28:15,906 INFO [[localhost]] header=X-Powered-By=Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
            13:28:15,906 INFO [[localhost]] header=Content-Type=text/xml
            13:28:15,906 INFO [[localhost]] header=Transfer-Encoding=chunked
            13:28:15,906 INFO [[localhost]] header=Date=Tue, 05 Jun 2007 07:58:15 GMT
            13:28:15,906 INFO [[localhost]] message=null
            13:28:15,906 INFO [[localhost]] remoteUser=null
            13:28:15,906 INFO [[localhost]] status=200
            13:28:15,906 INFO [[localhost]] ===============================================================
            13:28:16,234 INFO [[localhost]] REQUEST URI =/HelloWorld
            13:28:16,234 INFO [[localhost]] authType=null
            13:28:16,234 INFO [[localhost]] characterEncoding=UTF-8
            13:28:16,234 INFO [[localhost]] contentLength=235
            13:28:16,234 INFO [[localhost]] contentType=text/xml; charset=UTF-8
            13:28:16,234 INFO [[localhost]] contextPath=/HelloWorld
            13:28:16,234 INFO [[localhost]] header=soapaction="http://localhost:8080/HelloWorld/sayHello"
            13:28:16,234 INFO [[localhost]] header=content-type=text/xml; charset=UTF-8
            13:28:16,234 INFO [[localhost]] header=user-agent=Java/1.5.0_09
            13:28:16,234 INFO [[localhost]] header=host=localhost:8080
            13:28:16,234 INFO [[localhost]] header=accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
            13:28:16,234 INFO [[localhost]] header=connection=keep-alive
            13:28:16,234 INFO [[localhost]] header=content-length=235
            13:28:16,234 INFO [[localhost]] locale=en_US
            13:28:16,234 INFO [[localhost]] method=POST
            13:28:16,234 INFO [[localhost]] pathInfo=/
            13:28:16,234 INFO [[localhost]] protocol=HTTP/1.1
            13:28:16,234 INFO [[localhost]] queryString=null
            13:28:16,234 INFO [[localhost]] remoteAddr=127.0.0.1
            13:28:16,234 INFO [[localhost]] remoteHost=127.0.0.1
            13:28:16,234 INFO [[localhost]] remoteUser=null
            13:28:16,234 INFO [[localhost]] requestedSessionId=null
            13:28:16,234 INFO [[localhost]] scheme=http
            13:28:16,234 INFO [[localhost]] serverName=localhost
            13:28:16,234 INFO [[localhost]] serverPort=8080
            13:28:16,234 INFO [[localhost]] servletPath=
            13:28:16,234 INFO [[localhost]] isSecure=false
            13:28:16,234 INFO [[localhost]] ------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++

            If you look at the above log you will see Soap headers been set
            +++++++++++++++++++++++++++++++++++++++++++++++
            Sample 2. I use the Call Implementation. I have commented out the Remote interface call and use call.invoke() instead
            +++++++++++++++++++++++++++++++++++++++++
            //IHelloWorld hello = (IHelloWorld) service.getPort(IHelloWorld.class);
            // System.out.println("hello.hello(" + argument + ")");
            // System.out.println("output:" + hello.sayHello(argument));
            CallImpl call = (CallImpl)service.createCall();
            QName operationName = new QName(TARGET_NAMESPACE, "sayHello");
            call.setOperationName(operationName);
            System.out.println(call.isParameterAndReturnSpecRequired(operationName));
            Object retObj = call.invoke(new Object[]{argument});

            ++++++++++++++++++++++++++++++++++++++++++++
            The output I get is as follows. If you notice the last part i.e the setting of Soap Headers is missing.
            +++++++++++++++++++++++++++++++++++++++++++

            13:22:41,421 INFO [[localhost]] REQUEST URI =/HelloWorld
            13:22:41,421 INFO [[localhost]] authType=null
            13:22:41,421 INFO [[localhost]] characterEncoding=null
            13:22:41,421 INFO [[localhost]] contentLength=-1
            13:22:41,421 INFO [[localhost]] contentType=application/x-www-form-urlencoded
            13:22:41,421 INFO [[localhost]] contextPath=/HelloWorld
            13:22:41,421 INFO [[localhost]] header=user-agent=Java/1.5.0_09
            13:22:41,421 INFO [[localhost]] header=host=localhost:8080
            13:22:41,421 INFO [[localhost]] header=accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
            13:22:41,421 INFO [[localhost]] header=connection=keep-alive
            13:22:41,421 INFO [[localhost]] header=content-type=application/x-www-form-urlencoded
            13:22:41,421 INFO [[localhost]] locale=en_US
            13:22:41,421 INFO [[localhost]] method=GET
            13:22:41,421 INFO [[localhost]] parameter=wsdl=
            13:22:41,421 INFO [[localhost]] pathInfo=/
            13:22:41,421 INFO [[localhost]] protocol=HTTP/1.1
            13:22:41,421 INFO [[localhost]] queryString=wsdl
            13:22:41,421 INFO [[localhost]] remoteAddr=127.0.0.1
            13:22:41,421 INFO [[localhost]] remoteHost=127.0.0.1
            13:22:41,421 INFO [[localhost]] remoteUser=null
            13:22:41,421 INFO [[localhost]] requestedSessionId=null
            13:22:41,421 INFO [[localhost]] scheme=http
            13:22:41,421 INFO [[localhost]] serverName=localhost
            13:22:41,421 INFO [[localhost]] serverPort=8080
            13:22:41,421 INFO [[localhost]] servletPath=
            13:22:41,421 INFO [[localhost]] isSecure=false
            13:22:41,421 INFO [[localhost]] ---------------------------------------------------------------
            13:22:41,484 INFO [[localhost]] ---------------------------------------------------------------
            13:22:41,484 INFO [[localhost]] authType=null
            13:22:41,500 INFO [[localhost]] contentLength=-1
            13:22:41,500 INFO [[localhost]] contentType=text/xml
            13:22:41,500 INFO [[localhost]] header=X-Powered-By=Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
            13:22:41,500 INFO [[localhost]] header=Content-Type=text/xml
            13:22:41,500 INFO [[localhost]] header=Transfer-Encoding=chunked
            13:22:41,500 INFO [[localhost]] header=Date=Tue, 05 Jun 2007 07:52:41 GMT
            13:22:41,500 INFO [[localhost]] message=null
            13:22:41,500 INFO [[localhost]] remoteUser=null
            13:22:41,500 INFO [[localhost]] status=200
            13:22:41,500 INFO [[localhost]] ===============================================================
            13:22:41,562 INFO [[localhost]] REQUEST URI =/HelloWorld
            13:22:41,562 INFO [[localhost]] authType=null
            13:22:41,562 INFO [[localhost]] characterEncoding=null
            13:22:41,562 INFO [[localhost]] contentLength=-1
            13:22:41,562 INFO [[localhost]] contentType=application/x-www-form-urlencoded
            13:22:41,562 INFO [[localhost]] contextPath=/HelloWorld
            13:22:41,562 INFO [[localhost]] header=user-agent=Java/1.5.0_09
            13:22:41,562 INFO [[localhost]] header=host=localhost:8080
            13:22:41,562 INFO [[localhost]] header=accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
            13:22:41,562 INFO [[localhost]] header=connection=keep-alive
            13:22:41,562 INFO [[localhost]] header=content-type=application/x-www-form-urlencoded
            13:22:41,562 INFO [[localhost]] locale=en_US
            13:22:41,562 INFO [[localhost]] method=GET
            13:22:41,562 INFO [[localhost]] parameter=wsdl=
            13:22:41,562 INFO [[localhost]] pathInfo=/
            13:22:41,562 INFO [[localhost]] protocol=HTTP/1.1
            13:22:41,562 INFO [[localhost]] queryString=wsdl
            13:22:41,562 INFO [[localhost]] remoteAddr=127.0.0.1
            13:22:41,562 INFO [[localhost]] remoteHost=127.0.0.1
            13:22:41,562 INFO [[localhost]] remoteUser=null
            13:22:41,562 INFO [[localhost]] requestedSessionId=null
            13:22:41,562 INFO [[localhost]] scheme=http
            13:22:41,562 INFO [[localhost]] serverName=localhost
            13:22:41,562 INFO [[localhost]] serverPort=8080
            13:22:41,562 INFO [[localhost]] servletPath=
            13:22:41,562 INFO [[localhost]] isSecure=false
            13:22:41,562 INFO [[localhost]] ---------------------------------------------------------------
            13:22:41,578 INFO [[localhost]] ---------------------------------------------------------------
            13:22:41,578 INFO [[localhost]] authType=null
            13:22:41,578 INFO [[localhost]] contentLength=-1
            13:22:41,578 INFO [[localhost]] contentType=text/xml
            13:22:41,578 INFO [[localhost]] header=X-Powered-By=Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
            13:22:41,578 INFO [[localhost]] header=Content-Type=text/xml
            13:22:41,578 INFO [[localhost]] header=Transfer-Encoding=chunked
            13:22:41,578 INFO [[localhost]] header=Date=Tue, 05 Jun 2007 07:52:41 GMT
            13:22:41,578 INFO [[localhost]] message=null
            13:22:41,578 INFO [[localhost]] remoteUser=null
            13:22:41,578 INFO [[localhost]] status=200
            13:22:41,578 INFO [[localhost]] ================================================
            ++++++++++++++++++++++++++++++++++++++++++++++
            The reason I donot want to use SOAP is that the client is a PHP client and currently only supports XML-RPC and expects a response in pure XML. Is there a way where i could configure the webservice to take in XML-RPC calls respond in XML-RPC without wrapping it in a soap envelope. May be I am sounding a little weird . Thanks so much ifor the help so far