欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-16 09:43:00
...

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=

就可以了。

 

修改一个类可以解决这个问题

ParamsRequestCondition.java,附件提供

 

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/