org.apache.axis2.AxisFault:First Element必须包含本地名称Envelope,但是找到了html

Jav*_*Guy 4 java axis web-services java-ee

可能是Axis出现以下异常的原因...使用的Http verion是1.0.

如果设置了以下属性,则可以解决此问题

stub._getServiceClient().getOptions().
               setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,
Boolean.FALSE);
Run Code Online (Sandbox Code Playgroud)

但是,根据轴docs,上述属性仅适用于HTTP版本1.1.如果HTTP版本为1.0,则传输框架将忽略此属性.

有什么想法吗?

org.apache.axis2.AxisFault: First Element must contain the local name, Envelope , but found html
 at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
 at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:90)
 at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:353)
 at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
 at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
 at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)


Caused by: org.apache.axiom.soap.SOAPProcessingException: First Element must contain the local name, Envelope , but found html
 at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:251)
 at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:209)
 at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:191)
 at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:172)
 at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:156)
 at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:105)
 at org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:677)
 at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:182)
 at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:112)
 at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:88)
Run Code Online (Sandbox Code Playgroud)

Far*_*ron 6

尝试使用像tcpmon这样的嗅探器来查看服务的实际响应.我的猜测是客户端正在使用服务器上不存在的目标URL,并且服务器正在使用包含HTML而不是SOAP信封的404进行响应.


Jav*_*Guy 6

这实际上是服务器遇到内部500错误并将HTML respose返回给客户端.