2011-08-08 3 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; 
     } 

임 예외 주어진 ///// : 자바에서 subUrL.mydomain.com :

java.net.UnknownHostException을 .net.PlainSocketImpl.connect (PlainSocketImpl.java:196) at java.net.SocksSocketImpl.connect (SocksSocketImpl.java:378) at java.net.Socket.connect (Socket.java:537) 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) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient (HttpURLConnection.java:855) at 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) sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 java.lang.reflect.Method.invoke에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:37) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:48) (Method.java의 방법) : 600) at com.ibm.jscript.types.JavaAccessObject.call (JavaAccessObject.java:321) at com.ibm.jscript.types.FBSObject.call (FBSObject.java:161) com.ibm.jscript .ASTTree.ASTCall.interpret (ASTCall.java:175) at com.ibm.jscript.ASTTree.ASTVa com.ibm.jscript.std.FunctionObject.executeFunction에서 com.ibm.jscript.std.FunctionObject._executeFunction (FunctionObject.java:261) 에서 riableDecl.interpret (ASTVariableDecl.java:82) (FunctionObject.java : 185) at com.ibm.jscript.std.FunctionObject.call (FunctionObject.java:171) 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) com.ibm.jscript.JSExpression.access $ 1 (JSExpression.java:424) at com.ibm.jscript.JSExpression $ 2.run (JSExpression. 자바 : 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.해석 com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue (JavaScriptValueBinding.java에서 com.ibm.xsp.javascript.JavaScriptInterpreter.interpret (JavaScriptInterpreter.java:192)에서 (JavaScriptInterpreter.java:220) : 7835) at javax.faces.component.UIOutput.getValue (UIOutput.java:159) at com.ibm.xsp.util.FacesUtil.convertValue (FacesUtil.java:1073) at com.ibm.xsp.renderkit. javax.faces.component.UIComponentBase.encodeEnd (UIComponentBase.java에서 html_basic.OutputTextRenderer.encodeEnd com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd (ReadOnlyAdapterRenderer.java:153)에서 (OutputTextRenderer.java:91) : 1005) 에서 com.ibm.xsp.util.FacesUtil.renderComponent (FacesUtil.java:809) com.ibm.xsp.util.FacesUtil.renderComponent (FacesUtil.java:804) at com.ibm.xsp.util. FacesUtil.renderComponent (FacesUtil.java:804) at com.ibm.xsp.util.FaceUtil.renderComponent (FacesUtil.java:804) at com.ibm.xsp.util.FacesUtil.renderComponent (FacesUtil.java:804) com.ibm.xsp에서 com.ibm.xsp.component.UIViewRootEx.renderView에서 com.ibm.xsp.component.UIViewRootEx._renderView (UIViewRootEx.java:1272) (UIViewRootEx.java:1210)에서 . application.ViewHandlerExImpl.doRender (ViewHandlerExImpl.java:635) at com.ibm.xsp.application.ViewHandlerExImpl._renderView (ViewHandlerExImpl.java:320) com.sun.faces.lifecycle.RenderResponsePhase.execute (RenderResponsePhase.java:103) com.sun.faces에서 에서 com.ibm.xsp.application.ViewHandlerExImpl.renderView (ViewHandlerExImpl.java:355) 에서 . lifecycle.LifecycleImpl.phase com.ibm.xsp.controller.FacesControllerImpl.render에서 com.sun.faces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:120)에서 (LifecycleImpl.java:210) (FacesControllerImpl. 자바 : com.ibm.xsp.webapp.FacesServletEx.serviceView (FacesServletEx.java:193에서 com.ibm.xsp.webapp.FacesServlet.serviceView (FacesServlet.java:219) ) 264) com.ibm에서 .xsp.webapp.FacesServlet.service (Fa 에서 com.ibm.xsp.webapp.FacesServletEx.service에서 cesServlet.java:154) com.ibm.xsp.webapp.DesignerFacesServlet.service (DesignerFacesServlet.java:86에서 (FacesServletEx.java:137)) 닷컴 에서 .ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet (NSFComponentModule.java:1140)에서 (ComponentModule.java:538) 닷컴 .ibm.designer.runtime.domino.adapter.ComponentModule $ AdapterInvoker.invokeServlet (ComponentModule.java:803) ( ) com.ibm.designer.runtime.domino.adapter.ComponentModule $ ServletInvoker.doService (ComponentModule.java:758) at com.ibm.designer.runti me.domino.adapter.ComponentModule.doService com.ibm.domino에서 com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService (NSFComponentModule.java:1124) 에서 (ComponentModule.java:527) . xsp.module.nsf.NSFService.doServiceInternal com.ibm.designer에서 com.ibm.domino.xsp.module.nsf.NSFService.doService (NSFService.java:342) 에서 (NSFService.java:513) . runtime.domino.adapter.LCDEnvironment.doService com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service (LCDEnvironment.java:261)에서 (LCDEnvironment.java:304) 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()에 문제가 있습니다. 아직 전화도 안 했어.