我的项目使用的是Xerces2.11.0。但是,我在朗姆酒时间犯了错误。错误的堆栈跟踪如下:
java.lang.Exception: org.openid4java.discovery.DiscoveryException: 0x70d: Error parsing XML document
at org.iitk.brihaspati.modules.actions.GoogleRequest.performDiscoveryOnUserSuppliedIdentifier(GoogleRequest.java:83)
at org.iitk.brihaspati.modules.actions.GoogleLogin.doPerform(GoogleLogin.java:86)
at org.apache.turbine.modules.actions.VelocityAction.doPerform(VelocityAction.java:84)
at org.apache.turbine.util.velocity.VelocityActionEvent.perform(VelocityActionEvent.java:120)
at org.apache.turbine.modules.actions.VelocityAction.perform(VelocityAction.java:110)
at org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:134)
at org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:154)
at org.apache.turbine.modules.Page.build(Page.java:91)
at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:136)
at org.apache.turbine.Turbine.doGet(Turbine.java:796)
at org.apache.turbine.Turbine.doPost(Turbine.java:891)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:466)
at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
at java.lang.Thread.run(Thread.java:636)
Caused by: org.openid4java.discovery.DiscoveryException: 0x70d: Error parsing XML document
at org.openid4java.discovery.xrds.XrdsParserImpl.parseXmlInput(XrdsParserImpl.java:197)
at org.openid4java.discovery.xrds.XrdsParserImpl.parseXrds(XrdsParserImpl.java:50)
at org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:448)
at org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:252)
at org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232)
at org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:166)
at org.openid4java.discovery.Discovery.discover(Discovery.java:147)
at org.openid4java.discovery.Discovery.discover(Discovery.java:129)
at org.openid4java.consumer.ConsumerManager.discover(ConsumerManager.java:542)
at org.iitk.brihaspati.modules.actions.GoogleRequest.performDiscoveryOnUserSuppliedIdentifier(GoogleRequest.java:74)
... 46 more
Caused by: org.xml.sax.SAXParseException: s4s-att-invalid-value: Invalid attribute value for 'targetNamespace' in element 'schema'. Recorded reason: cvc-datatype-valid.1.2.1: 'xri://$xrd*($v*2.0)' is not a valid value for 'anyURI'.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at org.openid4java.discovery.xrds.XrdsParserImpl.parseXmlInput(XrdsParserImpl.java:188)
... 55 more
我也试过其他版本,比如Xerces2.8.1和Xerces2.8.0。但是,每次我犯同样的错误。
最佳答案
这里给出了问题和可能的解决方案:
http://code.google.com/p/openid4java/issues/detail?id=122
关于java - 解析XML文档时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10613065/