0

私はxmlをヒットし、inputstreamに応答を返しています。このxmlはリモートサーバー上にあります。

サーバーでコードを実行すると、JDOMExceptionが発生しますが、同じコードをローカルマシンで実行し、リモートサーバーで同じxmlを実行すると、正常に実行されます。

URL url = new URL("http://testwww.net/xml/android.xml");

InputStream stream = url.openStream();
try {
    SAXBuilder builder = new SAXBuilder(false);
    xmlDocument = builder.build(stream);
} catch (JDOMException e) {
    throw new Exception("unable to read android listing document", e);
}

スタックトレースは

org.jdom.input.JDOMParseException:1行目のエラー:無効なXML文字(Unicode:0x5c)がパブリック識別子で見つかりました。at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)at org.jdom.input.SAXBuilder.build(SAXBuilder.java:770)at com.cellularsouth.dao.appsdetails.GetAndroidApps.getCategoriesData(GetAndroidApps.java :42)com.cellularsouth.discovercenter.appsdetails.web.AndroidApps.androidCategoryData(AndroidApps.java:28)at com.cellularsouth.servlets.discovercentercontroller.handleRequestInternal(discovercentercontroller.java:62)atorg.springframework.web.servlet。 mvc.AbstractController.handleRequest(AbstractController.java:153)at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)atorg.springframework.web.servlet.DispatcherServlet。WebAppServletContext $ ServletInvocationAction.run(WebAppServletContext.java:3231)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)at weblogic .servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)原因:org.xml.sax.SAXParseException:無効なXML文字(ユニコード:0x5c)はパブリック識別子で見つかりました。org.apache.xerces.util.ErrorHandlerWrapperで。

最初の行にエラーが表示されますが、実際にはここでは問題が発生しません。XMLは

- - - - - - - - - - - - - 継続する - - -

ここで何が問題になるのか理解できません。同じxmlが一方のマシンで正常に実行されており、もう一方のマシンでは正常に実行されていないということです。xmlに問題はありません。

私を助けてください。

ありがとうHp

4

1 に答える 1

0

問題が発生しました。問題は、サーバーが UNIX で実行されていて、localhost が Windows で実行されていることでした。そのため、xml が適切にエンコードされていなかったため、Unix はいくつかの文字を見つけることができず、解析エラーが発生していましたが、Windows では正常にレンダリングされていました。

于 2011-05-05T18:45:13.897 に答える