我如何与TomEE整合新泽西?(How can I integrate Jersey with To

2019-09-30 06:56发布

我尝试部署Tomee 1.5.2 WebProfile内使用泽西1.18一个非常简单的RESTful Web服务。 我的项目是从充分激发tomee -新泽西州的EclipseLink

例如,我通过消除持久性部分进一步简化:Web服务仅仅retuns“你好,世界!”

@Path("/hello")
@RequestScoped
public class HelloService {

    public HelloService() {
    }

    @GET
    public String test() {
        return "Hello, World!";
    }
}

我在我的POM依赖关系:

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.18</version>
    </dependency>
</dependencies>

我部署我与无关的应用程序模型的Web服务:

import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;

public class JerseyApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(HelloService.class);
        return classes;
    }
}

这里是我的web.xml:

<web-app>
  <servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>javax.ws.rs.Application</param-name>
      <param-value>org.superbiz.service.JerseyApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

我还添加了在$ TOMEE / conf目录/ system.properties以下属性:

com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

一切工作正常使用Tomcat 7(在这种情况下,我更换的javax:CDI-API:由javax.enterprise的JavaEE-API的依赖1.1在POM),但是当我尝试Tomee,我只是得到一个404 HTTP状态,有没有例外,没有额外的日志信息。

其结果是一样的,每当我从我的Eclipse IDE或使用Maven在命令行中部署应用程序。

注意

  • 我不想用Tomee JAX-RS使用Apache CXF,我不能升级到1.6 Tomee。
  • 我已经尝试从所有这一切可能的方式后 ,并没有帮助。

任何想法 ?

Answer 1:

有一个问题是解决了这个问题,在TomEE 1.7.0解决。 随着问题的笔记,你还需要下面的行添加到您的catalina.properties:

openejb.classloader.forced-load=javax.ws.rs

这为我工作与新泽西州2。



文章来源: How can I integrate Jersey with TomEE?