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. > > <?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?
