每当我尝试在Weblogic 12.1.3.0服务器上部署一个非常基本的JAX-RS应用程序时,我都会收到错误。
我在我的pom.xml文件中定义了这个依赖项:
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
...这是我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- <servlet> -->
<!-- <servlet-name>HelloWorld</servlet-name> -->
<!-- <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> -->
<!-- </servlet> -->
<!-- <servlet-mapping> -->
<!-- <servlet-name>HelloWorld</servlet-name> -->
<!-- <url-pattern>/webapi/*</url-pattern> -->
<!-- </servlet-mapping> -->
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
</web-app>
这是我的HelloWorldService.java:
package dgcplg.test.hazelcast.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello")
public class HelloWorldService {
/**
* Retrieves representation of an instance of HelloWorldService
* @return an instance of String
*/
@GET
@Produces("text/plain")
@Path("/get")
public String sayHelloGET() {
return "Hello World!";
}
}
我已按照Oracle的官方文档安装了WebLogic 12.1.3.0 zip发行版中包含的jax-rs 2.0
可能是错误的原因是什么? 如果需要进一步的信息,请告诉我。
编辑:我忘了添加,反转web.xml中的注释行,如下所示它确实有效,但我想避免来自Jersey的显式依赖,如果可能的话。 反转的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
<!-- <servlet> -->
<!-- <servlet-name>javax.ws.rs.core.Application</servlet-name> -->
<!-- </servlet> -->
<!-- <servlet-mapping> -->
<!-- <servlet-name>javax.ws.rs.core.Application</servlet-name> -->
<!-- <url-pattern>/webapi/*</url-pattern> -->
<!-- </servlet-mapping> -->
</web-app>