问题描述
HTTPStatus500-typeExceptionreportmessagedescriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.springframework.beans.factory.BeanDefinitionStoreException:IOExceptionparsingXMLdocumentfromServletContextresource[/WEB-INF/applicationContext.xml];nestedexceptionisjava.io.FileNotFoundException:CouldnotopenServletContextresource[/WEB-INF/applicationContext.xml]org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:81)javax.servlet.GenericServlet.init(GenericServlet.java:212)org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:980)org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:943)org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203)org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)org.apache.catalina.startup.Catalina.start(Catalina.java:552)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)哪位大虾帮忙解决下,这问题怎么解决啊!
解决方案
解决方案二:
服务器端错误,你把代码贴上来吧,只有错误代码谁都看不出来
解决方案三:
applicationContext.xml:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver"></property><propertyname="url"value="jdbc:mysql://192.168.1.201:3306/portal2"></property><propertyname="username"value="devel"></property><propertyname="password"value="passw0rd"></property></bean><beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="dataSource"><refbean="dataSource"/></property><propertyname="hibernateProperties"><props><propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property><propertyname="mappingResources"><list><value>com/myssh/pojo/TbAccount.hbm.xml</value></list></property></bean><beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><propertyname="sessionFactory"><reflocal="sessionFactory"/></property></bean><beanid="/login"class="com.myssh.action.AccountAction"><propertyname="accountsvc"><refbean="accountsvc"/></property></bean><!--这里的class必须是实现类的路径,而不是接口本身--><beanname="accountsvc"class="com.myssh.service.AccountServiceImpl"><!--这里将accountdao属性注入进来了,在这就是accountservice类里面有这个属性并且有getter和etter方法的原因--><propertyname="accountdao"><refbean="accountdao"/></property></bean><!--这里的class必须是实现类的路径,而不是接口本身--><beanname="accountdao"class="com.myssh.dao.AccountDaoImpl"><!--这里将sessionFactory注入进来了--><propertyname="sessionFactory"><refbean="sessionFactory"/></property></bean></beans>
解决方案四:
引用1楼fengxuegupo的回复:
服务器端错误,你把代码贴上来吧,只有错误代码谁都看不出来
还有全部代码吗?
解决方案五:
该回复于2010-12-08 13:54:13被版主删除
解决方案六:
该回复于2010-12-08 13:54:26被版主删除
解决方案七:
这是struts的配置<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config><data-sources/><form-beans><form-beanname="loginFrom"type="com.myssh.struts.form.LoginForm"><form-propertyname="loginId"type="java.lang.String"></form-property><form-propertyname="loginPass"type="java.lang.password"></form-property></form-bean></form-beans><global-exceptions/><global-forwards><forwardname="success"path="/success_info.jsp"></forward><forwardname="failure"path="/error.jsp"></forward></global-forwards><action-mappings><actioninput="/login.jsp"attribute="loginForm"name="loginForm"parameter="status"path="/login"scope="request"validate="true"type="com.myssh.struts.action.LoginAction"></action></action-mappings><controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller><message-resourcesparameter="com.myssh.struts.ApplicationResources"/></struts-config>这是action的代码:packagecom.myssh.action;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.actions.DispatchAction;importcom.myssh.pojo.TbAccount;importcom.myssh.service.AccountService;publicclassAccountActionextendsDispatchAction{privateAccountServiceaccountsvc;publicAccountServicegetAccoutsvc(){returnaccountsvc;}publicvoidsetAccoutsvc(AccountServiceaccountsvc){this.accountsvc=accountsvc;}publicActionForwardinsert(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){AccountFormaccform=(AccountForm)form;---》这会报错:CannotcastfromActionFormtoAccountFormTbAccountacc=newTbAccount();acc.setVloginId(accform.getLoginId());acc.setVloginPwd(accform.getLoginPass());booleanb=accountsvc.insert(acc);if(b){returnmapping.findForward("success");}else{returnmapping.findForward("failure");}}}
解决方案八:
配制问题,确认这个目录有这文件吗?WebContent/WEB-INF/applicationContext.xml
解决方案九:
没找到/WEB-INF/applicationContext.xml配置文件。确认下是否存在
解决方案十:
引用7楼longzuyuan的回复:
配制问题,确认这个目录有这文件吗?WebContent/WEB-INF/applicationContext.xml
没在,在src下面,web.xml:<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><servlet><servlet-name>contextLoader</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class><load-on-startup>0</load-on-startup></servlet><jsp-config><taglib><taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri><taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri><taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri><taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri><taglib-location>/WEN-INF/tld/struts-nested.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri><taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location></taglib></jsp-config><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
解决方案十一:
引用8楼ousyuryu的回复:
没找到/WEB-INF/applicationContext.xml配置文件。确认下是否存在
没在那个目录下,在我添加spring到工程中时它自动在src下面啊web.xml里面也有配置<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param>帮忙看下
解决方案十二:
把它复制到WebContent/WEB-INF/applicationContext.xml再试试
解决方案十三:
引用11楼longzuyuan的回复:
把它复制到WebContent/WEB-INF/applicationContext.xml再试试
还是报同样的错,我的applicationContext.xml文件中配置id="/login"的时候报错,<beanid="/login"class="com.myssh.action.AccountAction"><propertyname="accountsvc"><refbean="accountsvc"/></property></bean>
解决方案十四:
引用12楼dl_soft的回复:
引用11楼longzuyuan的回复:把它复制到WebContent/WEB-INF/applicationContext.xml再试试还是报同样的错,我的applicationContext.xml文件中配置id="/login"的时候报错,<beanid="/login"class="com.myssh.action.AccountAc……
bean的ID不能有特殊字符,例如“/”,改为name<beanname="/login"class....
解决方案十五:
id="/login"去掉/,再错就检查你的com.myssh.action.AccountAction
解决方案:
引用13楼wangwz504的回复:
bean的ID不能有特殊字符,例如“/”,改为name<beanname="/login"class....
嗯,谢了,在帮我一个好吗在action里:AccountFormaccform=(AccountForm)form;---》这会报这错:CannotcastfromActionFormtoAccountForm
解决方案:
引用14楼longzuyuan的回复:
id="/login"去掉/,再错就检查你的com.myssh.action.AccountAction
这个也能解决那个bean的错,不过AccountAction里面也有编译错误:AccountFormaccform=(AccountForm)form;---》这会报这错:CannotcastfromActionFormtoAccountForm
解决方案:
引用15楼dl_soft的回复:
引用13楼wangwz504的回复:bean的ID不能有特殊字符,例如“/”,改为name<beanname="/login"class....嗯,谢了,在帮我一个好吗在action里:AccountFormaccform=(AccountForm)form;---》这会报这错:CannotcastfromActionFormto……
你struts配置里面,某个ACTION需要一个FORM,你把这个AccountForm配置进AccountAction进了吗?怎么没有看到
解决方案:
<beanid="/login"class="com.myssh.action.AccountAction"><propertyname="accountsvc"><refbean="accountsvc"/></property></bean>
你的action配置没有对应的form配置啊
解决方案:
引用18楼chooseforget的回复:
XMLcode<beanid="/login"class="com.myssh.action.AccountAction"><propertyname="accountsvc"><refbean="accountsvc"/></property></bean>你的action配置没有对应的form配置啊
form在struts.xml里面配置吧。
解决方案:
引用17楼wangwz504的回复:
引用15楼dl_soft的回复:引用13楼wangwz504的回复:bean的ID不能有特殊字符,例如“/”,改为name<beanname="/login"class....嗯,谢了,在帮我一个好吗在action里:AccountFormaccform=(AccountForm)form;---》这会报这错:Cannotcast……
兄弟,敢问如何配置啊!小弟头次试用ssh编程,真不知如果配置
解决方案:
在struts.xml中com.myssh.struts.action.LoginAction你配置了的,AccountAction就依葫芦画瓢就行,不过要指定AccountForm
解决方案:
引用7楼longzuyuan的回复:
配制问题,确认这个目录有这文件吗?WebContent/WEB-INF/applicationContext.xml
从打印错误可以看出。
解决方案:
引用18楼chooseforget的回复:
XMLcode<beanid="/login"class="com.myssh.action.AccountAction"><propertyname="accountsvc"><refbean="accountsvc"/></property></bean>你的action配置没有对应的form配置啊
在spring的配置里面配吗?兄弟你能写个给我看下吗?我不晓得怎么配置
解决方案:
引用21楼wangwz504的回复:
在struts.xml中com.myssh.struts.action.LoginAction你配置了的,AccountAction就依葫芦画瓢就行,不过要指定AccountForm
<beanid="loginForm"class="com.myssh.form"><propertyname="accfrm"><refbean="accfrm"/></property></bean>这样?
解决方案:
引用22楼jiabeis的回复:
引用7楼longzuyuan的回复:配制问题,确认这个目录有这文件吗?WebContent/WEB-INF/applicationContext.xml从打印错误可以看出。
我将spring的配置文件复制到了WEB-INF目录下运行后也是同样的错误,请多多指教
解决方案:
<actioninput="/login.jsp"attribute="loginForm"name="loginForm"parameter="status"path="/login"scope="request"validate="true"type="com.myssh.struts.action.LoginAction"></action>
如果你是结合SPRING,path="/login"对应的是spring中的bean的name,也就是<beanname="/login">其中type="com.myssh.struts.action.LoginAction"不应该是这个类把,应该spring-struts的一个请求代理类吧。attribute="loginForm",就是你ACTION中的FORM类,你上面配置基本错误。
解决方案:
引用26楼wangwz504的回复:
XMLcode<actioninput="/login.jsp"attribute="loginForm"name="loginForm"parameter="status"path="/login"scope="request"validate="true"type="com.myssh.struts.action.LoginAction……
恩恩对啊我是手动写上去的,我在网上看到的资料都是可以在struts的视图里创建,我在那里面创建不了,然后就是看见里面的一些东西就填写上去了,意思还完全没有理解,attribute="AccountForm"对吗?那个type的类是什么?
解决方案:
org.springframework.web.struts.DelegatingActionProxy
解决方案:
引用28楼wangwz504的回复:
org.springframework.web.struts.DelegatingActionProxy
这可真的有点难度,能加Q帮我解决这个问题吗?迈出第一步应该会好点
解决方案:
引用28楼wangwz504的回复:
org.springframework.web.struts.DelegatingActionProxy
我的QQ是563185941拜托
解决方案:
引用30楼dl_soft的回复:
引用28楼wangwz504的回复:org.springframework.web.struts.DelegatingActionProxy我的QQ是563185941拜托
公司不能上QQ。哈哈。在网上搜一下吧。ssh1,就是了
解决方案:
你的那个Accountform继承extendsActionform