在WebLogic 12c / Jersey上禁用JAX-RS资源的自动注册

问题描述 投票:1回答:1

WebLogic 12c包含一个Default JAX-RS资源(https://docs.oracle.com/cd/E24329_01/web.1211/e24983/configure.htm#RESTF191),它将所有使用JAX-RS注释注释的类注册为资源。

我使用Jersey代理客户端(http://blog.alutam.com/2012/05/04/proxy-client-on-top-of-jax-rs-2-0-client-api/),所以我的接口类包含所有JAX-RS注释,并打包在他们自己的“API”jar中。然后,API jar基本上部署到两个不同的上下文:服务和客户端。该服务提供API的实现,它是实际的业务逻辑,并作为JAX-RS Web服务公开。客户端只是服务的使用者,API jar中服务接口的实现是Jersey代理客户端。

不幸的是,WebLogic 12c在这里给我带来两个问题:

1)它会自动注册我的API jar中的所有资源,并将它们作为Web服务从客户端应用程序公开(实现是(现在字面上)代理客户端)!这是非常无意的。

2)有时我想使用API​​中的类而不实际使用服务,所以我甚至不提供接口的实现。这应该没问题,但是因为WebLogic试图自动加载API资源,但没有找到带注释的接口的实现,它拒绝部署战争。

我可以在web.xml中解决问题1中的安全策略或奇怪的jax-rs配置,但这并不能解决问题2.最好的解决方案就是关闭WebLogic中的默认资源,但我找不到任何文件都这样做。

有没有办法关闭WebLogic中的默认资源或关闭自动泽西扫描?

jersey jax-rs weblogic jersey-client
1个回答
1
投票

据我所知,从weblogic 12.2.1.3中删除这些文件会完全删除jersey启动并扫描类路径以获取注释:

wlserver/modules/weblogic.jaxrs.integration.jar
oracle_common/modules/com.sun.jersey.jersey-core.jar
oracle_common/modules/weblogic.jaxrs.portable.server.jar

weblogic便携式服务器由hk2依赖注入系统激活,该系统将球衣加载为OSGI包并激活它

© www.soinside.com 2019 - 2024. All rights reserved.