2

使用自动生成的 ServiceBindingStub.java 时出现此错误。WebService 端工作正常,所以这个错误必须在代码中,但代码是自动生成的,所以我不知道为什么它不起作用。其他一些电话工作正常,但事实并非如此。此调用包括更新,而其他工作调用只是从 WebService 获取数据。

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: org.xml.sax.SAXParseException: Premature end of file.
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
4

4 回答 4

7

当您连接的服务不返回 SOAP 响应,而是一些文本或 HTML 时,就会发生这种情况。尝试在浏览器中打开 URL 或使用一些 SOAP 调试器(如SOAP UI)来查看从服务返回的内容。

于 2009-11-10T12:32:51.863 回答
2

我曾经遇到过同样的问题。就我而言,我收到了标签(图像)之间带有“二进制数据”的消息。Axis 使用固定大小的缓冲区来读取数据,一旦缓冲区已满,它就会继续运行并失去同步。

其实通过一步步调试stub代码,应该可以找到xml文件中的tag或者part。不能保证,问题会很容易解决,但它可能会提示您(a)存根未正确生成或(b)xml 文件格式不正确或对已使用的架构无效生成存根。

祝你好运!(我没有解决我的问题..)

于 2009-11-10T12:34:48.700 回答
0

按照 Superfilin 的回答,我刚刚(并解决了)这个问题。最后,问题是我没有<beanMapping>为我在 deployment.wsdd 文件中返回的类之一添加一个。每当响应包含该类时,我都会得到一个完全空的消息正文。

于 2010-08-18T12:22:08.157 回答
0

甚至我们也面临同样的问题。但是内容中有一些特殊字符。我们删除了那些特殊字符,它工作正常。

于 2013-01-16T10:30:15.040 回答