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=
就可以了。
修改一个类可以解决这个问题
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/