簡體   English   中英

Log4j 禁用掃描@webservices

[英]Log4j disabling scan @webservices

我們正在嘗試使用 log4j2 (從 log4j1 移動),但有一個問題可能與類路徑有關,但我無法在多次嘗試后修復它

我們正在使用一個單獨的模塊 (NbfgLogging),它使用 java class 來配置 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 注釋 class 將無法識別,因為它是從文件加載的:/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 位置而不是來自產品 ZA2F2ED4F8EBC2CBB4C21A29DDC40AB6裝載機。 [12/14/21 13:13:50:513 EST] 00000177 AbstractInjec W CWNEN0070W:javax.annotation.Resource 注釋 class 將無法識別,因為它是從文件加載的:/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 位置而不是來自產品 class 加載程序。

我嘗試了以下解決@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:用戶指定的日志 class 'org.ZB6EFD606D118D0F62066E31419FFLog04CCZ.commons.logginger' 無法找到。

從錯誤消息看來,應用程序位於此處: 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-環境

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM