Webservice地址:http://*.*.*.*/podetailws.asmx(不好意思,由于安全问题*.*.*.*表示IP地址)利用axis自动生成的客户端类,执行时出现下面的错误,请教是什么原因。java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:324)
  at psdi.webclient.system.beans.DataBean.callRemoteMethod(DataBean.java:5
255)
  at psdi.webclient.system.beans.DataBean.callRemoteMethod(DataBean.java:5
238)
  at psdi.webclient.system.tags.DefaultHandlerTag.doStartTag(DefaultHandle
rTag.java:105)
  at jsp_servlet._webclient._controls._presentation.__control._jspService(
__control.java:2236)
  at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
  at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
  at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
  at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:315)
  at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispat
cherImpl.java:642)
  at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispat
cherImpl.java:423)
  at psdi.webclient.system.controller.ControlHandler.handleEvent(ControlHa
ndler.java:190)
  at psdi.webclient.system.controller.RequestHandler.handleEvent(RequestHa
ndler.java:729)
  at psdi.webclient.system.controller.RequestHandler.handleRequest(Request
Handler.java:294)
  at psdi.webclient.servlet.WebClientServlet.handleRequest(WebClientServle
t.java:114)
  at psdi.webclient.servlet.WebClientServlet.doPost(WebClientServlet.java:
44)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
  at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
  at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
  at psdi.webclient.system.filter.HttpGZIPFilter.doFilter(HttpGZIPFilter.j
ava:73)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6724)
  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
121)
  at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3764)
  at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2644)
  at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
  at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Caused by: org.xml.sax.SAXParseException: Character reference "&#0" is an invali
d XML character.
  at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
  at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:543)
  at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
  at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
  at org.apache.axis.client.Call.invoke(Call.java:2553)
  at org.apache.axis.client.Call.invoke(Call.java:2248)
  at org.apache.axis.client.Call.invoke(Call.java:2171)
  at org.apache.axis.client.Call.invoke(Call.java:1691)
  at cnooc.app.webService.PODetailWSSoapStub.getPODetail(PODetailWSSoapStu
b.java:327)
  at cnooc.app.pack.CustPack.copyPOline(CustPack.java:146)
  at cnooc.app.pack.CustPack.COPYSAPPO(CustPack.java:104)
  ... 34 more
Caused by: org.xml.sax.SAXParseException: Character reference "&#0" is an invali
d XML character.
  at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXPar
ser.java:1189)
  at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)  at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:152)  at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
  at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:242)
  at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
  ... 43 more我查了下,是在执行远程访问的invoke()函数时出现的“org.xml.sax.SAXParseException: Character reference "&#0" is an invalid XML character,”错误。
请问可能是什么原因?该如何解决,感激不尽。谢谢。我的QQ是4784182,欢迎加我的QQ互相交流。

解决方案 »

  1.   

    org.xml.sax.SAXParseException: Character reference "&#0" is an invalid XML character,
    应该是解析的时候出错。
    首先,
    &#0少了个分号,不过即使加上那个分号通过Unicode转码也转换不出东西。应该是个不合法的字符。你应该看下你的Webservice地址(应该是个wsdl文件)那个xml文件中是否有非法字符。
      

  2.   

    谢谢二楼的回答,WSDL文件我用XMLSPY工具验证是没问题的,用HTTP直接测试能显示查询的XML文件,但用XMLSPY打开HTTP查询的XML文件,提示有下面一部分有异常:
      <getRefStruData>
        <BAPIPAREX>
          <STRUCTURE xmlns="">BAPI_TE_PO_HEADER</STRUCTURE>
          <VALUEPART1 xmlns="">4500019203&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;</VALUEPART1>
          <VALUEPART2 xmlns="">&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;</VALUEPART2>
          <VALUEPART3 xmlns="">&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;</VALUEPART3>
          <VALUEPART4 xmlns="">&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;&#x0;</VALUEPART4>
        </BAPIPAREX>
              </getRefStruData>由于我没权限修改WEBSERVICE服务器,我将得到的WSDL文件的上面有异常的这一部分去掉再重新生成客户端类,但还是不行,这种现象是不是表示WEBSERVICE服务器有问题?是不是必须在服务器端修改?
      

  3.   

    org.xml.sax.SAXParseException: Character reference "&#0" is an invalid XML character
    引用了"&#0"的Character 不是合法的xml字符。应该是xml格式问题。
      

  4.   

    看了你的3楼的说明,服务器端应该没有问题,他返还给你了结果的XML文件,但是你解析接收到的这个结果的时候出错了。我对这个不是很精通,也只能帮你找找问题所在却提供不出解决方法。你自己写客户端代码试试看,或者主动处理一下xml文件中的这些&#x0;如果解决了希望共享下解决方法..
      

  5.   

    谢谢上述大侠的光临解答,我大概知道是调用远程访问INVOKE()时XML解析时出现的错误,也大概能确定是在XML解析的哪部分数据有问题:
    1、由于我没办法查看和处理服务器端,我想请问能不能通过INVOKE()方法的相关参数设定来强制执行解析(即不管有没有错误强制执行)或者只解析我需要调取的那一部分数据,因为出错的这部分数据我完全可以不要。
    2、如果哪位高手有其它解决方法也可以。期盼各位光临指教,谢谢!