请求在我的本地环境中正常工作,并且在部署的环境中不起作用.来自包括soapui在内的各种客户尝试了请求.代码部署在WAS上
Axis2的
org.apache.axis2.AxisFault: First Element must contain the local name,Envelope,but found deFinitions at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123) at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67) at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604) Caused by: org.apache.axiom.soap.soAPProcessingException: First Element must contain the local name,but found deFinitions at java.lang.Throwable.<init>(Throwable.java:67)
解决方法
这是服务器未返回预期的xml响应格式的问题.这可能是由使用不正确的服务端点URL引起的.
要解决此问题,请确保Axis代码中使用的URL与代码所基于的WSDL中的端点的URL相匹配.
WSDL中的位置:
<service name="ServiceName"> <port name="PortName" binding="typens:PortNameBinding"> <soap:address location="http://yourdomain.com/api/soap/"/> </port> </service>
代码中的相应位置通常位于两个位置的ServiceNameStub类中:
/** * Default Constructor */ public ServiceNameStub( org.apache.axis2.context.ConfigurationContext configurationContext) throws org.apache.axis2.AxisFault { this(configurationContext,"http://yourdomain.com/api/soap/"); } /** * Default Constructor */ public ServiceNameStub() throws org.apache.axis2.AxisFault { this("http://yourdomain.com/api/soap/"); }
只需确保这两个URL与您在WSDL文件中的服务端口的soap:address处找到的URL匹配.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。