java项目从tomcat迁移到websphere注意事项

win7 tomcat6

linux websphere7

 

jeewx项目部署到WebSphere注意事项

 

一、spring

1、spring配置文件

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:spring-*.xml</param-value>
</context-param>

 

这种配置websphere不支持,

报错:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jeecgframework.web.system.service.SystemService] found for dependency

 

改为

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>
		classpath*:spring-minidao.xml,
		classpath*:spring-mvc-aop.xml,
		classpath*:spring-mvc-cgform.xml,
		classpath*:spring-mvc-context.xml,
		classpath*:spring-mvc-hibernate.xml,
		classpath*:spring-mvc-timeTask.xml,
		classpath*:spring-mvc.xml
	</param-value>
</context-param>

(也可以再xml里import)

 

web.xml中classpath:和classpath*:  有什么区别?
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

有时候会用模糊匹配的方式配置多配置文件。
但是如果配置文件是在jar包里,模糊匹配就找不到了。可以用逗号隔开的方式配置多个配置文件。

 

2、请求映射

如果Controller的方法配置的请求映射是这样

@RequestMapping(params = "checkuser")

前台请求是这样

loginController.do?checkuser

报错:

[org.jeecgframework.core.common.exception.MyExceptionHandler]org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException: No matching handler method found for servlet request: path '/loginController.do', method 'POST', parameters map['randCode' -> array<String>['9n88'], 'password' -> array<String>['123456'], 'userName' -> array<String>['admin'], 'userKey' -> array<String>['D1B5CC2FE46C4CC983C073BCA897935608D926CD32992B5900']]

这种websphere是不支持的,websphere所实现的request支持key-value的形式,估计这种只有key没有value的请求参数,websphere给扔了

可改为这种

@RequestMapping(params = "method=checkuser")

loginController.do?method=checkuser

如果是jeewx(jeecg)项目修改

Ctrl+H

.do\?

替换为

.do?method=

 

@RequestMapping(params = "
@RequestMapping(params="

替换为
@RequestMapping(params = "method=

就可以了。

 

Spring3系列13-Controller和@RequestMapping
http://www.cnblogs.com/leiOOlei/p/3658076.html

V3.4.2版本打包部署到webSphere7.0服务器发布不成功
http://www.jeecg.org/forum.php?mod=viewthread&tid=1407

 

二、hibernate

hibernate-jpa-2.0-api-1.0.1.Final.jar和
/opt/IBM/WebSphere/AppServer/plugins/javax.j2ee.persistence.jar包冲突

报错:

java.lang.NoSuchMethodError: javax/persistence/OneToMany.orphanRemoval()Z

 

解决

把hibernate-jpa-2.0-api-1.0.1.Final.jar复制到/opt/IBM/WebSphere/AppServer/lib/ext不管用

不得以

把hibernate-jpa-2.0-api-1.0.1.Final.jar复制到/opt/IBM/WebSphere/AppServer/java/jre/lib/ext下

记得把权限调成755

 

在jsp中显示某个类是引用的哪个jar包

out.println(javax.persistence.OneToMany.class.getProtectionDomain().getCodeSource().getLocation().getFile());

  

如何在 WebSphere 中解决 jar 包冲突
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/haoaili/0512/

 

你可能感兴趣的:(spring,tomcat,websphere,迁移,hebernate)