Tôi đang gặp một số vấn đề với việc cố gắng tải libs từ ứng dụng của tôi thay vì những gì đi kèm với JBoss.Làm thế nào để cấu hình JBOSS 5.1.0 GA ClassLoader
Tôi cố gắng để tận dụng các SLF4J mới nhất và lớn nhất trong ứng dụng của tôi và khi làm như vậy Tôi nhận được thông báo sau:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [vfszip:/C:/devtools/workspace/g2/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1302541739184/deploy/ecotrakEar.ear/ecotrak.war/WEB-INF/lib/slf4j-log4j12-1.6.1.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [vfszip:/C:/devtools/jboss-5.1.0.GA/common/lib/slf4j-jboss-logging.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Trong ứng dụng của tôi, tôi đã các lọ sau nằm trong lib WAR của tôi thư mục:
- Tháng Bảy-to-slf4j-1.6.1.jar
- slf4j-api-1.6.1.jar
- slf4j-log4j12-1.6.1.jar 01.235.
Dự án của tôi được triển khai dưới dạng EAR có WAR. Tất cả các thư viện đều nằm trong WAR.
Dựa trên một số nghiên cứu đã được đề xuất rằng đối với JBoss 5.1, tệp jboss-classloading.xml được tạo. Tôi đã tạo một bản cho EAR của mình:
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.ear"
domain="ecotrak.ear"
export-all="NON_EMPTY"
import-all="true"
parent-first="false">
</classloading>
Điều này xác định rằng tệp EAR sẽ được tải trước.
Tôi cũng đã tạo ra một cho WAR tôi:
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.war"
domain="ecotrak.war"
parent-domain="ecotrak.ear"
top-level-classloader="true"
export-all="NON_EMPTY"
import-all="true"
parent-first="true">
</classloading>
Với cấu hình này tôi nhận được lỗi sau đây trong các bản ghi khởi động:
11:18:07,949 ERROR [[/ecotrak]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.trace(SLF4JLocationAwareLog.java:107)
là gì cách chính xác để có lọ từ dự án của tôi được nạp trước khi JBoss?