2013-08-06 2 views
4

내가 JavaEE 어플 (6) 내 심 2.3 응용 프로그램을 통해 마이그레이션하기 시작하고있어, 그 부분은 특히, 보안을 위해 PicketLink 2.5.0 및 PicketBox 5.0을 사용하는 것 같은 IDM 구성 요소. JPA Identity Store를 사용하려고 노력하고 있으며 적절한 주석을 사용하여 자체 엔티티를 작성했습니다. 내가 사용자를 추가하려고 할 때, 나는 다음과 같은 예외 얻을 :PicketLink - NoClassDefFound : 조직/picketlink/IDM/설정/StoreConfiguration

java.lang.NoClassDefFoundError: org/picketlink/idm/config/StoreConfiguration 

나는 JAR 파일에서 검토 한 결과를, 과연 나는이 객체를 볼 수 없습니다. PicketBox 5.0을 사용하고 있습니다. PicketLink와 PicketBox의 조합에 대해 알려진 문제입니까? 내가 뭘 잘못하고 있니? 이 객체는 다른 JAR에 있습니까? 내 사용자를 생성하는 코드는 다음과 같습니다

ConfigurationBuilder builder = new ConfigurationBuilder(); 
builder.identityManager().jpaStore(); 

PicketBoxConfiguration config = builder.build(); 
DefaultPicketBoxManager picketBoxManager = new DefaultPicketBoxManager(
     config); 

picketBoxManager.start(); 

EntityManagerPropagationContext.set(this.entityManager); 

IdentityManager idm = picketBoxManager.getIdentityManager(); 

    SimpleUser user = new SimpleUser("testuser"); 
    idm.add(user); 
    System.out.println("User added"); 

UPDATE : 내 설정에 대한 좀 더 정보 ... 내가 PicketLink의 2.5.0beta6 및 PicketBox 5.0.0을 다운로드

. 모든 관련 JAR 파일은 JBoss EAP 6.1에 배포 된 내 EAR 파일 내에서 유지 관리됩니다. 나는 보스 EAP 6.1 내에서 PicketLink 라이브러리를 업그레이드하는 방법을 설명은 JBoss 사이트에서 문서를 찾을 수 있었다

java.lang.NoClassDefFoundError: org/picketlink/idm/config/StoreConfiguration 
    org.picketbox.core.AbstractPicketBoxManager.doStart(AbstractPicketBoxManager.java:244) 
    org.picketbox.core.AbstractPicketBoxLifeCycle.start(AbstractPicketBoxLifeCycle.java:53) 
    net.test.services.TestEJB.doTest(TestEJB.java:42) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:601) 
    org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) 
    org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 
    org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 
    org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) 
    org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 
    org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374) 
    org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:129) 
    org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:137) 
    org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) 
    org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 

... 

JBWEB000071: root cause 

java.lang.ClassNotFoundException: org.picketlink.idm.config.StoreConfiguration from [Module "deployment.TestApp-ear.ear:main" from Service Module Loader] 
    org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) 
    org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) 
    org.picketbox.core.AbstractPicketBoxManager.doStart(AbstractPicketBoxManager.java:244) 
    org.picketbox.core.AbstractPicketBoxLifeCycle.start(AbstractPicketBoxLifeCycle.java:53) 
    net.test.services.TestEJB.doTest(TestEJB.java:42) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:601) 
+0

모듈 종속성으로'org.picketlink'을 추가해 보셨나요? –

+0

필자는 EAR에 내장 된 최신 버전 (2.5.0beta6)의 picketlink를 보유하고 있습니다. 이것이 JBoss EAP 6.1에 포함 된 것이 아니라 사용하고 싶은 것입니다. – Shadowman

답변

0

: 내 코드를 실행하면, 내가 던진 다음 예외를 참조하십시오. 그것은 모든 것을 해결했습니다.