读书人

struts2整合spring遇到异常信息

发布时间: 2012-11-03 10:57:44 作者: rapoo

struts2整合spring遇到错误信息
首先我把struts2做了一个简单的登录的实现。没有出错
主要的代码和配置文件如下:
--------------------
web.xml
-------------------

<?xml version="1.0" encoding="UTF-8"?><web-app id="person" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">       <filter>        <filter-name>struts2</filter-name>        <filter-class>            org.apache.struts2.dispatcher.FilterDispatcher        </filter-class>    </filter>    <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>

-------------------------------
struts.xml
-------------------------------
<?xml version="1.0" encoding="GBK"?><!DOCTYPE struts PUBLIC      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"      "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="cn" extends="struts-default" ><action name="Login" name="code">package cn.ityc.action;public class LoginAction{private String username;private String password;public String getUsername(){return username;}public void setUsername(String username){ this.username = username;}public String getPassword(){return password;}public void setPassword(String password){this.password=password;}public String execute() throws Exception{if(getUsername().equals("ityc")&&getPassword().equals("ityc")){return "error";}else{return "success";}}}

------------
login.jsp
-------------
<%@ page language="java" contentType="text/html;charset=GBK"%><html><head><title>登录页面</title></head><body><form action="Login.action" method="post"><table align="center"><caption><h3>用户登陆</h3></caption><tr><td>用户名:<input type="text" name="username" /></td></tr><tr><td>密  码:<input type="password" name="password" /></td></tr><tr align="center"><td colspan="2"><input type="submit" value="登录" /></tr></table></form></body></html>

----------------------------
上面没有问题
然后我想把action用spring管理
------------------------
下面我在web.xml中添加以后
----------
web.xml
-----------
<?xml version="1.0" encoding="UTF-8"?><web-app id="person" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">       <filter>        <filter-name>struts2</filter-name>        <filter-class>            org.apache.struts2.dispatcher.FilterDispatcher        </filter-class>    </filter>    <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>    <context-param>    <param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value>    </context-param><servlet> <servlet-name>SpringContextServlet</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet></web-app>


启动tomcat以后就报错。。
-------------
错误信息
-------------
严重: Error loading WebappClassLoader  delegate: false  repositories:    /WEB-INF/classes/----------> Parent Classloader:org.apache.catalina.loader.StandardClassLoader@6f50a8 org.springframework.web.context.ContextLoaderServletjava.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServletat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2008-1-1 13:48:32 org.apache.catalina.core.StandardContext loadOnStartup严重: Servlet /kongtiaoDemo threw load() exceptionjava.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServletat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2008-1-1 13:48:32 org.apache.coyote.http11.Http11Protocol start信息: Starting Coyote HTTP/1.1 on http-80802008-1-1 13:48:33 org.apache.jk.common.ChannelSocket init信息: JK: ajp13 listening on /0.0.0.0:80092008-1-1 13:48:33 org.apache.jk.server.JkMain start信息: Jk running ID=0 time=0/31  config=null2008-1-1 13:48:33 org.apache.catalina.startup.Catalina start信息: Server startup in 9935 ms


我用的spring和hibernate是用myeclipse加载的包

我弄了整整40个小时了。
网上说是hibernate和spring的包冲突
我也弄不明白。

有哪位仁兄,有过这个经历请指点一下。我的QQ:531345341
QQ技术群:26572256
1 楼 retitan 2008-01-01 可以看我的BLOG我成功了,你可以看下

http://retitan.iteye.com/ 2 楼 hilor 2008-01-01 按照你说的, 极有可能是包的冲突所造成的...
我有次也是用myeclipse加载的包, 直接连JVM都启动不了.. 郁闷了一个星期, 才在偶然之下发现是有个包冲突...
如果你还没解决的话可以给我发站内短信, 你QQ需要验证问题:x 3 楼 fuliang 2008-01-01 hilor 写道按照你说的, 极有可能是包的冲突所造成的...
我有次也是用myeclipse加载的包, 直接连JVM都启动不了.. 郁闷了一个星期, 才在偶然之下发现是有个包冲突...
如果你还没解决的话可以给我发站内短信, 你QQ需要验证问题:x
Spring和hibernate的asm包冲突,可以把带版本号的那个asm包去掉
4 楼 gsvince 2008-01-07 Hibernate和Spring包冲突,例如asm2.2.3.jar , asm.jar
删除asm2.2.3.jar应该就可以了

读书人网 >软件架构设计

热点推荐