Java Tomcat-Axis1.4-org.xml.sax.SAXParseException;行号:x;列数:y;字符引用“&#

Java Tomcat-Axis1.4-org.xml.sax.SAXParseException;行号:x;列数:y;字符引用“&#,java,maven,axis,rpc,saxparser,Java,Maven,Axis,Rpc,Saxparser,我们正在从Weblogic转向Tomcat 在Weblogic中,我们使用Weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask和ant从WSDLs生成webservice客户端JAR。 在Tomcat中,我们尝试将Axis1.4与Maven一起使用,以生成相同的webservice客户端 其中一个webservice调用正在响应以下示例: HTTP/1.1 200 OK Content-Type: text/xml; charset=

我们正在从Weblogic转向Tomcat

在Weblogic中,我们使用
Weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask
和ant从WSDLs生成webservice客户端JAR。 在Tomcat中,我们尝试将Axis1.4与Maven一起使用,以生成相同的webservice客户端

其中一个webservice调用正在响应以下示例:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 04 Jul 2017 20:35:37 GMT
Connection: close
Content-Length: 898

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body>
<MyRequestResponse xmlns="http://tempuri.org/">
<MyRequestResult>~BLDSQPQP(........)26787&#x2;00000  000  </MyRequestResult>
</MyRequestResponse>
</s:Body></s:Envelope>
注意:我们目前无法更新到Axis 2,因为我们使用的是RPC编码的WSDL

编辑-请参见下面Weblogic如何处理此字符

在Eclipse调试器中(使用Weblogic)

在记事本++中(使用Weblogic检索的响应如上所述)

Tomcat能够处理这类字符,axis的XML解析器却不能

尝试使用筛选器拦截响应,并用空格替换错误字符以保留响应结构(如果这对您很重要):


显然,如果可能,请修复向您的应用程序发送响应中此类字符的服务。

Axis的行为在这里是正确的,请参阅。另见@RC。我知道Axis的行为在这里可能是正确的。但是,我仍然希望能够解析XML(如果需要,可以使用1.1),并让它理解实体(因为它们无论如何都是有效的)。有什么办法吗?谢谢。我可能会使用一些请求来获取内容(HttpClient),替换错误的内容(或
@RC。非常感谢。请参阅我上面的编辑。Weblogic似乎能够读取XML实体并以自己的方式处理它。至少我们能够获得响应并对其进行处理。对于Tomcat和Axis 1.4,我们无法得到响应,因为它会因上述异常而崩溃。对于Axis 2,我们只得到“null”当我们提出这个请求时。你知道我们是否可以让Tomcat/Axis像Weblogic一样运行吗?非常感谢。你能尝试用-Dfile.encoding=UTF-8启动java vm吗?如果没有帮助的话,试试-Dfile.encoding=ISO-8859-1。我知道这听起来很奇怪,但我发现这些信息是解决方法。也许这对你有帮助你也是吗?
service = new BrowserServiceLocator();
service.setEndpointAddress("HttpWebService", webserviceUrl);
IBrowserService myService = (IBrowserService) service.getHttpWebService();
myResponse = myService.myRequest(object, verb, user.getMyUser(), user.getCenter(), inputData);