저는 maven에서 apache-commons-codec-1.8
을 사용하는 라이브러리를 사용하는 mule 프로젝트를 빌드하려고합니다. 현재 뮬 3.5가 지원하는 버전은 1.3
Mule 프로젝트의 Maven 종속성. 클래스 로더 컨트롤이 예상대로 작동하지 않습니다.
입니다.이 Ive를 해결하려면 mule에서 클래스 로더 컨트롤을 구현하고 mule-deploy.properties
에서 다음을 수행하여 라이브러리의 버전을로드하지 못하도록 뮬을 차단하십시오.
loader.override=-org.apache.commons.codec
는 또한 나는 도서관의 1.9
버전을 포함하는 내 pom.xml
업데이트되었습니다. 다음은 프로젝트에서 mvn:dependency tree
을 실행하는 스냅 샷입니다. 내 시험 방법을 실행할 때 그러나, 나는 그것이 apache-commons
의 이전 버전을 참조 있기 때문에 명확하게 런타임 예외
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString([B)Ljava/lang/String;
at com.nimbusds.jose.util.Base64URL.encode(Base64URL.java:64)
at com.nimbusds.jose.util.Base64URL.encode(Base64URL.java:91)
at com.nimbusds.jose.Header.toBase64URL(Header.java:238)
at com.nimbusds.jose.JWSObject.<init>(JWSObject.java:101)
at com.package.components.lastmile.originator.TokenSignerTemplate.sign(TokenSignerTemplate.java:109)
at com.package.components.lastmile.originator.TokenSignerTemplate.signClaim(TokenSignerTemplate.java:122)
at com.package.orchestration.LMSFakeClaimsHandler.testSignParse_Positive(LMSFakeClaimsHandler.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
를 얻을. 이전 버전이 아닌 최신 버전 만 참조하려면 어떻게해야합니까?
mule-deploy.properties
#Fri Dec 12 09:58:12 PST 2014
loader.override=-org.apache.commons.codec
redeployment.enabled=true
encoding=UTF-8
domain=default
config.resources=..flows.
.
<dependencies>
....
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
....
<!-- Test to check commons-codec works -->
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-http</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
P.S 의 pom.xml의
관련 위치 : 같은 조각은이 노새와 관련된 문제입니다 나타내는 비 노새 프로젝트를 잘 작동하는 것 같다.
아니 (재산 \t \t \t 가공 코덱 \t \t \t 가공 코덱 \t \t \t 1.9 \t \t ' 이외에 의존성 태그의 일부로서 상기 추가 같은 오류가 발생합니다. –
KodeSeeker
loader.override=-org.apache.commons.codec
을 유지) 서버 lib 디렉토리 공유 폴더에 최신 코덱 LIB 버전을 삽입하려고합니다. 작동하지 않습니다.I는 다음 항목 \t'pom.xml 및 mule-deploy.properties를 OP에 추가하십시오. 그 점이 우리가이 문제를 이해하는 데 도움이 될 수 있습니다. – user1760178
완료. 추가 정보가 필요한 경우 알려주세요. – KodeSeeker