2014-12-30 5 views
2

프로젝트 목적으로 개발을 위해 Java 1.6을 고수해야하며, 비동기 클라이언트 jar 파일을 사용하고이를 비동기 기능을 달성하기 위해 내 프로젝트에 통합하고 개발 및 내보내기했습니다. Java 1.6을 사용하는 JAR 이 항아리는 Java 7에서 실행중인 다른 웹 프로젝트의 빌드 경로에 포함되어 있습니다. Java 7 64 비트 및 Tomcat7 64 비트와 잘 작동합니다. 자바 7 32 비트 및 tomcat7 32 비트를 사용하면 다음 오류가 표시됩니다.slf4j java.lang.LinkageError 로더 제약 조건 위반

java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type taticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory; used in the signature 
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:299) 
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269) 
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281) 
at com.ning.http.client.AsyncHttpClient.<clinit>(AsyncHttpClient.java:146) 
at com.netspective.ems.invoker.AsyncApiInvoker.post(AsyncApiInvoker.java:39) 
at com.netspective.ems.invoker.AsyncApiInvoker.post(AsyncApiInvoker.java:32) 
at com.netspective.ems.invoker.AsyncApiInvoker.post(AsyncApiInvoker.java:73) 
at com.netspective.ems.api.ExceptionApi.notify(ExceptionApi.java:42) 
at com.netspective.ems.NetspectiveEMS.prepareAndPostDetails(NetspectiveEMS.java:101) 
at com.netspective.ems.NetspectiveEMS.log(NetspectiveEMS.java:168) 
at com.netspective.watchtower.sdk.log4j.WatchtowerClientAppender.append(WatchtowerClientAppender.java:32) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66) 
at org.apache.log4j.Category.callAppenders(Category.java:206) 
at org.apache.log4j.Category.forcedLog(Category.java:391) 
at org.apache.log4j.Category.log(Category.java:856) 
at org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:155) 
at org.apache.commons.discovery.resource.names.DiscoverNamesInFile.findResourceNames(DiscoverNamesInFile.java:178) 
at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java:323) 
at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java:520) 
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:370) 
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:270) 
at gov.max.service.appendixb.persistence.restlet.resources.common.ServiceConfig.<clinit>(ServiceConfig.java:22) 
at gov.max.service.appendixb.filter.security.SecurityFilter.init(SecurityFilter.java:129) 
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281) 
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262) 
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107) 
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4656) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5309) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) 
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 

나는 프로젝트

async-http-client.jar 
com.fasterxml.jackson.core.jar 
com.fasterxml.jackson.databind.jar 
com.springsource.org.joda.time-1.6.0.jar 
jackson-annotations-2.0.2.jar 
jackson-databind-2.0.5-sources.jar 
jackson-datatype-joda-2.0.4.jar 
json-1.5.jar 
slf4j-api-1.7.0.jar 

이 예외를 해결할 수있는 방법이 있나요에 다음 항아리를 사용했다? 어떤 제안을 주셔서 감사합니다.

답변

1

slf4j-api-1.5.*.jar 또는 그 이전 버전을 사용해보세요. 나는 API 버전 번호가 자바 버전에 의존하지 않을 수도 있지만 그럴 가치가있을 것입니다. Java 1.6 프로젝트에서 다음을 시도했습니다.

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.6.1</version> 
</dependency>