SSH问题集(一) spring和struts整合配置文件问题
来源:互联网 发布:提醒生日的软件 编辑:程序博客网 时间:2024/04/30 03:30
SSH问题集(一) spring和struts整合配置文件问题
1、spring默认配置文件applicationContext.xml的路径设置
<context-param>
<param-name>contextConfigLocation</param-name>
<!--如果文件在classes下,配置为classpath:-->
<param-value>classpath:applicationContext.xml</param-value>
<!--如果指定目录WEB-INF或resources目录下-->
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2、struts.xml文件,默认加载在classes目录下
如果指定struts.xml的路径,参见如下配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<!--<param-value>struts-default.xml,struts-plugin.xml,../../WEB-INF/struts.xml</param-value> -->
</init-param>
</filter>
由于此配置文件导致的各类报错:
问题 A:
严重: Exception starting filter struts2
com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMembers(ContainerImpl.java:144)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMethods(ContainerImpl.java:113)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:90)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:86)
at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:71)
at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:69)
at com.opensymphony.xwork2.inject.util.ReferenceCache$CallableCreate.call(ReferenceCache.java:150)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.opensymphony.xwork2.inject.util.ReferenceCache.internalCreate(ReferenceCache.java:76)
at com.opensymphony.xwork2.inject.util.ReferenceCache.get(ReferenceCache.java:116)
at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:483)
at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:523)
at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:522)
at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)
at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:521)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:188)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
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.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.createParameterInjector(ContainerImpl.java:235)
at com.opensymphony.xwork2.inject.ContainerImpl.getParametersInjectors(ContainerImpl.java:225)
at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.<init>(ContainerImpl.java:287)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:117)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:115)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMembers(ContainerImpl.java:141)
... 36 more
原因:
配置成了<param-value>/WEB-INF/struts.xml</param-value> :
解决方法:
加上struts-default.xml,struts-plugin.xml,虽然没这2个文件。
<param-value>struts-default.xml,struts-plugin.xml,/WEB-INF/struts.xml</param-value>
问题 B:
严重: Exception starting filter struts2
Unable to load configuration. - [unknown location]
at 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.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]
at org.apache.struts2.config.BeanSelectionProvider.alias(BeanSelectionProvider.java:287)
at org.apache.struts2.config.BeanSelectionProvider.alias(BeanSelectionProvider.java:258)
at org.apache.struts2.config.BeanSelectionProvider.register(BeanSelectionProvider.java:203)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:165)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 20 more
原因:
很多可能造成这个报错
解决方法:
1)将WEB-INF/struts.xml修改为../../WEB-INF/struts.xml
<param-value>../../WEB-INF/struts.xml</param-value>
还是报加载不了配置文件Unable to load configuration. - [unknown location]
2)如果配置为:<param-value>struts.xml</param-value> ,同时将struts.xml放到classes目录下,感觉上应该去加载classes下的,但仍然报错
3)加上struts-default.xml,struts-plugin.xml
即:<param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
问题解决。
综上,配置都要包括 struts-default.xml,struts-plugin.xml,即便没有这2个文件 。如果struts.xml在classes下,就不需要<init-param> </init-param>段,加了反而容易出错。
上述验证采用的各组件和版本如下:
antlr-2.7.6.jar
aopalliance-1.0.jar
asm-1.5.3.jar
asm-attrs-1.5.3.jar
c3p0-0.9.2.jar
cglib-2.1_3.jar
commons-collections-3.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
freemarker-2.3.15.jar
hibernate-3.2.1.ga.jar
hibernate-annotations-3.3.0.ga.jar
hibernate-commons-annotations-3.3.0.ga.jar
hibernate-core-3.3.0.GA.jar
jta-1.1.jar
junit-3.8.1.jar
log4j-1.2-api-2.0.jar
log4j-api-2.0.jar
log4j-core-2.0.jar
mchange-commons-java-0.2.3.3.jar
mysql-connector-java-5.1.6.jar
ognl-2.6.11.jar
persistence-api-1.0.jar
slf4j-api.jar
slf4j-log4j12.jar
spring-aop-3.0.1.RELEASE.jar
spring-asm-3.0.1.RELEASE.jar
spring-beans-3.0.1.RELEASE.jar
spring-context-3.0.1.RELEASE.jar
spring-core-3.0.1.RELEASE.jar
spring-expression-3.0.1.RELEASE.jar
spring-jdbc-3.0.1.RELEASE.jar
spring-orm-3.0.1.RELEASE.jar
spring-test-2.5.6.jar
spring-tx-3.0.1.RELEASE.jar
spring-web-3.0.1.RELEASE.jar
struts2-core-2.1.6.jar
struts2-spring-plugin-2.1.6.jar
xml-apis-1.0.b2.jar
xwork-2.1.2.jar
0 0
- SSH问题集(一) spring和struts整合配置文件问题
- SSH整合Spring、Struts、Hibernate、web配置文件
- 关于struts和Spring整合问题
- mongo和spring整合配置文件问题
- Spring与Hibernate与Struts整合(一)配置文件
- ssh 整合struts+spring
- spring和struts整合中注意的问题
- spring和struts整合中注意的问题
- 关于Struts、Spring和Hibernate整合的问题
- 有关Struts和Spring框架整合时出现的问题
- struts和spring整合创建Action对象的问题?
- 使用MyEclipse集成SSH和DWR(一)整合Spring和Struts
- Struts和jfreechart整合问题
- 搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)
- SSH整合(一)Struts简单实例
- SSH框架整合中Struts出现问题Struts Problem Report
- struts 2整合spring要注意的问题(二)
- 遇到一个问题,struts 与spring 整合
- CAS扩展——自定义查询数据库验证Handler
- UVa 146 ID Codes (next_permutation函数)
- pcap数据包转换成netflow
- 用Matlab画散点图
- JavaScript 里面数组下标可以是负值问题
- SSH问题集(一) spring和struts整合配置文件问题
- maven dao和service工程,spring 扫描jar中配置文件nullpointer的问题
- Linux常用Shell脚本珍藏
- [数论] 51Nod 1225 余数之和
- 源码方式安装postgresql
- ULARGE_INTEGER联合体
- 从0开始学习 GitHub 系列之「06.团队合作利器 Branch」
- java学习笔记之线性表
- ffmpeg多种码率控制方式的实现