2011-08-08 36 views
0

即時通訊嘗試解析來自給定的URL的一些XML。代碼如下:問題與Documentbuilder.parse()

try { 

       URL myUrl = new URL(sURL); 
       URLConnection c = myUrl.openConnection(); 

       c.setConnectTimeout(5000); 
       c.setReadTimeout(5000); 

       org.w3c.dom.Document doc = readXml(c.getInputStream());} 

/////

public static org.w3c.dom.Document readXml(InputStream is) throws SAXException, IOException, 
      ParserConfigurationException { 
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
      dbf.setValidating(false); 
      dbf.setIgnoringComments(false); 
      dbf.setIgnoringElementContentWhitespace(true); 
      dbf.setNamespaceAware(true); 
      DocumentBuilder db = null; 
      db = dbf.newDocumentBuilder(); 
      org.w3c.dom.Document doc = db.parse(is);  
     return doc; 
     } 

林給出的例外:

的java.net.UnknownHostException:subUrL.mydomain.com在 的java .net.PlainSocketImpl.connect(PlainSocketImpl.java:196)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:378)at java.net.Socket.connect(Socket.java:537)at sun.net.NetworkClient.doConnect(NetworkClient.java:170)at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)at sun.net.www.http.HttpClient.openServer(HttpClient .java:530)at sun.net.www.http.HttpClient。(HttpClient.java:234)at sun.net.www.http.HttpClient.New(HttpClient.java:307)at sun.net。 www.http.HttpClient.New(HttpClient.java:324)在 sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:855) 在 sun.net.www.protocol.http.HttpURLConnection .plainConnect(HttpURLConnection.java:740) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:721) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1044) at com.eoffice.xml.RSSReader.getLimitedRSS(RSSReader.java:71)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在java.lang.reflect.Method.invoke(Method.java :600)at com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:321) at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)at com.ibm.jscript .ASTTree.ASTCall.interpret(ASTCall.java:175)at com.ibm.jscript.ASTTree.ASTVa riableDecl.interpret(ASTVariableDecl.java:82) 在 com.ibm.jscript.std.FunctionObject._executeFunction(FunctionObject.java:261) 在 com.ibm.jscript.std.FunctionObject.executeFunction(FunctionObject.java: 185) at com.ibm.jscript.std.FunctionObject.call(FunctionObject.java:171)at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)at com.ibm.jscript。 ASTTree.ASTCall.interpret(ASTCall.java:175)at com.ibm.jscript.ASTTree.ASTVariableDecl.interpret(ASTVariableDecl.java:82) at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java: 119) at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139) at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435) at com.ibm.jscript.JSExpression.access $ 1(JSExpression.java:424)at com.ibm.jscript.JSExpression $ 2.run(JSExpression。的java:414)在 java.security.AccessController.doPrivileged(AccessController.java:284) 在 com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410) 在com.ibm.jscript.JSExpression.evaluateValue (JSExpression.java:251) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234) at com.ibm.xsp.javascript.JavaScriptInterpreter。解釋(JavaScriptInterpreter.java:220) 在 com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:192) 在 com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java: 78) atjavax.faces.component.UIOutput.getValue(UIOutput.java:159)com.ibm.xsp.util.FacesUtil.convertValue(FacesUtil.java:1073)at com.ibm.xsp.renderkit。 html_basic.OutputTextRenderer.encodeEnd(OutputTextRenderer.java:91) 在 com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:153) 在 javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 1005) at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:809)at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)at com.ibm.xsp.util。 FacesUtil.renderComponent(FacesUtil.java:804)at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)在 com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1272) 在 com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1210) 在 com.ibm.xsp。 application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:635) at com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:320) 在 com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:355) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103) 在com.sun.faces。 lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210) 在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120) 在 com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl。的java:264) 在com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:219) 在 com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:193) 在com.ibm .xsp.webapp.FacesServlet.service(發cesServlet.java:154)在 com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)在 com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:86) 在 COM .ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:538) 在 com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1140) 在 COM .ibm.designer.runtime.domino.adapter.ComponentModule $ AdapterInvoker.invokeServlet(ComponentModule.java:803) at com.ibm.designer.runtime.domino.adapter.ComponentModule $ ServletInvoker.doService(ComponentModule.java:758) at com.ibm.designer.runti me.domino.adapter.ComponentModule.doService(ComponentModule.java:527) 在 com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1124) 在 com.ibm.domino。 xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:513) 在 com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:342) 在 com.ibm.designer。 runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:304) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:261) at com.ibm.domino。 xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager。java:291)

當我嘗試在瀏覽器中打開相同的URL時,結果是一個不錯的RSS-XML頁面。任何人都知道這可能是什麼? 在錯誤中,我已經刪除了實際的URL。輸入url的格式爲:http://subdomain.domain.com/somepath/somebase.nsf/form?ReadForm&newsCode=code

回答

1

java.net.UnknownHostException: subUrL.mydomain.com點有DNS問題。我假設你已經用一個例子替換了實際的URL。在這種情況下,檢查您的網絡設置並檢查JVM是否可以正確解析URL。

+0

謝謝。正如您正確指出的那樣,它最有可能是一個DNS問題。 – matskn

0

這不是'最有可能的',而是肯定是的DNS問題。沒有別的東西可以脫離錯誤的URL。當然不是 DocumentBuilder.parse()的一個問題。你甚至還沒有打過電話。