【问题标题】:running struts+tomcat6 application in linux+openJDK error在linux + openJDK错误中运行struts + tomcat6应用程序
【发布时间】:2012-09-08 04:46:39
【问题描述】:

尝试在 Eclipse 中运行我的应用程序时出现以下异常。

    Caused by: Unable to load configuration. - Class: java.net.AbstractPlainSocketImpl
    File: AbstractPlainSocketImpl.java
    Method: connect
    Line: 158 - java/net/AbstractPlainSocketImpl.java:158:-1
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
    ... 20 more
    Caused by: Unable to load jar:file:/var/lib/tomcat6/webapps/webapps/cute/WEB-         INF/lib    /struts2-jfreechart-plugin-2.3.4.jar!/struts-plugin.xml - Class:    java.net.AbstractPlainSocketImpl
File: AbstractPlainSocketImpl.java
Method: connect
Line: 158 - java/net/AbstractPlainSocketImpl.java:158:-1
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:898)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:143)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:110)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:168)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
    ... 22 more
Caused by: struts.apache.org - Class: java.net.AbstractPlainSocketImpl
File: AbstractPlainSocketImpl.java
Method: connect
Line: 158 - java/net/AbstractPlainSocketImpl.java:158:-1
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:893)
    ... 26 more
Caused by: java.net.UnknownHostException: struts.apache.org
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:546)
    at java.net.Socket.connect(Socket.java:495)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:174)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:409)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:240)
    at sun.net.www.http.HttpClient.New(HttpClient.java:321)
    at sun.net.www.http.HttpClient.New(HttpClient.java:338)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:814)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:755)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:680)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1005)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1291)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1258)
    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:259)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1167)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1064)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:977)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:624)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:486)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:810)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:740)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:110)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:113)
    ... 27 more

我已经在 Eclipse 中配置了默认服务器,并将 jar 文件添加到路径中。将 jar 文件放在 lib 文件夹中。

【问题讨论】:

  • hmmm,当它试图检索配置文件的.dtd 时,几乎看起来好像问题正在发生。也许您可以尝试将 DTD 复制并粘贴到配置文件的顶部,然后查看错误是否消失。当然,这不是一个很好的“解决方案”,但如果它有效,那么你就有了一些有效的方法,并且知道问题出在哪里。
  • 我认为我没有解决方案。我没有使用任何 DTD。
  • 您没有使用 struts.xml 文件吗?如果您正在使用它,那么它可能会以 &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"&gt; 的形式引用顶部的 dtd。将其替换为 dtd 内容(您可以从 URL 下载)。对您拥有的任何配置文件、struts.xml、validation.xml 文件等执行此操作。
  • 顺便说一句,openjdk 中的事情有时会变得很奇怪。我最近遇到了一些关于播放框架 + jasper 报告仅在 openjdk 上无法正确解析 bean 的问题,我们必须创建一个自定义解析器。哦,快乐!
  • 是的,你是对的。互联网连接是问题。下载了 DTD,现在没问题..Thanks@rees

标签: linux struts2 tomcat6 jfreechart openjdk


【解决方案1】:

如果您收到类似

的异常

引起:java.net.UnknownHostException:struts.apache.org

在构建 Struts2 XML 配置期间,有一些东西阻止了应用程序成功检索 DTD

更改 doctype 声明
   <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

到本地引用或只是将 DTD 内容复制并粘贴到其位置将解决问题。

【讨论】:

  • 我也想指出这一点。我使用的是 struts2-jfreechart-plugin-2.3.4.jar,它的 struts-plugin.xml DTD 是 2.3,而我在 Struts.xml 中的 DTD 是 2.0。所以下载了 struts2-jfreechart-plugin-2.1.8.jar 并替换了它。从而解决了问题。谢谢@rees。
猜你喜欢
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 2010-12-21
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多