I am starting to port the Seam 2.3 application to JavaEE 6, and as part of this will use PicketLink 2.5.0 and PicketBox 5.0 for security, especially the IDM component. I am trying to use the JPA Identity Store and created my own entities with corresponding annotations. However, when I try to add a user, I get the following exception:
java.lang.NoClassDefFoundError: org/picketlink/idm/config/StoreConfiguration
I looked in JAR files and, of course, I do not see this object. I am using PicketBox 5.0. Is this a known issue with this combination of PicketLink and PicketBox? Is there something I'm doing wrong? Is this object in another JAR? The code to create my user is as follows:
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: A little more information about my setup ...
I downloaded PicketLink 2.5.0beta6 and PicketBox 5.0.0. All relevant JAR files are supported in my EAR file, which is deployed to JBoss EAP 6.1. When I run my code, I see the following exception:
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)
source share