JavaEE,如何忽略特定JAR或包中的注释

JavaEE,如何忽略特定JAR或包中的注释,java,jakarta-ee,deployment,weblogic,jax-ws,Java,Jakarta Ee,Deployment,Weblogic,Jax Ws,我正在使用一个JAR库,它包含@WebService注释类和其他JavaEE注释。问题是,Weblogic 12c会自动发现这些注释并提供服务。这不是我的意图,而是我只想在其他JavaEE项目中将JAR用作实用程序库,并且从Weblogic的角度考虑这个库,忽略所有与JavaEE相关的配置 基本上,所讨论的库是另一个被无情地捆绑在JAR中的JavaEE项目,但是修改库是不可能的,因此我需要忽略该库中的所有JavaEE内容 那么,我如何指示weblogic从自动发现和配置中忽略这个特定JAR归档中

我正在使用一个JAR库,它包含
@WebService
注释类和其他JavaEE注释。问题是,Weblogic 12c会自动发现这些注释并提供服务。这不是我的意图,而是我只想在其他JavaEE项目中将JAR用作实用程序库,并且从Weblogic的角度考虑这个库,忽略所有与JavaEE相关的配置

基本上,所讨论的库是另一个被无情地捆绑在JAR中的JavaEE项目,但是修改库是不可能的,因此我需要忽略该库中的所有JavaEE内容

那么,我如何指示weblogic从自动发现和配置中忽略这个特定JAR归档中所有与JavaEE相关的内容(或者某些包说明符下的所有类)


我想到的一个解决方案是
web.xml
中的
metadata complete=true
,它似乎忽略了这些注释。但是,我不确定它是否只忽略JAR库中的注释或项目本身中的注释。

您可以阅读有关
元数据完成的解决方案。这个解决方案实际上是为了提高大规模JavaEE项目的部署性能而创建的

您应该尝试在库项目的web.xml文件中设置
metadata complete=true
,然后基于此更改创建一个新的jar。这违背了您重构库代码的意愿,不过这只是一个小改动,不会占用您很多时间

但是,我不确定它是否只忽略JAR库中的注释,还是忽略项目本身中的注释


你说得对。如果在项目的web.xlm文件中进行此更改,则也会影响注释

您是如何构建应用程序的?它是具有多个EJB和Web模块的典型EAR。JAR库驻留在lib目录中。您使用什么工具来构建JAR、web模块、ejb模块和库?我使用ant,并使用拆分开发目录结构(我部署源文件夹,weblogic以某种方式编译它)。11g是Java EE 5实现,12c是Java EE 7。我认为注释扫描规则的定义更加明确。特别是,我认为web片段是在Java EE 6中添加的。另一方面,该库包含实际使用的web服务客户端(使用
@WebService
注释的接口和使用
@WebServiceClient
生成此端口类型代理的方法)。它还会在没有额外XML配置的情况下禁用JAX-WS客户端的功能吗?核心问题是,有一些
@WebService
实现类不应该存在,但不幸的是它们紧密耦合在一起。@TuomasToivonen这不是问题。此配置在使用部署描述符(xml文件)来“替换”注释方面所做的工作。功能保持不变。因此,
@WebServiceClient
注释提供的功能仍然存在。不同之处在于,此功能是由部署描述符触发的,而不是我前面提到的注释。