论坛首页 入门技术论坛

struts2整合spring遇到错误信息

浏览 4158 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-01-01  
首先我把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" class="cn.ityc.action.LoginAction">
			<result name="success">/index.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
		
</package>
	
</struts>


----------------
LoginAction
-----------------
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>密&nbsp;&nbsp;码:<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.ContextLoaderServlet
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet
	at 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() exception
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet
	at 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-8080
2008-1-1 13:48:33 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-1-1 13:48:33 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31  config=null
2008-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
   发表时间:2008-01-01  
可以看我的BLOG我成功了,你可以看下 http://retitan.iteye.com/
0 请登录后投票
   发表时间:2008-01-01  
按照你说的, 极有可能是包的冲突所造成的...
我有次也是用myeclipse加载的包, 直接连JVM都启动不了.. 郁闷了一个星期, 才在偶然之下发现是有个包冲突...
如果你还没解决的话可以给我发站内短信, 你QQ需要验证问题:x
0 请登录后投票
   发表时间:2008-01-01  
hilor 写道
按照你说的, 极有可能是包的冲突所造成的...
我有次也是用myeclipse加载的包, 直接连JVM都启动不了.. 郁闷了一个星期, 才在偶然之下发现是有个包冲突...
如果你还没解决的话可以给我发站内短信, 你QQ需要验证问题:x

Spring和hibernate的asm包冲突,可以把带版本号的那个asm包去掉
0 请登录后投票
   发表时间:2008-01-07  
Hibernate和Spring包冲突,例如asm2.2.3.jar , asm.jar
删除asm2.2.3.jar应该就可以了
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics