首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Caused by: org.xml.sax.SAXParseException: Character reference "&

2011-11-09 
求教关于java调用webservice的问题Webservice地址:http://*.*.*.*/podetailws.asmx(不好意思,由于安全问题

求教关于java调用webservice的问题
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互相交流。



[解决办法]
org.xml.sax.SAXParseException: Character reference "&#0" is an invalid XML character,
应该是解析的时候出错。
首先,
&#0少了个分号,不过即使加上那个分号通过Unicode转码也转换不出东西。应该是个不合法的字符。你应该看下你的Webservice地址(应该是个wsdl文件)那个xml文件中是否有非法字符。
[解决办法]
org.xml.sax.SAXParseException: Character reference "&#0" is an invalid XML character
引用了"&#0"的Character 不是合法的xml字符。应该是xml格式问题。
[解决办法]
看了你的3楼的说明,服务器端应该没有问题,他返还给你了结果的XML文件,但是你解析接收到的这个结果的时候出错了。

我对这个不是很精通,也只能帮你找找问题所在却提供不出解决方法。你自己写客户端代码试试看,或者主动处理一下xml文件中的这些�

如果解决了希望共享下解决方法..

热点排行