[英]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.