预先配置:
问题:
紧接着, / resources / URI已由(嵌入式)WebLogic JAX-RS / Jersey servlet处理程序映射/处理。
WL映射问题:
Google搜索显示了此内容(非常相似):
和
从Oracle文档中获取:
*
...如果未指定,则按优先级使用以下值之一:
在javax.ws.rs.core.Application子类中定义的@ApplicationPath 批注值。
...
值资源。这是默认基本URI模式 RESTful Web服务应用程序。
...
如果
和@ApplicationPath均为 指定后, 优先。*
我完全不需要REST服务和默认映射-只想使用仅Jersey客户端。尝试了不同的选项后,我没有任何解决方案。
在web.xml
中明确添加了配置(尝试用于JAX-RS 1.1和2.0版本),没有实现任何端点,因为仅使用设置了
web.xml
<!--WebLogic Jersey Configuration-->
<servlet>
<display-name>WL Jersey Configuration</display-name>
<servlet-name>jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!--<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>-->
<init-param>
<param-name>jersey.config.wls.server.monitoring.enabled</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/jersey/*</url-pattern>
</servlet-mapping>
此外已更新 weblogic.xml :
<wls:container-descriptor>
<wls:prefer-application-packages>
...
<wls:package-name>org.glassfish.*</wls:package-name>
<wls:package-name>com.sun.jersey.*</wls:package-name>
<wls:package-name>javax.ws.rs.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
它没有帮助。关于如何禁用/替代WLS 12.2.1.0.0的默认行为的任何想法?还是我错过了或者做错了什么?
答案 0 :(得分:0)
更新。问题已解决。
1。 weblogic.xml已更改:
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>antlr.*</wls:package-name>
<wls:package-name>javax.persistence.*</wls:package-name>
<wls:package-name>javax.validation.*</wls:package-name>
<wls:package-name>org.apache.commons.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
<wls:package-name>org.hibernate.*</wls:package-name>
<wls:package-name>ch.qos.*</wls:package-name>
<wls:package-name>org.slf4j.*</wls:package-name>
<!--Jax-RS-->
<wls:package-name>javax.ws.rs.*</wls:package-name>
<!--Jersey 2.0-->
<wls:package-name>org.glassfish.jersey.*</wls:package-name>
<wls:package-name>org.glassfish.hk2.*</wls:package-name>
<wls:package-name>org.jvnet.hk2.*</wls:package-name>
<wls:package-name>jersey.repackaged.org.objectweb.asm.*</wls:package-name>
<!-- wls -->
<wls:package-name>weblogic.jaxrs.api.client.*</wls:package-name>
<wls:package-name>weblogic.jaxrs.internal.api.client.*</wls:package-name>
<wls:package-name>weblogic.jaxrs.dispatch.*</wls:package-name>
<wls:package-name>weblogic.jaxrs.monitoring.util.*</wls:package-name>
</wls:prefer-application-packages>
<wls:prefer-application-resources>
<!-- apis -->
<wls:resource-name>javax.ws.rs.*</wls:resource-name>
<!-- jersey -->
<wls:resource-name>META-INF/services/org.glassfish.jersey.*</wls:resource-name>
<wls:resource-name>com.sun.jersey.*</wls:resource-name>
<wls:resource-name>org.glassfish.jersey.*</wls:resource-name>
<wls:resource-name>jersey.repackaged.*</wls:resource-name>
<!-- hk2 -->
<wls:resource-name>META-INF/services/org.glassfish.hk2.*</wls:resource-name>
<wls:resource-name>org.glassfish.hk2.*</wls:resource-name>
<wls:resource-name>org.jvnet.hk2.*</wls:resource-name>
<wls:resource-name>org.jvnet.hk2.tiger_types.*</wls:resource-name>
</wls:prefer-application-resources>
</wls:container-descriptor>
即:
中添加了以下块:
<!--Jax-RS--> and below
<!--Jersey 2.0--> and below
<!-- wls --> and below
2。添加了端点配置:
import org.glassfish.jersey.server.ResourceConfig;
public class JerseyApplication extends ResourceConfig {
public JerseyApplication() {
packages("path.to.the.package");
}
}
3。添加对pom.xml的依赖性:
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
4。 web.xml Servlet配置:
<!--WebLogic Jersey Configuration-->
<servlet>
<display-name>WL Jersey Configuration</display-name>
<servlet-name>jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>path.to.the.JerseyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/jersey/*</url-pattern>
</servlet-mapping>
P.S。后来在WLS上对Jackson 2.X库的使用也得到了类似的修复(只是在
答案 1 :(得分:0)
Taras共享的解决方案运行良好,我必须添加以下依赖项:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.27</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.27</version>
</dependency>