【问题标题】:Log4j disabling scan @webservicesLog4j 禁用扫描@webservices
【发布时间】:2022-01-18 02:00:00
【问题描述】:

我们正在尝试使用 log4j2(从 log4j1 移动)但有一个可能与类路径有关的问题,但我无法在多次尝试后修复它

我们正在使用一个单独的模块 (NbfgLogging),它使用 java 类来配置 LOG4J。 配置工作没有问题,但由于某种原因,它禁用了@webservice 扫描的扫描。 查看 WAS 的控制台,服务不再注册 COMMONS-LOGGING.PROPERTIES

priority=1
    org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
    #org.apache.commons.logging.Log=org.apache.logging.log4j.Logger
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
    #org.apache.commons.logging.Log=java.util.logging.Logger

独立模块文件 (NbfgLogging) 中的依赖项

<dependencies>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>${log4j.version}</version>         
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j.version}</version>
    </dependency>       
    <dependency>
        <groupId>org.owasp.encoder</groupId>
        <artifactId>encoder</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>

WAR 文件中的依赖项(产生问题。不扫描@webservices)

    <dependency>
        <groupId>com.nbfg.fw.foundation</groupId>
        <artifactId>NbfgLogging</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
    

服务器日志(其他行

[12/14/21 13:13:50:512 EST] 00000177 AbstractInjec W CWNEN0070W:无法识别 javax.ws.rs.HeaderParam 注释类,因为它是从文件:/C:/blp 加载的/IBM/WebSphere/wp_profile/installedApps/porttail-devCell/PA_Xxxxx.ear/CP-3.4.4-SNAPSHOT.war/WEB-INF/lib/javax.ws.rs-api-2.0.1.jar 位置而不是来自产品类加载器。 [12/14/21 13:13:50:513 EST] 00000177 AbstractInjec W CWNEN0070W:将无法识别 javax.annotation.Resource 注释类,因为它是从文件加载的:/C:/blp/IBM/WebSphere/ wp_profile/installedApps/porttail-devCell/PA_Xxxxxx.ear/CP-3.4.4-SNAPSHOT.war/WEB-INF/lib/javax.annotation-api-1.2.jar 位置,而不是来自产品类加载器。

我尝试了以下解决@webservice 扫描问题的方法。但是 looger 不再工作了。 我已经尝试了其他排除...没有任何成功。

战争文件中的依赖关系(排除)

    <dependency>
        <groupId>com.nbfg.fw.foundation</groupId>
        <artifactId>NbfgLogging</artifactId>
        <version>3.0.0-SNAPSHOT</version>
        <exclusions>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
        

服务器日志(不包括其他行)

原因:org.apache.commons.logging.LogConfigurationException:用户指定的日志类 'org.apache.commons.logging.impl.Log4JLogger' 找不到或不可用。

【问题讨论】:

    标签: java maven logging log4j2 websphere-8


    【解决方案1】:

    从错误消息看来,应用程序位于此处:PA_Xxxxx.ear/CP-3.4.4-SNAPSHOT.war/ 正在此处打包 JAX-RS 2.0 API WEB-INF/lib/javax.ws.rs-api-2.0.1.jar JAX-RS 2.0 API 由 WebSphere 运行时提供,这会导致冲突.如果您的应用程序包含 JAX-RS 代码,那么您可以执行以下两种操作之一:从应用程序中删除 JAX-RS 依赖项并依赖 WebSphere JAX-RS 实现,或者如果您想使用第三方 JAX -RS 实现,然后您可以按照以下说明在 Websphere 上禁用 JAX-RS 运行时:https://www.ibm.com/docs/en/was/8.5.5?topic=applications-disabling-jax-rs-runtime-environment

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多