on 2011 Aug 04 8:53 AM
Hi All,
We are using the Web Service action block in BLS transaction to call a web service from an external legacy system. When we provide the WSDL in the action block configuration and click Next we can see the Port and Operation of the web service which we have selected and finally clicked on Finish. On clicking Finish it is giving an error "[Fatal Error] :-1:-1: Premature end of file." and no web service request/response structures are being generated.
The WSDL file is attached herwith. Please check and provide the solution. We are using MII 12.2 SP02 with latest patch.
An error message is also added to the NetWeaver log as below:
XmlProxy Error: Premature end of file.
[EXCEPTION]
org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at com.sap.lhcommon.schema.XmlHelper.loadDocument(XmlHelper.java:38)
at com.sap.lhcommon.schema.XmlHelper.loadDocumentNS(XmlHelper.java:28)
at com.sap.lhcommon.webservice.SoapMessage.getExampleXmlAsBytes(SoapMessage.java:103)
at com.sap.xmii.servlet.XmlProxy.service(XmlProxy.java:204)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:162)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:81)
at com.sap.xmii.system.SecurityFilter.doFilter(SecurityFilter.java:96)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at com.sap.xsrf.filter.XSRFProtectorFilter.doFilter(XSRFProtectorFilter.java:62)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:468)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:298)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:399)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:388)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:48)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:84)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:244)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:78)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:43)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:428)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:247)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:45)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:327)
The wsdl file is as follows:
<wsdl:definitions
targetNamespace="urn:cat.cis.mesassembly.server.service.pod"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://pod.service.server.mesassembly.cis.cat"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:intf="urn:cat.cis.mesassembly.server.service.pod"
xmlns:impl="urn:cat.cis.mesassembly.server.service.pod"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding"
>
<wsdl:types>
<schema targetNamespace="http://pod.service.server.mesassembly.cis.cat"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ProductionOrderDetailsInput">
<sequence>
<element name="detailsString" type="xsd:base64Binary"/>
<element name="productionOrderNumber" nillable ="true" type="xsd:string"/>
<element name="fullExplosionFlag" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ProductionOrderDetailsReceipt">
<sequence>
<element name="errorMessage" nillable="true" type="xsd:string"/>
<element name="valid" type="xsd:boolean"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="processOrderDetailsResponse">
<wsdl:part name="podReturn" type="tns:ProductionOrderDetailsReceipt" />
</wsdl:message>
<wsdl:message name="processOrderDetailsRequest">
<wsdl:part name="input" type="tns:ProductionOrderDetailsInput" />
</wsdl:message>
<wsdl:portType name="PodService">
<wsdl:operation name="ProcessOrderDetails" parameterOrder="input">
<wsdl:input message="impl:processOrderDetailsRequest"
name="processOrderDetailsRequest"/>
<wsdl:output message="impl:processOrderDetailsResponse"
name="processOrderDetailsResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProdOrderDetailsSoapBinding" type="impl:PodService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ProcessOrderDetails">
<soap:operation soapAction="http://pod.service.server.mesassembly.cis.cat/NewOperation"/>
<wsdl:input name="processOrderDetailsRequest">
<soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:cat.cis.mesassembly.server.service.pod" />
</wsdl:input>
<wsdl:output name="processOrderDetailsResponse">
<soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:cat.cis.mesassembly.server.service.pod" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PodService_Service">
<wsdl:port binding="impl:ProdOrderDetailsSoapBinding" name="ProdOrderDetails">
<soap:address location="http:/localhost:8080/MESAssembly/services/ProdOrderDetails"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Request clarification before answering.
The WSDL file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="urn:cat.cis.mesassembly.server.service.pod"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://pod.service.server.mesassembly.cis.cat"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:intf="urn:cat.cis.mesassembly.server.service.pod"
xmlns:impl="urn:cat.cis.mesassembly.server.service.pod"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding"
>
<wsdl:types>
<schema targetNamespace="http://pod.service.server.mesassembly.cis.cat"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ProductionOrderDetailsInput">
<sequence>
<element name="detailsString" type="xsd:base64Binary"/>
<element name="productionOrderNumber" nillable ="true" type="xsd:string"/>
<element name="fullExplosionFlag" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ProductionOrderDetailsReceipt">
<sequence>
<element name="errorMessage" nillable="true" type="xsd:string"/>
<element name="valid" type="xsd:boolean"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="processOrderDetailsResponse">
<wsdl:part name="podReturn" type="tns:ProductionOrderDetailsReceipt" />
</wsdl:message>
<wsdl:message name="processOrderDetailsRequest">
<wsdl:part name="input" type="tns:ProductionOrderDetailsInput" />
</wsdl:message>
<wsdl:portType name="PodService">
<wsdl:operation name="ProcessOrderDetails" parameterOrder="input">
<wsdl:input message="impl:processOrderDetailsRequest"
name="processOrderDetailsRequest"/>
<wsdl:output message="impl:processOrderDetailsResponse"
name="processOrderDetailsResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProdOrderDetailsSoapBinding" type="impl:PodService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ProcessOrderDetails">
<soap:operation soapAction="http://pod.service.server.mesassembly.cis.cat/NewOperation"/>
<wsdl:input name="processOrderDetailsRequest">
<soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:cat.cis.mesassembly.server.service.pod" />
</wsdl:input>
<wsdl:output name="processOrderDetailsResponse">
<soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:cat.cis.mesassembly.server.service.pod" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PodService_Service">
<wsdl:port binding="impl:ProdOrderDetailsSoapBinding" name="ProdOrderDetails">
<soap:address location="http:/localhost:8080/MESAssembly/services/ProdOrderDetails"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes Mike,
You are right that HTTP Post is less restrictive, but our client insists on using Web Services and this is just a sample Webservice to start up with and we are facing this "Premature End of File" Issue in it. Does the wsdl itself has some issue or is it something at MII end?
Regards,
Satpreet Singh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.