10 Replies Latest reply on Sep 10, 2007 6:00 AM by Gerhard Balthasar

    Accessing a Java JBossWS WebService from VBScript not workin

    Gerhard Balthasar Newbie

      Hello,

      I ran into the situation to call a Java WebService from within a .vbs file. I created a simple WebService and after searching the net and the forum I ended up with this. My method is being called at least, but my .vbs variable is null afterward. I have no clue what to do next...

      After first failing, I already installed MS SoapToolkit 2.0 and my .vbs is now:

      Option Explicit
      
      Dim c, wsdl
      
      wsdl = "http://localhost:8080/SimpleWebServices/SimpleWeb?wsdl"
      
      set c = CreateObject("MSSOAP.SOAPClient")
      c.mssoapinit(wsdl)
      
      c.isAlive
      


      My WebService:

      @Stateless
      @WebService
      @WebContext(contextRoot="/SimpleWebServices")
      @SOAPBinding(style = SOAPBinding.Style.RPC)
      public class SimpleWeb implements SimpleWebInterface {
      
       @Logger Log log;
      
       @WebMethod
       public void isAlive() {
       System.out.println("SimpleWeb.isAlive()");
       }
      
      }
      


      I'm using Java 1.5, JBoss 4.2 GA (with JBosWS1.2.1GA) and JBoss Seam 2.0 Beta1 (well, shouldn't matter in this case imho, because the WebService isn't a Seam component)

      My standard-jaxws-endpoint-config.xml:

      <jaxws-config xmlns="urn:jboss:jaxws-config:2.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:javaee="http://java.sun.com/xml/ns/javaee"
       xsi:schemaLocation="urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd">
       <endpoint-config>
       <config-name>Seam WebService Endpoint</config-name>
       <pre-handler-chains>
       <javaee:handler-chain>
       <javaee:protocol-bindings>
       ##SOAP11_HTTP
       </javaee:protocol-bindings>
       <javaee:handler>
       <javaee:handler-name>
       SOAP Request Handler
       </javaee:handler-name>
       <javaee:handler-class>
       org.jboss.seam.webservice.SOAPRequestHandler
       </javaee:handler-class>
       </javaee:handler>
       </javaee:handler-chain>
       </pre-handler-chains>
       </endpoint-config>
      </jaxws-config>
      


      Finaly here's the generated wsdl:

      <definitions name='SimpleWebService' targetNamespace='http://webservice.simple/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://webservice.simple/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
       <types></types>
       <message name='SimpleWeb_isAliveResponse'></message>
       <message name='SimpleWeb_isAlive'></message>
       <portType name='SimpleWeb'>
       <operation name='isAlive'>
       <input message='tns:SimpleWeb_isAlive'></input>
       <output message='tns:SimpleWeb_isAliveResponse'></output>
       </operation>
       </portType>
       <binding name='SimpleWebBinding' type='tns:SimpleWeb'>
       <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
       <operation name='isAlive'>
       <soap:operation soapAction=''/>
       <input>
       <soap:body namespace='http://webservice.simple/' use='literal'/>
       </input>
       <output>
       <soap:body namespace='http://webservice.simple/' use='literal'/>
       </output>
       </operation>
       </binding>
       <service name='SimpleWebService'>
       <port binding='tns:SimpleWebBinding' name='SimpleWebPort'>
       <soap:address location='http://localhost:8080/SimpleWebServices/SimpleWeb'/>
       </port>
       </service>
      </definitions>
      


      Executing my .vbs script gives following output
      C:\Data\PrintServerProcessor>cscript PrintServerProcesser.vbs
      Microsoft (R) Windows Script Host Version 5.6
      Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
      
      C:\Data\PrintServerProcessor\PrintServerProcesser.vbs(17, 1) (null): Unspecified
       error
      


      Looking into JBoss Log after switching to TRACE level for JBossWS I saw that calls are going in and out and my method is being called:

      2007-09-07 00:10:45,828 TRACE [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] BEFORE handleRequest - org.jboss.seam.webservice.SOAPRequestHandler@1fe0dcb
      <SOAP-ENV:Envelope SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
       <SOAP-ENV:Header/>
       <SOAP-ENV:Body>
       <m:isAlive xmlns:m='http://webservice.simple/'/>
       </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>
      2007-09-07 00:10:45,828 TRACE [org.jboss.ws.core.CommonMessageContext] put: APPLICATION:org.jboss.ws.allow.expand.dom=true
      2007-09-07 00:10:45,828 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.handler.message.outbound): APPLICATION:javax.xml.ws.handler.message.outbound=false
      2007-09-07 00:10:45,828 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.servlet.request): APPLICATION:javax.xml.ws.servlet.request=org.apache.catalina.connector.RequestFacade@20e54a
      2007-09-07 00:10:45,859 TRACE [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] AFTER handleRequest - org.jboss.seam.webservice.SOAPRequestHandler@1fe0dcb: unchanged
      2007-09-07 00:10:45,859 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Exit: handleIn BoundMessage with status: true
      2007-09-07 00:10:45,859 TRACE [org.jboss.ws.core.CommonMessageContext] put: APPLICATION:org.jboss.ws.allow.expand.dom=true
      2007-09-07 00:10:45,875 DEBUG [org.jboss.ws.integration.jboss42.ServiceEndpointInvokerEJB3] invokeServiceEndpoint: isAlive
      2007-09-07 00:10:45,875 DEBUG [org.jboss.ws.core.EndpointInvocation] getRequestPayload
      2007-09-07 00:10:46,000 INFO [STDOUT] SimpleWeb.isAlive()
      2007-09-07 00:10:46,000 DEBUG [org.jboss.ws.core.EndpointInvocation] setReturnValue: null
      


      Using @Oneway as suggest in a Thread does not work because my .vbs gives error that ResponseType is empty.

      Well, I guess, the wsdl or the answer is not parsed correctly because it's empty or something like that, as c is getting null (should not happen ;-). What do I miss/did wrong?

      I would appriciate any help. Thank you!

      Greetz, GHad

        • 1. Re: Accessing a Java JBossWS WebService from VBScript not wo
          Gerhard Balthasar Newbie

          Well, of course in my WebService I don't have

          @Logger Log log;
          


          right now, sorry, forgot to edit...

          • 2. Re: Accessing a Java JBossWS WebService from VBScript not wo
            Ronald van Kuijk Master

            I'm no specialist, but the return type of isAlive is void....

            So afaics this is perfectly correct.

            • 3. Re: Accessing a Java JBossWS WebService from VBScript not wo
              Gerhard Balthasar Newbie

              Well, I know the return type is void, but WScript should not abort my script, if a WebService defines a method with void...

              I also tried boolean as return type with same result. VBScript seems to interpret the return message wrong. Is there a chance to annotate my WebMethods with some Annotation so that my vVBScript variable c isn't null?

              • 4. Re: Accessing a Java JBossWS WebService from VBScript not wo
                Alessio Soldano Newbie

                Hi,
                did you try capturing the response soap message? How does it look? If it's correct you might focus on the vbs side of the issue, otherwise we should investigate why jbossws is not working as expected.
                Bye
                Alessio Soldano

                • 5. Re: Accessing a Java JBossWS WebService from VBScript not wo
                  Gerhard Balthasar Newbie

                  Hi,

                  thanks for your reply. I have the outgoing message here:

                  2007-09-08 01:53:18,296 TRACE [org.jboss.ws.core.MessageTrace] Outgoing Response Message
                  <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
                   <env:Header>
                   <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>5</seam:conversationId>
                   </env:Header>
                   <env:Body>
                   <m:isAliveResponse xmlns:m='http://webservice.simple/'/>
                   </env:Body>
                  </env:Envelope>
                  2007-09-08 01:53:18,296 TRACE [org.jboss.ws.core.soap.SOAPBodyImpl] getFault
                  


                  If I try my other simple method that returns a String
                   @WebMethod
                   public String helloWorld(String name) {
                   System.out.println("SimpleWeb.helloWorld(): " + name);
                   return "Hello " + name;
                   }
                  
                  


                  I get same error and the return message looks like this:
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.MessageTrace] Outgoing Response Message
                  <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
                   <env:Header>
                   <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>4</seam:conversationId>
                   </env:Header>
                   <env:Body>
                   <m:helloWorldResponse xmlns:m='http://webservice.simple/'>
                   <return>Hello World</return>
                   </m:helloWorldResponse>
                   </env:Body>
                  </env:Envelope>
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPBodyImpl] getFault
                  2007-09-08 01:50:49,671 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] END handleRequest: jboss.ws:context=SimpleWebServices,endpoint=SimpleWeb
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.http.response.headers): null
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.http.response.code): null
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPBodyImpl] hasFault
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.addressing.context.outbound): null
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPContentElement] getChildNodes
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPContentElement] getChildNodes
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPContentElement] getChildNodes
                  2007-09-08 01:50:49,671 TRACE [org.jboss.ws.core.soap.SOAPContentElement] getChildNodes
                  2007-09-08 01:50:49,671 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] popMessageContext: org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS@18b41da (Thread http-0.0.0.0-8080-1)
                  


                  Hope this helps clearing things (I'm no pro in Soap behind WebServices :-)

                  Greetings, GHad

                  • 6. Re: Accessing a Java JBossWS WebService from VBScript not wo
                    Alessio Soldano Newbie

                    The response you're getting seem correct to me. The jbossws stack is not throwing any exception, isn't it? I think this is a vbs side issue...
                    Bye
                    Alessio Soldano

                    • 7. Re: Accessing a Java JBossWS WebService from VBScript not wo
                      Gerhard Balthasar Newbie

                      Ok, thanks for looking at it. I'll try MSSoapKit 3.0 over the weekend and report if it's working.

                      After googling a while I found following piece of information:

                       VBS client -> Java
                      
                       put this attribute on <body> element.
                       SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"
                      


                      Does this mean the same as this?
                      @SOAPBinding(style = SOAPBinding.Style.RPC)
                      


                      Afaik the wsdl is generated by JBossWS so I don't have achance to edit it manualy. Is there an Annotation for this?

                      Thank you very much.

                      Greetz, GHad


                      • 8. Re: Accessing a Java JBossWS WebService from VBScript not wo
                        Alessio Soldano Newbie

                         

                        SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"


                        means an rpc/encoded wsdl, that is no longer supported since it has been disallowed in WS-I basic profile.


                        The
                        @SOAPBinding(style = SOAPBinding.Style.RPC)

                        annotation says you want a rpc style wsdl (rpc/literal).
                        I would verify that the vbs environment you're using support rpc/literal or document/literal wsdls.
                        Btw you can expose custom wsdl documents with jbossws, but of course they have to be compliant with standards.

                        Alessio Soldano

                        • 9. Re: Accessing a Java JBossWS WebService from VBScript not wo
                          Gerhard Balthasar Newbie

                          Uh,

                          Trying MSSoapToolkit 3.0 made it even worse... Now, if calling method hello from this class:

                          @Stateless
                          @WebService
                          @WebContext(contextRoot="/SimpleWebServices")
                          @SOAPBinding(style = SOAPBinding.Style.RPC)
                          public class SimpleWeb implements SimpleWebInterface {
                          
                           @WebMethod
                           public boolean isAlive() {
                           System.out.println("SimpleWeb.isAlive()");
                           return true;
                           }
                          
                           @WebMethod
                           public String hello(@WebParam(name="name") String name) {
                           System.out.println("SimpleWeb.helloWorld(): " + name);
                           return "Hello " + name + "!";
                           }
                          
                          }
                          


                          with this vbscript:

                          Option Explicit
                          
                          Dim wsdl, c, r
                          
                          wsdl = "http://localhost:8080/SimpleWebServices/SimpleWeb?wsdl"
                          
                          set c = CreateObject("MSSOAP.SoapClient30")
                          c.mssoapinit(wsdl)
                          
                          set r = c.hello("World")
                          
                          WScript.Echo r
                          


                          I get:

                          C:\Data\Tests>cscript SimpleWebService.vbs
                          Microsoft (R) Windows Script Host Version 5.6
                          Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
                          
                          C:\Data\Tests\SimpleWebService.vbs(10, 1) (null): Cannot find child element: name
                          


                          With following log entries in Jboss 4.2.0 GA with JBossWS 1.2.1 GA and Seam 2.0 Beta 1:

                          2007-09-09 23:11:10,921 TRACE [org.jboss.ws.core.MessageTrace] Incoming Request Message
                          <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAPSDK1='http://www.w3.org/2001/XMLSchema' xmlns:SOAPSDK2='http://www.w3.org/2001/XMLSchema-instance' xmlns:SOAPSDK3='http://schemas.xmlsoap.org/soap/encoding/'>
                           <SOAP-ENV:Header/>
                           <SOAP-ENV:Body>
                           <SOAPSDK4:hello xmlns:SOAPSDK4='http://webservice.simple/'>
                           <SOAPSDK4:name xmlns:SOAPSDK4='http://webservice.simple/'>World</SOAPSDK4:name>
                           </SOAPSDK4:hello>
                           </SOAP-ENV:Body>
                          </SOAP-ENV:Envelope>
                          2007-09-09 23:11:10,921 TRACE [org.jboss.ws.core.CommonMessageContext] put: APPLICATION:javax.xml.ws.binding.attachments.inbound={}
                          2007-09-09 23:11:10,921 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: POST
                          2007-09-09 23:11:10,921 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: PRE
                          2007-09-09 23:11:10,937 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] addHandler:
                          HandlerMetaDataJAXWS:
                           type=PRE
                           name=SOAP Request Handler
                           class=class org.jboss.seam.webservice.SOAPRequestHandler
                           params=[]
                           protocols=##SOAP11_HTTP
                           services=null
                           ports=null
                          2007-09-09 23:11:10,937 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: ENDPOINT
                          2007-09-09 23:11:10,937 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: POST
                          2007-09-09 23:11:10,937 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=POST,info=[service={http://webservice.simple/}SimpleWebService,port={http://webservice.simple/}SimpleWebPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http]]
                          2007-09-09 23:11:10,937 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: []
                          2007-09-09 23:11:10,937 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.handler.message.outbound): APPLICATION:javax.xml.ws.handler.message.outbound=false
                          2007-09-09 23:11:10,953 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.addressing.context.inbound): null
                          2007-09-09 23:11:10,953 DEBUG [org.jboss.ws.core.soap.SOAPMessageDispatcher] getDispatchDestination: {http://webservice.simple/}hello
                          2007-09-09 23:11:10,953 DEBUG [org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS] unbindRequestMessage: {http://webservice.simple/}hello
                          2007-09-09 23:11:10,953 DEBUG [org.jboss.ws.core.jaxws.handler.MessageContextJAXWS] Begin response processing
                          2007-09-09 23:11:10,953 TRACE [org.jboss.ws.core.CommonMessageContext] get(javax.xml.ws.handler.message.outbound): APPLICATION:javax.xml.ws.handler.message.outbound=false
                          2007-09-09 23:11:10,953 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] popMessageContext: org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS@a877c0 (Thread http-0.0.0.0-8080-1)
                          2007-09-09 23:11:10,953 TRACE [org.jboss.ws.core.CommonMessageContext] put: APPLICATION:javax.xml.ws.handler.message.outbound=true
                          2007-09-09 23:11:10,953 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS@1ceb670 (Thread http-0.0.0.0-8080-1)
                          2007-09-09 23:11:10,968 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
                          org.jboss.ws.WSException: Cannot find child element: name
                           at org.jboss.ws.core.CommonSOAPBinding.getParameterFromMessage(CommonSOAPBinding.java:866)
                           at org.jboss.ws.core.CommonSOAPBinding.unbindRequestMessage(CommonSOAPBinding.java:325)
                           at org.jboss.ws.core.server.AbstractServiceEndpointInvoker.invoke(AbstractServiceEndpointInvoker.java:187)
                           at org.jboss.ws.core.server.ServiceEndpoint.processRequest(ServiceEndpoint.java:212)
                           at org.jboss.ws.core.server.ServiceEndpointManager.processRequest(ServiceEndpointManager.java:448)
                           at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
                           at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
                           at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
                           at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                           at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                           at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                           at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                           at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                           at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                           at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                           at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
                           at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                           at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                           at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
                           at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                           at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
                           at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                           at java.lang.Thread.run(Thread.java:595)
                          


                          with Outgoing message:

                          2007-09-09 23:11:11,125 TRACE [org.jboss.ws.core.MessageTrace] Outgoing Response Message
                          <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
                           <env:Header/>
                           <env:Body>
                           <env:Fault xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
                           <faultcode>env:Server</faultcode>
                           <faultstring>Cannot find child element: name</faultstring>
                           </env:Fault>
                           </env:Body>
                          </env:Envelope>
                          


                          Don't know what else to do... At least, the soap fault is transerred and interpreted by vbscript corrctly ;-)

                          I tried to remove the Annotation:

                          @SOAPBinding(style = SOAPBinding.Style.RPC)
                          


                          but then any parameters for the method gave me null result at server with no error thrown, so vbs is not able to post correct value. Even stranger: calling the simple isAlive Method from above gave me errors of an incorrect numbers of parameters. How can no paramters != no parameters when just used: call c.isAlive()

                          What's next. I have no clue... Micros*ft says, Soapkit is deprecated and one should use dotnet to call webservices. but i found no example for vbsscript how to do that. .Net framework 2.0 is already installed, but how to call from vbscript? And with or without RPC styled SoapBinding on ServerSide?

                          Thank you for your time and help,

                          Greetz GHad




                          • 10. Re: Accessing a Java JBossWS WebService from VBScript not wo
                            Gerhard Balthasar Newbie

                            Yeah, got it done!

                            1. .Net doesn't have VBA or VBScript support as I read somewhere

                            2. MS Soap Toolkit is crap, at least in my opinion

                            3. I discovered a little (even for commercial concerns) usefull library for SoapIssues with VBScript, VB6.0, C++, eVB, eVC and C#: PocketSoap (See http://www.pocketsoap.com/pocketsoap/)

                            4. I needed to play around awhile, but finaly:

                            My WebService class:

                            @Stateless
                            @WebService
                            @WebContext(contextRoot="/SimpleWebServices")
                            public class SimpleWeb implements SimpleWebInterface {
                            
                             @WebMethod
                             public boolean isAlive() {
                             System.out.println("SimpleWeb.isAlive()");
                             return true;
                             }
                            
                             @WebMethod
                             public String hello(@WebParam(name="name") String name) {
                             System.out.println("SimpleWeb.helloWorld(): " + name);
                             return "Hello " + name + "!";
                             }
                            
                            }
                            


                            Called by a Testscript PocketSimpleWeb.vbs:

                            Option Explicit
                            
                            Dim service, ns
                            
                            service = "http://localhost:8080/SimpleWebServices/SimpleWeb?wsdl"
                            ns = "http://webservice.simple/"
                            
                            WScript.Echo "isAlive(): " & isAlive(service, ns)
                            WScript.Echo "hello('World'): " & hello("World", service, ns)
                            
                            ' Should return true
                            function isAlive(wsdl, namespace)
                             Dim f, p
                             Set f = CreateObject("pocketsoap.Factory")
                             Set p = f.CreateProxy(wsdl, namespace)
                             isAlive = p.isAlive
                            end function
                            
                            ' should return "Hello " & name & "!"
                            function hello(name, wsdl, namespace)
                             dim e, t
                             set e = CreateObject("PocketSOAP.Envelope.2")
                            
                             e.setMethod "hello", namespace
                             e.parameters.create "name", name
                            
                             set t = CreateObject("PocketSOAP.HTTPTransport.2")
                             t.SOAPAction = ""
                             t.Send wsdl, e.serialize
                            
                             e.parse t
                             hello = e.parameters.item(0).value
                            end function
                            


                            Gives me what I want, even without @SOAPBinding(style = SOAPBinding.Style.RPC):

                            C:\Data\Tests>cscript PocketWebService.vbs
                            Microsoft (R) Windows Script Host Version 5.6
                            Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
                            
                            isAlive(): true
                            hello('World'): Hello World!
                            


                            Thanks for your help, the pieces of infos really helped me getting along.

                            I hope this example is usefull for others around here,

                            Greetz GHad[/url]