Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在从thid party url读取xml时出现此异常_Java_Xml_Weblogic - Fatal编程技术网

Java 为什么在从thid party url读取xml时出现此异常

Java 为什么在从thid party url读取xml时出现此异常,java,xml,weblogic,Java,Xml,Weblogic,我正在编写一个程序来连接到第三方url并从那里读取xml。虽然它在windows环境下tomcat服务器上的本地机器上运行得很好,但当我在linux环境下的weblogic上部署它时,我得到了一个异常。谢谢你的帮助。提前谢谢 以下是代码片段: HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("GET"); connection.s

我正在编写一个程序来连接到第三方url并从那里读取xml。虽然它在windows环境下tomcat服务器上的本地机器上运行得很好,但当我在linux环境下的weblogic上部署它时,我得到了一个异常。谢谢你的帮助。提前谢谢

以下是代码片段:

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
  connection.setRequestMethod("GET");
      connection.setDoInput(true);
   connection.connect();

   log.info("Confirmation URL getURL(): "+connection.getURL());
   log.info("Confirmation URL getContentEncoding: "+connection.getContentEncoding());
   log.info("Confirmation URL getContentType: "+connection.getContentType());
   log.info("Confirmation URL getContentLength: "+connection.getContentLength());
   log.info("Confirmation URL getContent(): "+connection.getContent());
   log.info("Confirmation URL getAllowUserInteraction(): "+connection.getAllowUserInteraction());
   log.info("Confirmation URL getClass(): "+connection.getClass());
   log.info("Confirmation URL getHeaderFields(): "+connection.getHeaderFields());
   Map<String,List<String>> requestProperties = connection.getRequestProperties();

   if(requestProperties!=null){
    Iterator<String> keysIterator = requestProperties.keySet().iterator();
    while (keysIterator.hasNext()) {
     String key = (String) keysIterator.next();
     log.info("********* RequestProperty "+key+" : "+requestProperties.get(key));
    }
   }
   else {
    log.info("requestProperties is null ");
   }



      InputStream xmlcontent = connection.getInputStream();

   Date date = new Date();

   DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
     .newInstance();
   DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
   Document doc = docBuilder.parse(xmlcontent); // <-- exception thrown here

例外情况表明:

文档中根元素后面的标记必须格式正确

因此,我希望通过的文档是无效的,因为它不是格式良好的XML。为了解决这个问题,最好在调试期间将流的输出捕获到字符串中(或将其重定向到文件等),这样您就可以准确地调查哪些字符可以传递到另一端


出现这种情况的原因有多种(例如,您从Web服务器收到404/500错误-HTML页面几乎肯定是“接近XML”,但格式不正确)。您需要查看实际数据以了解发生了什么,因为我认为这确实是来自服务器的错误消息。

异常状态表明

文档中根元素后面的标记必须格式正确

因此,我希望通过的文档是无效的,因为它不是格式良好的XML。为了解决这个问题,最好在调试期间将流的输出捕获到字符串中(或将其重定向到文件等),这样您就可以准确地调查哪些字符可以传递到另一端

出现这种情况的原因有多种(例如,您从Web服务器收到404/500错误-HTML页面几乎肯定是“接近XML”,但格式不正确)。您需要查看实际数据以了解发生了什么,因为我希望这确实是来自服务器的错误消息。

谢谢您的回复。 事实上,返回的服务器状态是301,所以在从其中一个博客获得线索后(http://tech.rationalaspect.com/2010/10/301-moved-permanently-urlconnection-and.html)在谷歌搜索时,我只是在基本url的末尾添加了一个“/”,这对我来说很有效。尽管如此,我不能完全肯定这有什么不同。

谢谢您的回复。
事实上,返回的服务器状态是301,所以在从其中一个博客获得线索后(http://tech.rationalaspect.com/2010/10/301-moved-permanently-urlconnection-and.html)在谷歌搜索时,我只是在基本url的末尾添加了一个“/”,这对我来说很有效。尽管如此,我不能完全确定这会有什么不同。

请重新格式化代码:只需在代码行开头加4个空格(或一个制表符)请重新格式化代码:只需在代码行开头加4个空格(或一个制表符)
org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
 at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
 at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1414)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDriver.next(XMLDocumentScannerImpl.java:1423)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
 at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
 at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
 at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
 at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:163)
 at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.readXml(OrderConfirmationTask.java:337)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.getFeed(OrderConfirmationTask.java:213)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.generateUrlToHit(OrderConfirmationTask.java:161)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.processRequest(OrderConfirmationTask.java:112)
 at com.scea.shoppingcart.controller.OrderConfirmationJob.executeInternal(OrderConfirmationJob.java:22)
 at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
 at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
 at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
2011-01-20 16:06:01,539 [ERROR] - ==Exception processing Order Confirmation XML !!!==The markup in the document following the root element must be well-formed.=stackTrace=org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
 at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
 at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1414)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDriver.next(XMLDocumentScannerImpl.java:1423)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
 at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
 at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
 at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
 at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:163)
 at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.readXml(OrderConfirmationTask.java:337)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.getFeed(OrderConfirmationTask.java:213)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.generateUrlToHit(OrderConfirmationTask.java:161)
 at com.scea.shoppingcart.controller.OrderConfirmationTask.processRequest(OrderConfirmationTask.java:112)
 at com.scea.shoppingcart.controller.OrderConfirmationJob.executeInternal(OrderConfirmationJob.java:22)
 at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
 at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
 at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)