2011-05-02 148 views
0

我點擊一個xml並在inputstream中獲取響應。這個XML在遠程服務器上。在一臺機器上獲取JDOMException,但同一個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)中的公共標識符被發現。 (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) 在com.cellularsouth.servlets.discovercentercontroller.handleRequestInternal(discovercentercontroller.java:62) 的組織。 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) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet。在weblogic處,javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 處的FrameworkServlet.doGet(FrameworkServlet.java:501) (javax.servlet.http.HttpServlet.service(HttpServlet.java:743) )。 servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java: 283) at weblogic.servlet.internal.ServletS tubImpl.execute(ServletStubImpl.java:175) 在weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run(WebAppServletContext.java:3231) 在weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 在weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002) 在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字符(Unicode:0x5c)。 at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source ) 在org.apache.xerces.impl.XMLErrorReporter.reportError(來源不明) 在org.apache.xerces.impl.XMLScanner.reportFatalError(來源不明)

它給了我錯誤的第一行,但實際上我無法看到任何問題在這裏。 XML是

--------------------------繼續-----

我無法弄清楚這裏有什麼問題,同一個xml在一臺機器上運行正常,而不是在其他機器上運行。這個xml沒有問題。

請幫幫我。

謝謝惠普

+0

昨天已經回答了,但是由於它的工作,我正在重新發布它。 – Gendaful 2011-05-02 15:15:55

+0

請附上XML給我們更多的線索 – 2011-05-05 08:16:01

回答

0

我得到了問題。問題是,我的服務器在UNIX中運行,我的本地主機在Windows上運行。所以,xml沒有正確編碼,所以Unix無法找到一些字符,它給了我解析錯誤,但是它們在Windows上渲染得很好。

相關問題