1

배포하기 전에 다른 서버에서 실행중인 응용 프로그램의 .war 파일로 JBoss AS 7을 테스트하고 있습니다. 바로, 일부 포럼에서java.lang.NoClassDefFoundError : JBoss AS 7의 org/apache/commons/codec/DecoderException

SEVERE [] (http--0.0.0.0-8080-4) java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException 
java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException from [Module "deployment.app.war:main" from Service Module Loader] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220) 

, 그들은 공유지 코덱 항아리를 추가하는 것이 좋습니다,하지만 난 이미 보스에서 그것을 가지고 : 나는 응용 프로그램을 통해 데이터베이스에 로그온 할 때

나는이 오류가? (여기에서 : jboss-as-7.1.1.Final/modules/org/apache/commons/codec/main/commons-codec-1.4.jar)

은 OSGi가 활성화되지 않은, 솔직히 나는 아무 생각에 무슨 목적으로이 역할을하지만, 내가하려고 할 때 그것을 배포 실패로 나의 전쟁 놨을 활성화 ...

도움이된다면 JDK가 있지만 JRE는 없습니다.

+0

보스가 당신이 지적했듯이, 공유지 코덱을 가지고 있지만 응용 프로그램 (또는 해당 종속성 중) 서버에 의해 제공되는 것과 다른 버전을 필요로 할 수있다. – acdcjunior

답변

0

JBoss AS 7은 기본적으로 모듈러 클래스 로딩을 위해 OSGi를 사용하지 않습니다. JBoss 모듈을 사용하므로 OSGi와 아무런 관련이 없습니다.

JBoss AS 7과 함께 제공되는 commons-codec을 사용하려면해야 할 일은 배포에 add a dependency입니다.

0

인공 지능 클래스는 모듈을 자동으로 볼 수 없습니다. 당신의 standalone.xml http://javahowto.blogspot.de/2012/09/how-to-create-global-modules-in-jboss.html 이 모듈은 JBoss에 배포하는 모든 인공물에 의해 사용됩니다에

  1. 글로벌 모듈을 정의 : 당신은 세 가지 가능성이있다.
  2. 전쟁 아티팩트의 lib 폴더에 넣으십시오. Maven으로 할 수 있습니다.
  3. 매니페스트 내에 명시 적 종속성을 정의하십시오. https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 섹션 종속 관계 : 매니페스트 항목