Spring Boot项目部署到 IBM WebSphere 8.5.5需要注意的地方

来源:互联网 发布:ubuntu怎么用root登陆 编辑:程序博客网 时间:2024/06/07 06:16

遇到问题

对Spring Boot观察了好久,最近终于开始有机会使用Spring Boot来做项目的开发,Spring Boot不需要部署,用jar包模式运行的机制,非常适合做快速开发,能在项目演示和迭代期间起到快速的推进作用。整体来说是一个非常好快速开发框架。

今天着重要说一下的是Spring Boot项目打包成war包,部署到J2EE容器,特别是Websphere遇到的问题。

首先Spring Boot项目build的war包,在Tomcat 7,8,Jetty等容器下,不论是嵌入到eclipse中,还是部署运行都是ok的.在Websphere 8.5.5 liberty profile中运行也没有问题,但是在 Websphere 8.5.5的正式版本中,就有几个地方需要注意,否则Spring Boot相关的包不会被服务器load,导致项目部署好了所有的访问都是404.

解决办法

  1. 使用maven package 对项目进行打包

  2. 创建共享库,指定项目相关的Jar包存放路径,并把war包中lib文件夹里面的jar文件全部copy到该路径下

    创建共享库

  3. 使用eclipse重新打包,把依赖的maven库排除在打包文件之外,或者直接从打包好的war文件中删除所有的jar

    ECLIPSE重新打包

  4. 修改部署项目的classloader顺序

修改classloader顺序

  1. 到此为止,基本上项目就能正常运行了,如果还是继续报404,重启一下websphere,或者在项目的启动行为那里点击一下(这里我猜测,点击之后项目会重新被容器load一次,这是会把所有相关的jar文件加载)

启动行为


相关版本

  • Spring Boot version 1.3.3
  • IBM WebSphere Application Server Network Deployment 8.5.5.1
  • JDK7

引用

加入jpa之后被坑 哎
http://naruraghavan.github.io/deploying-spring-boot-applications-in-ibm-websphere-application-server/
JPA解决相关
http://stackoverflow.com/questions/23745542/websphere-8-5-with-jpa-2-1
https://hibernate.atlassian.net/browse/JPA-4

使用maven来打包,最后生成的war包,将Lib包内的jar放到was共享库,删除所有jar,部署到was,set父类最后

注意 xml-apis-1.0.b2.jar 需要删除,应该是was自带了xml解析的,很坑这里,加入之后反而说找不到这个包下的某个类

1 0