先决条件:
- WebLogic 服务器版本:12.2.1.0.0
- 部署的通用 Java Web 应用程序
- 开始使用 Jersey客户端库
问题:
紧接着/resources/ URI 已由(嵌入式)WebLogic JAX-RS/Jersey servlet 处理程序映射/处理。
WL 映射问题:
谷歌搜索显示了这一点(非常相似):
和
来自 Oracle 的文档:
*<servlet 映射>
...如果未指定,则按优先顺序使用以下值之一:
@ApplicationPath注解值在 javax.ws.rs.core.Application 子类中定义。
...
价值资源。这是 RESTful Web 服务应用程序的默认基本 URI 模式。
...
如果同时指定了<servlet-mapping>和 @ApplicationPath,则<servlet-mapping>优先。*
我根本不需要 REST 服务和默认映射——只想使用Jersey 客户端。在尝试了不同的选项后,我没有成功解决任何问题。
显式添加配置web.xml
(对 JAX-RS 1.1 和 2.0 vesrions 都进行了尝试),没有实现任何端点,因为仅使用带有设置的 Jersey 客户端<servlet-mapping>:
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 的此默认行为的任何想法?或者也许我错过了或做错了什么?