struts2升级改造

老项目中struts使用的是2010年的2.1.6老版本,基于以下原因,必须进行升级

  1. struts2刚刚爆出的安全漏洞问题(S2-021,S2-020)
  2. xwork在tomcat6/7中deploy/undeploy操作时的内存泄漏问题(WW-3768)
  3. struts2新版的其他内容改善

   原maven的pom依赖:

		<dependency>
			<groupId>com.googlecode</groupId>
			<artifactId>jsonplugin</artifactId>
			<version>0.33</version>
		</dependency>
		<dependency>
			<groupId>opensymphony</groupId>
			<artifactId>ognl</artifactId>
			<version>2.6.11</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.1.6</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.1.6</version>
		</dependency>
		<dependency>
			<groupId>com.opensymphony</groupId>
			<artifactId>xwork</artifactId>
			<version>2.1.2</version>
		</dependency>

升级修改后的pom依赖

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-json-plugin</artifactId>
			<version>2.3.16.2</version>
		</dependency>
		<dependency>
			<groupId>ognl</groupId>
			<artifactId>ognl</artifactId>
			<version>3.0.6</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.3.16.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.3.16.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts.xwork</groupId>
			<artifactId>xwork-core</artifactId>
			<version>2.3.16.2</version>
		</dependency>

这里面需要注意已经改了groupid的,比如ognl和jsonplugin。

如果jsonplugin没有配好,会发生以下类似错误:

java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils
	com.googlecode.jsonplugin.JSONUtil.writeJSONToResponse(JSONUtil.java:197)
	com.googlecode.jsonplugin.JSONResult.writeToResponse(JSONResult.java:192)
	com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:182)

猜你喜欢

转载自jmu.iteye.com/blog/2053974