我尝试部署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。
- 我已经尝试从所有这一切可能的方式后 ,并没有帮助。
任何想法 ?