struts2的helloworld程序部署报错的解决方案

来源:互联网 发布:淘宝小也旗舰店靠谱吗 编辑:程序博客网 时间:2024/06/05 22:12

在初次学习struts2的过程中,遇到困难是很正常的事情,我相信,每个人在接触新技术时,最先做的就是创建helloworld小程序,我在创建基于struts2的demo时,在myeclipse中部署程序的时候,遇到了如下的错误:

Caused by: http://struts.apache.org/dtds/struts-2.5.dtd - Class: sun.net.www.protocol.http.HttpURLConnectionFile: HttpURLConnection.javaMethod: getInputStreamLine: 1303 - sun/net/www/protocol/http/HttpURLConnection.java:1303:-1at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:885)... 24 moreCaused by: java.io.FileNotFoundException: http://struts.apache.org/dtds/struts-2.5.dtdat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1303)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1192)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1089)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1002)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)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:107)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:113)... 25 more2014-8-2 17:48:36 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks严重: The web application [/StrutsDemo] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@41a330e4]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@40deea66]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.2014-8-2 17:48:36 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks严重: The web application [/StrutsDemo] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@6aeeefcf]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@6cc235e1]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.2014-8-2 17:48:38 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info信息: Parsing configuration file [struts-default.xml]2014-8-2 17:48:38 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info信息: Unable to locate configuration files of the name struts-plugin.xml, skipping2014-8-2 17:48:38 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info信息: Parsing configuration file [struts-plugin.xml]2014-8-2 17:48:38 org.apache.catalina.core.StandardContext filterStart严重: Exception starting filter struts2Unable to load configuration. - Class: sun.net.www.protocol.http.HttpURLConnectionFile: HttpURLConnection.javaMethod: getInputStreamLine: 1303 - sun/net/www/protocol/http/HttpURLConnection.java:1303:-1at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:48)at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3954)at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1270)at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1439)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:315)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1374)at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)at java.lang.Thread.run(Thread.java:619)Caused by: Unable to load file:/F:/apache-tomcat-7.0.42/webapps/StrutsDemo/WEB-INF/classes/struts.xml - Class: sun.net.www.protocol.http.HttpURLConnectionFile: HttpURLConnection.javaMethod: getInputStreamLine: 1303 - sun/net/www/protocol/http/HttpURLConnection.java:1303:-1at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:890)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:144)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:111)at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:164)at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)... 21 moreCaused by: http://struts.apache.org/dtds/struts-2.5.dtd - Class: sun.net.www.protocol.http.HttpURLConnectionFile: HttpURLConnection.javaMethod: getInputStreamLine: 1303 - sun/net/www/protocol/http/HttpURLConnection.java:1303:-1at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:885)... 25 moreCaused by: java.io.FileNotFoundException: http://struts.apache.org/dtds/struts-2.5.dtdat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1303)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1192)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1089)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1002)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)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:107)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:113)... 26 more2014-8-2 17:48:38 org.apache.catalina.core.StandardContext startInternal严重: Error filterStart2014-8-2 17:48:38 org.apache.catalina.core.StandardContext startInternal严重: Context [/StrutsDemo] startup failed due to previous errors


struts.xml如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    <span style="color:#ff0000;">"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"    "http://struts.apache.org/dtds/struts-2.5.dtd"></span><struts><constant name="struts.devMode" value="true" /><package name="test" namespace="/" extends="struts-default"><action name="test" class="com.lc.action.TestAction"><result>/test.jsp</result></action></package><!-- Add packages here --></struts>

这个错误困扰了一周的时间,在部署程序后,在浏览器中输入localhost:8080/test后一直显示404,就是不显示test.jsp中的内容,于是,我在网上查找了好多资料,也询问了身边搞java web的朋友,最终找到了问题的根源所在。

问题根源及解决方案:

图中struts.xml配置中的红色部分,把struts的版本写错,项目中用到的struts版本为2.1,而这里却写成了struts-2.5.dtd,由于写程序的配置文件时是从struts官网上copy的,所以我就忽略了版本不匹配的问题,所以就导致了这个让人头疼的问题。解决方案就是将struts.xml中红色部分的2.5改成2.1就可以了,这样改过之后,就可以正常的 部署项目,顺利的运行出test.jsp中的内容了。

0 0
原创粉丝点击