Adam Heath wrote: > vivtops86 wrote: >> I have successfully generated a WSDL which is given below > > Well, calling a remote SOAP service mapped thru the ofbiz service > engine requires the calling service to return a map. That's just the > way it is. > > I'm not a WSDL guru, but reading the definition below, you are > defining a SOAP service to return a String. Don't do that.
To restate: Allowing SOAP services that return things other than a Map, would be exactly the same as allowing static java methods to return something other than a Map. The ofbiz service engine returns a Map. That's just the way it is. >> <?xml version="1.0" encoding="UTF-8" ?> >> - <wsdl:definitions targetNamespace="http://ofbiz.apache.org/service/" >> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >> xmlns:tns="http://ofbiz.apache.org/service/" >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema"> >> - <wsdl:message name="learningFirstSoapResponse"> >> <wsdl:part name="ret" type="xsd:string" /> >> </wsdl:message> >> - <wsdl:message name="learningFirstSoapRequest"> >> <wsdl:part name="test" type="xsd:string" /> >> </wsdl:message> >> - <wsdl:portType name="learningFirstSoapPortType"> >> - <wsdl:operation name="learningFirstSoap"> >> <wsdl:input message="tns:learningFirstSoapRequest" /> >> <wsdl:output message="tns:learningFirstSoapResponse" /> >> </wsdl:operation> >> </wsdl:portType> >> - <wsdl:binding name="learningFirstSoapSoapBinding" >> type="tns:learningFirstSoapPortType"> >> <soap:binding style="document" >> transport="http://schemas.xmlsoap.org/soap/http" /> >> - <wsdl:operation name="learningFirstSoap"> >> <soap:operation >> soapAction="http://127.0.0.1:8080/webtools/control/SOAPService" style="rpc" >> /> >> - <wsdl:input> >> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >> namespace="http://ofbiz.apache.org/service/" use="literal" /> >> </wsdl:input> >> - <wsdl:output> >> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >> namespace="http://ofbiz.apache.org/service/" use="literal" /> >> </wsdl:output> >> </wsdl:operation> >> </wsdl:binding> >> - <wsdl:service name="learningFirstSoap"> >> - <wsdl:port binding="tns:learningFirstSoapSoapBinding" >> name="learningFirstSoapPort"> >> <soap:address >> location="http://127.0.0.1:8080/webtools/control/SOAPService" /> >> </wsdl:port> >> </wsdl:service> >> </wsdl:definitions> >> >> >> my service client looks like this >> >> public static String serviceClient(HttpServletRequest request, >> HttpServletResponse response){ >> XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); >> try { >> config.setServerURL(new >> URL("http://localhost:8080/webtools/control/SOAPService/")); >> } catch (MalformedURLException e1) { >> // TODO Auto-generated catch block >> e1.printStackTrace(); >> } >> config.setEnabledForExtensions(true); >> >> XmlRpcClient client = new XmlRpcClient(); >> client.setConfig(config); >> >> Map paramMap = new HashMap(); >> paramMap.put("test", "admin"); >> >> Object[] params = new Object[]{paramMap}; >> >> Map result = null; >> try { >> result = (Map) client.execute("learningFirstSoap", >> params); >> } catch (XmlRpcException e) { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } >> >> System.out.println(result.toString()); >> return "success"; >> >> } >> >> >> but when i call the service an exception is got from the statement "result >> = (Map) client.execute("learningFirstSoap", params);" >> the Exception is >> >> [Fatal Error] :1:1: Content is not allowed in prolog. >> org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse server's >> response: Content is not allowed in prolog. >> at >> org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:188) >> at >> org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) >> at >> org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) >> at >> org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) >> at >> org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:137) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:126) >> at org.ofbiz.oagis.OagisServices.serviceClient(OagisServices.java:803) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> at java.lang.reflect.Method.invoke(Unknown Source) >> at >> org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:92) >> at >> org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:78) >> at >> org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:592) >> at >> org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:361) >> at >> org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:202) >> at >> org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:78) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) >> 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.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) >> 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:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) >> at >> org.ofbiz.catalina.container.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:62) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >> at java.lang.Thread.run(Unknown Source) >> Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog. >> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) >> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown >> Source) >> at >> org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:186) >> ... 37 more >> Caused by: >> org.xml.sax.SAXParseException: Content is not allowed in prolog. >> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) >> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown >> Source) >> at >> org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:186) >> at >> org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) >> at >> org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) >> at >> org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) >> at >> org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:137) >> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:126) >> at org.ofbiz.oagis.OagisServices.serviceClient(OagisServices.java:803) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> at java.lang.reflect.Method.invoke(Unknown Source) >> at >> org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:92) >> at >> org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:78) >> at >> org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:592) >> at >> org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:361) >> at >> org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:202) >> at >> org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:78) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) >> 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.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:259) >> 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:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)2010-07-28 >> 09:47:11,547 (http-0.0.0.0-8080-1) [ JavaEventHandler.java:100:ERROR] >> >> >> could you tel me wat the reason is? >
