`
onlysomeone
  • 浏览: 146274 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SSH问题集(一) spring和struts整合配置文件问题

阅读更多
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
分享到:
评论

相关推荐

    spring整合struts2与hibernate核心配置文件

    整合SSH涉及到的主要配置文件有`struts2-spring-plugin.xml`、`spring-context.xml`以及Hibernate的相关配置文件(如`hibernate.cfg.xml`)。`struts2-spring-plugin.xml`配置Struts2与Spring的集成,确保Action类由...

    ssh2整合(spring+struts2+hibernate)-附

    SSH2整合指的是Spring、Struts2和Hibernate三个开源框架的集成应用。这三大框架分别负责不同的职责:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP),Struts2则用于MVC(Model-View-Controller)...

    Spring+Struts+Hibernate比较详细的整合配置方案

    - 创建Spring配置文件(如`applicationContext.xml`),配置Bean定义,包括Service层、DAO层以及Action类等的实例化和依赖注入。 - 使用Spring的AOP功能,实现事务管理。例如,可以定义一个事务切面,对需要进行...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    SSH框架的整合涉及多个步骤,从Web工程的创建、框架的引入、配置文件的编写,到各个组件之间的紧密集成,每一个环节都需精心设计和实现。只有当所有框架都顺利整合在一起,才能发挥出SSH组合的最大效能,为开发者...

    Struts2.5+ Spring5 + Hibernater5.2整合后项目(包含jar包和配置文件)

    1. **配置Struts2**:设置struts2-core.jar等必要库,编写struts.xml配置文件,定义Action、结果类型和拦截器栈。 2. **配置Spring**:引入spring-context、spring-aop、spring-webmvc等库,配置spring.xml,定义...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    SSH是Java Web开发中的三个重要框架,分别是Struts2、Hibernate和Spring,它们共同构建了一个强大的MVC(Model-View-Controller)架构。本项目整合了这三个框架,并使用XML配置来管理各个组件,实现了基本的CRUD...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    7. **整合过程**:SSH整合主要包括配置Struts的配置文件(struts-config.xml),Spring的配置文件(spring-beans.xml),以及Hibernate的配置文件(hibernate.cfg.xml)。Struts和Spring之间通过ActionServlet和Spring的...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    SSH,即Struts2、Hibernate和Spring的组合,是Java Web开发中的一种经典框架集成,用于构建企业级的MVC(Model-View-Controller)应用。这个整合旨在提供一个高效、灵活且可扩展的开发环境,使开发者可以专注于业务...

    SSH整合 Struts2.1+Spring4.1+Hibernate4.1

    这个“SSH整合 Struts2.1+Spring4.1+Hibernate4.1”是一个预配置的框架模板,适用于快速开发J2EE项目,特别是对于那些需要管理业务逻辑和持久层操作的复杂应用。 Struts2是MVC(模型-视图-控制器)架构的扩展,提供...

    SSH 框架 struts-2.3.34 spring4.3.12 hibernate5.0.12

    5. 使用IDEA的插件生成Struts2、Spring和Hibernate的配置文件,简化配置过程。 6. 部署到Tomcat服务器,通过浏览器访问应用,测试功能是否正常。 SSH框架的使用有助于提高开发效率,降低系统耦合度,但同时也需要...

    ssh 整合入门(spring,struts,hibernate的整合)资料

    ### SSH整合入门:Spring, Struts, Hibernate的整合解析 #### 概述 SSH,即Struts + Spring + Hibernate,是Java Web开发中一个非常流行的架构组合,旨在构建灵活、可扩展的多层Web应用程序。这种架构将显示、业务...

    SSH笔记-整合Spring2、Struts2、Hibernate4

    SSH整合是Java Web开发中的一种常见模式,它指的是Spring、Struts2和Hibernate这三大开源框架的集成。这种集成能够构建出高效、可维护的Web应用程序。以下是对SSH整合的详细解析: 一、Spring框架 Spring是Java企业...

    SSH笔记-Spring整合Struts2

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个常见的企业级Web应用开发框架组合。这个框架集合了Spring的强大依赖注入(DI)和面向切面编程(AOP),Struts2的优秀MVC设计模式,以及Hibernate的高效持久化...

    Spring4.0.6+Struts2.3.16.3整合架包下载,ss整合jar架包下载,最新spring和struts整合架包下载

    "Spring4.0.6+Struts2.3.16.3整合架包下载" 提到的是这两个框架的特定版本,Spring 4.0.6 是 Spring 框架的一个稳定版本,它带来了许多改进和优化,比如对 Java 8 的支持、更强大的类型安全的配置以及对 Servlet 3.0...

    ssh 整合 struts hibernate spring

    SSH整合是Java开发中一种常见的技术栈组合,它包含了三个主要的开源框架:Struts、Hibernate和Spring。这种集成能够构建出高效、可维护且松耦合的企业级Web应用程序。 Struts是MVC(Model-View-Controller)设计...

    ssh框架实例过程(MyEclipse+struts+spring+hibernate整合)

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个实例是为初学者设计的,通过MyEclipse集成开发环境,详细介绍了如何将这三大框架整合到一个登录工程中。下面将详细...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    SSH整合jar包-spring5.0+hibernate5.1+struts2.5

    标题中的"SSH整合jar包-spring5.0+hibernate5.1+struts2.5"意味着这是一个已经打包好的集合,包含了这三个特定版本的框架所需的jar文件。这些jar文件是开发者在项目中引用SSH框架时需要的,确保了它们之间的兼容性和...

    struts2+hibernate+spring的配置文件

    配置 ssh2连接的详细解说,struts2+hibernate+spring整合的框架步骤及简单的知识,具体实现可以联系我

    Java:SSH-Spring整合struts2&hibernate;框架

    这个压缩包文件"Springssh"很可能包含了上述整合过程所需的配置文件、实体类、DAO、Action、JSP等资源,可以直接应用于开发项目中,或者作为学习SSH整合的实例。通过深入研究和理解这些文件,开发者可以更好地掌握...

Global site tag (gtag.js) - Google Analytics