Struts2和spring,Hibernate集成的问题

zouhongjava 2010-03-08 05:56:09
struts.xml配置:

<struts>
<constant name="struts.ObjectFactory" value="spring"/>
<package name="example" extends="struts-default">

<action name="*Test" class="testUserAction" method="{1}">
<result name="success">hello.jsp</result>
<result name="input">Login.jsp</result>
<result name="error">zhuce.jsp</result>
</action>

</package>
</struts>

applicationContext.xml文件配置:

<bean id="testUserAction" class="com.action.Test" scope="prototype">
<property name="userbiz" ref="UserBiz"/>
</bean>

web.xml文件配置:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- 开启监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置OpenSessionInViewFilter,必须在struts2监听之前 -->
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<!-- 设置监听加载上下文 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>

控制台所报异常:
17:48:40,461 ERROR 0TestOne]:3638 - Exception starting filter struts2
Action class [testUserAction] not found - action - file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/webapps/Struts2.0TestOne/WEB-INF/classes/struts.xml:18:66
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:374)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:329)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3634)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

大家帮忙解决下,谢谢!
...全文
149 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pang_xiao 2010-03-10
  • 打赏
  • 举报
回复
学习当中、、、...
莫克168 2010-03-09
  • 打赏
  • 举报
回复
Action class [testUserAction] not found - action - file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/webapps/Struts2.0TestOne/WEB-INF/classes/struts.xml:18:66

这个错报的很清楚啊,你的struts没配好
angel_hu 2010-03-09
  • 打赏
  • 举报
回复
有没有加struts-spring.jar?
qq369759459 2010-03-09
  • 打赏
  • 举报
回复
学习一下~~~~~~
Arthur0088 2010-03-08
  • 打赏
  • 举报
回复
把代码贴全啊。。。。。
ChinaJkon 2010-03-08
  • 打赏
  • 举报
回复
17:48:40,461 ERROR 0TestOne]:3638 - Exception starting filter struts2
Action class [testUserAction] not found - action - file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/webapps/Struts2.0TestOne/WEB-INF/classes/struts.xml:18:66
根据这个异常,是在解析struts配置文件的时候出错了(找不到这个类TestUserAction ),如果testUserAction 有包名的话,要加上,或者看看类名有没有写错。
ChinaJkon 2010-03-08
  • 打赏
  • 举报
回复
struts 都没有集成进去 报找不到异常,很正常的。


applicationContext.xml文件配置:

<bean id="testUserAction" class="com.action.Test" scope="prototype">
<property name="userbiz" ref="UserBiz"/>
</bean>

web.xml文件配置:

<context-param>
<param-name>contextConfigLocation </param-name>
<param-value>/WEB-INF/applicationContext.xml </param-value>
</context-param>
这里只是spring配置的方法之一,所有应该是加上struts的配置文件、请求路径的监听

其原理就是 在spring在web.xml获取容器上下文,web.xml加载struts配置文件,然后根据struts配置文件找到action类, 在调用在UserBiz对象时候,再由spring容器动态注入来获取UserBiz实例

qiaozirue 2010-03-08
  • 打赏
  • 举报
回复
struts.xml:18:66 18行。 代码看上去没有错。 检查一下你的struts2的jar包吧,

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧