摘要: 针对公司iDeveloper3.0开发平台,详细介绍了如何将目前的NetBeans+GlassFish环境迁移到Eclipse+Tomcat环境。本文仅供内部人员参考。
本文主要依据我的另一篇博文,《REST+EJB+JPA 框架在 Eclipse+TomEE 的开发环境搭建》,是针对iDeveloper3.0自身的特殊实现,目前已经简单测试已有功能且都能正常运行,后续再有新的问题发现请及时告知(QQ304679508)。
按照目前已有平台代码,在将工程导入到Eclipse中之前需要做如下改动:
1、pom.xml
增加如下依赖:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.4</version>
</dependency>
另外还要将所有的provided的scope去掉。
目的:由于TomEE内置了Apache的JAX-RS实现,所以会与Jersey冲突,解决此冲突的方法是下一步:
2、web.xml
增加如下Servlet声明:
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>net.huadong.application.ApplicationConfig</param-value>
</init-param>
</servlet>
这样就强制将REST的implementation设置为Jersey。对应的要将上述的ApplicationConfig修改,如下:
3、ApplicationConfig.java
package net.huadong.application;
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
@ApplicationPath("webresources")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
packages("net.huadong.idev.tpl.privilege.resources");
}
}
4、persistence.xml
该文件格式在TomEE下有点问题,需要将文件头修改为如下:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd"
version="1.0">
还要注意TomEE数据源JNDI的配置要与persistence.xml中一致
5、final step
至此已经修改完成,剩余的搭建方法可以参考本文开头提到的博文。
6、不足之处
1) 针对登录页面的验证码图片,目前的Response返回BufferImage方式未受支持,需要使用代码中已经注释ImageIO方式
2) 另外:项目启动后在出现“信息: Server startup in ## ms”(即成功启动完成)后,需要等待四五分钟,否则访问REST的url会404,一旦404,就必须再次重启TomEE等待。
欢迎并希望读者找到上述问题原因并解决之,有行之有效的方法时,本文会及时更新。
本文完
Enjoy!
转载请注明出处O(∩_∩)O~
© 著作权归作者所有