2011-05-02 12 views
0

xmlに当たって応答を入力ストリームに戻しています。このxmlはリモートサーバー上にあります。1つのマシンでJDOMExceptionを取得しても、同じxmlが別のマシンで正常に動作する

私はコードをサーバー上で実行しているときはいつも、JDOMExceptionを返しますが、同じコードをローカルマシン上で実行していて、同じxmlをリモートサーバー上で実行しています。 1行目でエラー:無効なXML文字(ユニコード:コードに5C)が公開識別子で見つかった

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です。 com.cellularsouth.dao.appsdetails.GetAndroidApps.getCategoriesDataでorg.jdom.input.SAXBuilder.build(SAXBuilder.java:770) でorg.jdom.input.SAXBuilder.build(SAXBuilder.java:468) (AT GetAndroidApps.java:42) at com.cellularsouth.discovercenter.appsdetails.web.AndroidApps.androidCategoryData(AndroidApps.java:28) at com.cellularsouth.servlets.discovercentercontroller.handleRequestInternal(discovercentercontroller.java:62) at org springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet。 DispatcherServlet.doDispatch(DispatcherServlet.java:875)(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet。 FrameworkServlet.doGet(FrameworkServlet.java:501) (javax.servlet.http.HttpServlet.java:743) (javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 、weblogic) weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.javaでweblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) でservlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:227) : 283) weblogic.servlet.internal.ServletS weblogic.security.acl.internal.AuthenticatedSubject.doAs(authenticatedSubject.java:321)のtubImpl.execute(ServletStubImpl.java:175) weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run(WebAppServletContext.java:3231) weblogic.servlet.internal.WebAppServletContext.executeでweblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002) でweblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) (WebAppServletContextで 。 Javaの:1908)weblogic.servlet.internal.ServletRequestImpl.runで (weblogic.work.ExecuteThread.runでweblogic.work.ExecuteThread.executeでServletRequestImpl.java:1362) (ExecuteThread.java:209) (ExecuteThread。 java:181) 原因:org.xml.sax.SAXParseException:公開識別子に無効なXML文字(Unicode:0x5c)が見つかりました。 org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(不明なソース)org.apache.xerces.util.ErrorHandlerWrapper.fatalErrorで (不明なソース)org.apache.xerces.impl.XMLErrorReporter.reportErrorで (不明なソースで org.apache.xerces.impl.XMLErrorReporter.reportError(不明なソースで) )org.apache.xerces.impl.XMLScanner.reportFatalErrorで (不明なソース)

それは私が、実際に私の最初の行でエラーが発生しますここで何か問題を見ることはできません。 XMLは

--------------------------

私は-----続けていますここで問題になる可能性があることを理解できず、同じXMLがあるマシンで正常に実行されていて、他のマシンでは正常に実行されていません。 XMLに問題はありません。

私を助けてください。

ありがとうHP

+0

昨日は回答しましたが、仕事が終わってから再転記しています。 – Gendaful

+0

XMLを追加して、より多くの手がかりを与えてください –

答えて

0

私は問題があります。問題は、私のサーバーがUNIXで動作していて、localhostがWindows上で動作していたことです。だから、xmlは適切にエンコードされていないので、Unixはいくつかのカッコを見つけることができず、Parsingエラーが出ていましたが、Windows上でうまく表示されていました。

関連する問題