[jboss-user] [JBossWS] - Re: Accessing a Java JBossWS WebService from VBScript not wo

gbc@gmx.de do-not-reply at jboss.com
Sun Sep 9 17:36:54 EDT 2007


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 at 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 at 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




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4082425#4082425

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4082425



More information about the jboss-user mailing list