dev@glassfish.java.net

Re: Embedded EJB container

From: Kumar Jayanti <Vbkumar.Jayanti_at_Sun.COM>
Date: Mon, 22 Jun 2009 13:57:55 +0530

Jerome Dochez wrote:
> Kumar Jayanti wrote:
>> Jerome,
>>
>> Ron Monzillo wrote:
>>> Jerome Dochez wrote:
>>>> this is the new problem I ran into after trying to hook up the
>>>> SecuritySniffer as part of the EJB deployment.
>>>> The fact it is looking in your maven repo is because the security
>>>> team is looking for a file relative to the security jar file.
>>>>
>>>> Are they ways to programmaticaly configure the locations of these
>>>> files and please no system properties, this is not an API :)
>>>
>>> the location of a realm's key file is passed as an option/property
>>> in the AuthRealm objects passed to the realm configuration system.
>>>
>>> In the non-embedded case these AuthRealm objects are constructed
>>> from corresponding content in domain.xml; the file paths begin with
>>> the install root property (which on xpansion may be null) which may
>>> explain why the file lookup is happening wrt to th mavn repo.
>> Just to show more details here is what defines the location in
>> domain.xml
>>
>> <auth-realm
>> classname="com.sun.enterprise.security.auth.realm.file.FileRealm"
>> name="file">
>> <property name="file"
>> value="${com.sun.aas.instanceRoot}/config/keyfile"/>
>>
>> And this is getting mapped to :
>> home/mvatkina/.m2/repository/org/glassfish/core/glassfish/3.0-SNAPSHOT/config/admin-keyfile
>>
>>
>> possibly because the value of property ${com.sun.aas.instanceRoot}
>> is null ?.
>>
>> I also saw some other email where it was trying to write the
>> securerandom seed and there was some error it encountered for similar
>> reasons, i could not locate the email today so i just wanted to show
>> the code we are using to write the secure seed.
>> @Inject
>> private ServerEnvironment env;
>>
>> /**
>> * code moved from V2 J2EEServer.run()
>> */
>> public void initSecureSeed() {
>> File secureSeedFile = new
>> File(env.getConfigDirPath(),"secure.seed");
>>
>> // read the secure random from the file
>> long seed = readSecureSeed(secureSeedFile);
>> secureRandom.setSeed(seed);
>> // generate a new one for the next startup
>> seed = secureRandom.nextLong();
>> writeSecureSeed(secureSeedFile, seed);
>> secureSeedFile = null;
>> }
>>
>> so we are using env.getConfigDirPath() here.
>>
>> If you can suggest how we can handle the above two problems in the
>> Embedded case then i can look into it and provide a fix.
> came to the same conclusion. In practice, there are no config
> directory in embedded so I can think of 3 choices.
>
> 1. ignore missing files, can security layer still function ?
The missing file for FileRealm cannot be ignored.
> 2. if not, can we use the JDK ones ?
> 3. if not, then should we ship a basic default within our security
> bundle.
Or we will have to create security initialization specific to embedded
case. I will talk to ron and get back.

regards,
kumar
>>
>> regards,
>> kumar
>>
>>>
>>> I don't know where the AuthRealm objects come from in the "embedded"
>>> case, but the value of the "file" property can be an absolute path;
>>> which should cause the corresponding realms to find their files
>>> (wherever they may be).
>>>
>>> this may be a question for the admin team.
>>>
>>> Ron
>>>
>>>>
>>>> thanks, jerome
>>>>
>>>> Marina Vatkina wrote:
>>>>
>>>>> Hi Kumar,
>>>>>
>>>>> Next problem (why is it looking under my maven repo?):
>>>>>
>>>>> Jun 18, 2009 9:34:28 AM
>>>>> com.sun.enterprise.security.SecurityServicesUtil writeSecureSeed
>>>>> WARNING: Cannot write the seed file for fast startup. The next
>>>>> startup will be slow.
>>>>> Jun 18, 2009 9:34:28 AM
>>>>> com.sun.enterprise.security.auth.realm.file.FileRealm loadKeyFile
>>>>> WARNING: filerealm.readerror
>>>>> java.io.FileNotFoundException:
>>>>> /home/mvatkina/.m2/repository/org/glassfish/core/glassfish/3.0-SNAPSHOT/config/admin-keyfile
>>>>> (No such file or directory)
>>>>> at java.io.FileInputStream.open(Native Method)
>>>>> at java.io.FileInputStream.<init>(FileInputStream.java:106)
>>>>> at java.io.FileInputStream.<init>(FileInputStream.java:66)
>>>>> at java.io.FileReader.<init>(FileReader.java:41)
>>>>> at
>>>>> com.sun.enterprise.security.auth.realm.file.FileRealm.loadKeyFile(FileRealm.java:806)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.auth.realm.file.FileRealm.init(FileRealm.java:209)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.auth.realm.Realm.doInstantiate(Realm.java:253)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.auth.realm.Realm.instantiate(Realm.java:165)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.auth.realm.RealmConfig.createRealms(RealmConfig.java:74)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.SecurityLifecycle.createRealms(SecurityLifecycle.java:269)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.SecurityLifecycle.onInitialization(SecurityLifecycle.java:165)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.SecurityLifecycle.postConstruct(SecurityLifecycle.java:230)
>>>>>
>>>>> at
>>>>> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:170)
>>>>>
>>>>> at
>>>>> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:90)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:87)
>>>>>
>>>>> at
>>>>> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
>>>>> at
>>>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
>>>>>
>>>>> at
>>>>> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
>>>>> at
>>>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.security.SecuritySniffer.setup(SecuritySniffer.java:105)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.v3.server.ContainerStarter.startContainer(ContainerStarter.java:101)
>>>>>
>>>>> at
>>>>> com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainer(ApplicationLifecycle.java:614)
>>>>>
>>>>>
>>>>> thanks,
>>>>> -marina
>>>>>
>>>>> Kumar Jayanti wrote:
>>>>>
>>>>>> Marina Vatkina wrote:
>>>>>>
>>>>>>> Hi Kumar, Jerome,
>>>>>>>
>>>>>>> This NPE blocks any embedded EJB access in the current ws:
>>>>>>>
>>>>>> I seem to be discovering the missing initializations one-by-one
>>>>>> for the embedded case. This is because the security sniffer is
>>>>>> not used for embedded case. Sorry i missed seeing this email
>>>>>> earlier. I just checked in a fix, let me know if there are any
>>>>>> further issues.
>>>>>>
>>>>>> regards,
>>>>>> kumar
>>>>>>
>>>>>>> javax.ejb.EJBException: java.lang.NullPointerException
>>>>>>> at
>>>>>>> com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1723)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:188)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84)
>>>>>>>
>>>>>>> at $Proxy57.saySomething(Unknown Source)
>>>>>>> ...
>>>>>>>
>>>>>>> Caused by: java.lang.NullPointerException
>>>>>>> at
>>>>>>> org.glassfish.ejb.security.application.EJBSecurityManager.authorize(EJBSecurityManager.java:718)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.ejb.containers.BaseContainer.authorize(BaseContainer.java:2119)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1675)
>>>>>>>
>>>>>>> ... 48 more
>>>>>>>
>>>>>>> thanks,
>>>>>>> -marina
>>>>>>>
>>>>>>> Kumar Jayanti wrote:
>>>>>>>
>>>>>>>> Kumar Jayanti wrote:
>>>>>>>>
>>>>>>>>> I have putback a fix for the NPE today.
>>>>>>>>>
>>>>>>>> Sorry i wrote NPE by mistake, the fix is for the problem :
>>>>>>>> java.lang.ClassNotFoundException: JACC:Error
>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>
>>>>>>>> regards,
>>>>>>>> kumar
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Ron Monzillo wrote:
>>>>>>>>>
>>>>>>>>>> Jerome Dochez wrote:
>>>>>>>>>>
>>>>>>>>>>> Ron Monzillo wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Jerome,
>>>>>>>>>>>>
>>>>>>>>>>>> I have been away, so I am just catching up on my email.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> not it is not, got busy with javaone.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On the chance that it was not resolved, the
>>>>>>>>>>>> PolicyConfigurationFactory implementation class is
>>>>>>>>>>>> configued via the system property:
>>>>>>>>>>>>
>>>>>>>>>>>> javax.security.jacc.PolicyConfigurationFactory.provider
>>>>>>>>>>>>
>>>>>>>>>>>> The factory is used to find the policy configuration
>>>>>>>>>>>> interface for the associated policy provider. The
>>>>>>>>>>>> configuration interface is used by the deployment system to
>>>>>>>>>>>> convey the ee application security policy to the pluggabble
>>>>>>>>>>>> policy subsystem (for subsquent enforcement by the policy
>>>>>>>>>>>> subsystem).
>>>>>>>>>>>>
>>>>>>>>>>>> both the factory and the policy implementation classes must
>>>>>>>>>>>> be must be defined (using different properties), and it
>>>>>>>>>>>> looks like you were testing in an environment where the
>>>>>>>>>>>> factory property had not been defined.
>>>>>>>>>>>>
>>>>>>>>>>> I was afraid it would be something like this... Is there no
>>>>>>>>>>> other way to achieve pluggability ? System properties are
>>>>>>>>>>> evil in general but they are particularly evil in embedded
>>>>>>>>>>> mode...
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> the factory must be defined by a system property (given the
>>>>>>>>>> current state of the standard). If you can describe how you
>>>>>>>>>> the implementation class should be identified, then I can try
>>>>>>>>>> to make a maintenance revision to the spec.
>>>>>>>>>>
>>>>>>>>>> Java uses a security property to define the policy provider
>>>>>>>>>> (which in the general case need not be jacc compatible). The
>>>>>>>>>> security property is named "policy.provider", and is defined
>>>>>>>>>> in jre/lib/security/java.security.
>>>>>>>>>>
>>>>>>>>>> jacc defines a system property to allow replacement of the
>>>>>>>>>> provider configured via the security property. you could
>>>>>>>>>> directly configure the jacc policy provider via the security
>>>>>>>>>> property (but you would still need to configure the factory
>>>>>>>>>> via a system property).
>>>>>>>>>>
>>>>>>>>>> Ron
>>>>>>>>>>
>>>>>>>>>>> jerome
>>>>>>>>>>>
>>>>>>>>>>>> Ron
>>>>>>>>>>>>
>>>>>>>>>>>> Jerome Dochez wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> In my test, I am not doing any transaction, so I could not
>>>>>>>>>>>>> care less which one is used so far as long as it runs my
>>>>>>>>>>>>> simple EJB. The dependency list is not final yet, I am
>>>>>>>>>>>>> just trying to get basic EJBs working.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On May 28, 2009, at 11:57 PM, Marina Vatkina wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Jerome,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I can't speak for the security, but I do see that you are
>>>>>>>>>>>>>> using JavaEETransactionManagerSimplifiedDelegate which
>>>>>>>>>>>>>> means that e.g. jts.jar is not present in your setup. Is
>>>>>>>>>>>>>> it expected?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> thanks,
>>>>>>>>>>>>>> -marina
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Jerome Dochez wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Kumar, Ken, Marina
>>>>>>>>>>>>>>> I am making progress on the embedded EJB container, I
>>>>>>>>>>>>>>> now have a test trying to deploy a simple ejb jar file
>>>>>>>>>>>>>>> within maven. It seems to work until the ejb container
>>>>>>>>>>>>>>> tries to setup the security.
>>>>>>>>>>>>>>> I have placed inmemory.jacc.provider in the classpath
>>>>>>>>>>>>>>> (remember no OSGi in such env). Why is it complaining
>>>>>>>>>>>>>>> that the jacc.factory is not found ? isn't it
>>>>>>>>>>>>>>> SimplePolicyProvider ?
>>>>>>>>>>>>>>> part of the classpath :
>>>>>>>>>>>>>>> [DEBUG]
>>>>>>>>>>>>>>> /Users/dochez/.m2/repository/org/glassfish/security/
>>>>>>>>>>>>>>> inmemory.jacc.provider/3.0-SNAPSHOT/inmemory.jacc.provider-3.0-
>>>>>>>>>>>>>>> SNAPSHOT.jar I get the following exception :
>>>>>>>>>>>>>>> -------------------------------------------------------
>>>>>>>>>>>>>>> T E S T S
>>>>>>>>>>>>>>> -------------------------------------------------------
>>>>>>>>>>>>>>> Running org.glassfish.tests.ejb.EmbeddedTest
>>>>>>>>>>>>>>> May 28, 2009 9:57:20 PM AppServerStartup start
>>>>>>>>>>>>>>> INFO: Starting GlassFish Kernel
>>>>>>>>>>>>>>> May 28, 2009 9:57:20 PM
>>>>>>>>>>>>>>> com.sun.enterprise.v3.server.AppServerStartup run
>>>>>>>>>>>>>>> INFO: GlassFish v3 startup time : Embedded(271ms)
>>>>>>>>>>>>>>> startup services(287ms) total(558ms)
>>>>>>>>>>>>>>> May 28, 2009 9:57:20 PM AppServerStartup run
>>>>>>>>>>>>>>> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
>>>>>>>>>>>>>>> Deployment expansion took 11
>>>>>>>>>>>>>>> May 28, 2009 9:57:20 PM
>>>>>>>>>>>>>>> com.sun.enterprise.transaction.JavaEETransactionManagerSimplified
>>>>>>>>>>>>>>> initDelegates
>>>>>>>>>>>>>>> INFO: Using com .sun
>>>>>>>>>>>>>>> .enterprise.transaction.JavaEETransactionManagerSimplifiedDelegate
>>>>>>>>>>>>>>> as the delegate
>>>>>>>>>>>>>>> >>Started EJB Container Service....: server
>>>>>>>>>>>>>>> >>EjbContainerUtil:
>>>>>>>>>>>>>>> com.sun.ejb.containers.EjbContainerUtilImpl_at_3aca6da2
>>>>>>>>>>>>>>> DOL Loading time52
>>>>>>>>>>>>>>> May 28, 2009 9:57:21 PM
>>>>>>>>>>>>>>> org.glassfish.ejb.security.application.EJBSecurityManager
>>>>>>>>>>>>>>> getPolicyFactory
>>>>>>>>>>>>>>> SEVERE: jaccfactory.notfound
>>>>>>>>>>>>>>> May 28, 2009 9:57:21 PM org.glassfish.api.ActionReport
>>>>>>>>>>>>>>> failure
>>>>>>>>>>>>>>> SEVERE: Exception while invoking class
>>>>>>>>>>>>>>> org.glassfish.ejb.startup.EjbDeployer load method
>>>>>>>>>>>>>>> java.lang.RuntimeException: EJB Container initialization
>>>>>>>>>>>>>>> error
>>>>>>>>>>>>>>> at org .glassfish
>>>>>>>>>>>>>>> .ejb.startup.EjbApplication.loadContainers(EjbApplication.java:
>>>>>>>>>>>>>>> 198) at
>>>>>>>>>>>>>>> org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:160)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:57)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:152)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at org
>>>>>>>>>>>>>>> .glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:
>>>>>>>>>>>>>>> 174)
>>>>>>>>>>>>>>> at com .sun .enterprise
>>>>>>>>>>>>>>> .v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:
>>>>>>>>>>>>>>> 282) at org .glassfish .kernel
>>>>>>>>>>>>>>> .embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:
>>>>>>>>>>>>>>> 65) at
>>>>>>>>>>>>>>> org.glassfish.tests.ejb.EmbeddedTest.test(EmbeddedTest.java:24)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at org .junit .internal
>>>>>>>>>>>>>>> .runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:
>>>>>>>>>>>>>>> 99) at org .junit .internal
>>>>>>>>>>>>>>> .runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:
>>>>>>>>>>>>>>> 81) at org .junit .internal .runners
>>>>>>>>>>>>>>> .BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>>>>>>>>>>>>>>> at org .junit
>>>>>>>>>>>>>>> .internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:
>>>>>>>>>>>>>>> 75) at org
>>>>>>>>>>>>>>> .junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:
>>>>>>>>>>>>>>> 45)
>>>>>>>>>>>>>>> at org .junit .internal .runners
>>>>>>>>>>>>>>> .TestClassMethodsRunner
>>>>>>>>>>>>>>> .invokeTestMethod(TestClassMethodsRunner.java:66) at
>>>>>>>>>>>>>>> org .junit .internal
>>>>>>>>>>>>>>> .runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:
>>>>>>>>>>>>>>> 35) at org.junit.internal.runners.TestClassRunner
>>>>>>>>>>>>>>> $1.runUnprotected(TestClassRunner.java:42) at org
>>>>>>>>>>>>>>> .junit .internal .runners
>>>>>>>>>>>>>>> .BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:
>>>>>>>>>>>>>>> 52)
>>>>>>>>>>>>>>> at org .apache
>>>>>>>>>>>>>>> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:
>>>>>>>>>>>>>>> 62) at org .apache .maven .surefire .suite
>>>>>>>>>>>>>>> .AbstractDirectoryTestSuite
>>>>>>>>>>>>>>> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>>>>>>>>>>>>>>> at org .apache .maven .surefire .suite
>>>>>>>>>>>>>>> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:
>>>>>>>>>>>>>>> 127) at
>>>>>>>>>>>>>>> org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at org .apache .maven .surefire
>>>>>>>>>>>>>>> .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:
>>>>>>>>>>>>>>> 345) at org .apache
>>>>>>>>>>>>>>> .maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:
>>>>>>>>>>>>>>> 241) at org .apache
>>>>>>>>>>>>>>> .maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:
>>>>>>>>>>>>>>> 537) at org .apache .maven
>>>>>>>>>>>>>>> .plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:
>>>>>>>>>>>>>>> 483) at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoals(DefaultLifecycleExecutor.java:678) at
>>>>>>>>>>>>>>> org .apache .maven .lifecycle .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:
>>>>>>>>>>>>>>> 519) at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeTaskSegments(DefaultLifecycleExecutor.java:332)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:
>>>>>>>>>>>>>>> 181) at
>>>>>>>>>>>>>>> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>>>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:
>>>>>>>>>>>>>>> 315)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>>>>>>>>>>>>>>> Caused by: java.lang.RuntimeException:
>>>>>>>>>>>>>>> javax.security.jacc.PolicyContextException:
>>>>>>>>>>>>>>> java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at org .glassfish .ejb .security .factory
>>>>>>>>>>>>>>> .EJBSecurityManagerFactory
>>>>>>>>>>>>>>> .createManager(EJBSecurityManagerFactory.java:205)
>>>>>>>>>>>>>>> at org .glassfish
>>>>>>>>>>>>>>> .ejb.startup.EjbApplication.loadContainers(EjbApplication.java:
>>>>>>>>>>>>>>> 182) ... 50 more
>>>>>>>>>>>>>>> Caused by: javax.security.jacc.PolicyContextException:
>>>>>>>>>>>>>>> java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.getPolicyFactory(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 220) at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.loadPolicyConfiguration(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 235) at org .glassfish .ejb .security
>>>>>>>>>>>>>>> .application.EJBSecurityManager.initialize(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 299) at org .glassfish .ejb .security
>>>>>>>>>>>>>>> .application.EJBSecurityManager.<init>(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 183) at org .glassfish .ejb .security .factory
>>>>>>>>>>>>>>> .EJBSecurityManagerFactory
>>>>>>>>>>>>>>> .createManager(EJBSecurityManagerFactory.java:198)
>>>>>>>>>>>>>>> ... 51 more
>>>>>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at javax .security .jacc .PolicyConfigurationFactory
>>>>>>>>>>>>>>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:
>>>>>>>>>>>>>>> 172) at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.getPolicyFactory(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 217) ... 55 more
>>>>>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : property not set :
>>>>>>>>>>>>>>> javax.security.jacc.PolicyConfigurationFactory.provider
>>>>>>>>>>>>>>> at javax .security .jacc .PolicyConfigurationFactory
>>>>>>>>>>>>>>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:
>>>>>>>>>>>>>>> 157) ... 56 more
>>>>>>>>>>>>>>> May 28, 2009 9:57:21 PM org.glassfish.api.ActionReport
>>>>>>>>>>>>>>> failure
>>>>>>>>>>>>>>> SEVERE: Exception while loading the app
>>>>>>>>>>>>>>> java.lang.RuntimeException: EJB Container initialization
>>>>>>>>>>>>>>> error
>>>>>>>>>>>>>>> at org .glassfish
>>>>>>>>>>>>>>> .ejb.startup.EjbApplication.loadContainers(EjbApplication.java:
>>>>>>>>>>>>>>> 198) at
>>>>>>>>>>>>>>> org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:160)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:57)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:152)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at org
>>>>>>>>>>>>>>> .glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:
>>>>>>>>>>>>>>> 174)
>>>>>>>>>>>>>>> at com .sun .enterprise
>>>>>>>>>>>>>>> .v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:
>>>>>>>>>>>>>>> 282) at org .glassfish .kernel
>>>>>>>>>>>>>>> .embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:
>>>>>>>>>>>>>>> 65) at
>>>>>>>>>>>>>>> org.glassfish.tests.ejb.EmbeddedTest.test(EmbeddedTest.java:24)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at org .junit .internal
>>>>>>>>>>>>>>> .runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:
>>>>>>>>>>>>>>> 99) at org .junit .internal
>>>>>>>>>>>>>>> .runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:
>>>>>>>>>>>>>>> 81) at org .junit .internal .runners
>>>>>>>>>>>>>>> .BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>>>>>>>>>>>>>>> at org .junit
>>>>>>>>>>>>>>> .internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:
>>>>>>>>>>>>>>> 75) at org
>>>>>>>>>>>>>>> .junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:
>>>>>>>>>>>>>>> 45)
>>>>>>>>>>>>>>> at org .junit .internal .runners
>>>>>>>>>>>>>>> .TestClassMethodsRunner
>>>>>>>>>>>>>>> .invokeTestMethod(TestClassMethodsRunner.java:66) at
>>>>>>>>>>>>>>> org .junit .internal
>>>>>>>>>>>>>>> .runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:
>>>>>>>>>>>>>>> 35) at org.junit.internal.runners.TestClassRunner
>>>>>>>>>>>>>>> $1.runUnprotected(TestClassRunner.java:42) at org
>>>>>>>>>>>>>>> .junit .internal .runners
>>>>>>>>>>>>>>> .BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:
>>>>>>>>>>>>>>> 52)
>>>>>>>>>>>>>>> at org .apache
>>>>>>>>>>>>>>> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:
>>>>>>>>>>>>>>> 62) at org .apache .maven .surefire .suite
>>>>>>>>>>>>>>> .AbstractDirectoryTestSuite
>>>>>>>>>>>>>>> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>>>>>>>>>>>>>>> at org .apache .maven .surefire .suite
>>>>>>>>>>>>>>> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:
>>>>>>>>>>>>>>> 127) at
>>>>>>>>>>>>>>> org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at org .apache .maven .surefire
>>>>>>>>>>>>>>> .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:
>>>>>>>>>>>>>>> 345) at org .apache
>>>>>>>>>>>>>>> .maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:
>>>>>>>>>>>>>>> 241) at org .apache
>>>>>>>>>>>>>>> .maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:
>>>>>>>>>>>>>>> 537) at org .apache .maven
>>>>>>>>>>>>>>> .plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:
>>>>>>>>>>>>>>> 483) at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoals(DefaultLifecycleExecutor.java:678) at
>>>>>>>>>>>>>>> org .apache .maven .lifecycle .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:
>>>>>>>>>>>>>>> 519) at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor
>>>>>>>>>>>>>>> .executeTaskSegments(DefaultLifecycleExecutor.java:332)
>>>>>>>>>>>>>>> at org .apache .maven .lifecycle
>>>>>>>>>>>>>>> .DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:
>>>>>>>>>>>>>>> 181) at
>>>>>>>>>>>>>>> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>>>>>>>> at sun .reflect
>>>>>>>>>>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>>>>>>>>>>>>> 39) at sun .reflect .DelegatingMethodAccessorImpl
>>>>>>>>>>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25) at
>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:
>>>>>>>>>>>>>>> 315)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>>>>>>>>>>>>>>> Caused by: java.lang.RuntimeException:
>>>>>>>>>>>>>>> javax.security.jacc.PolicyContextException:
>>>>>>>>>>>>>>> java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at org .glassfish .ejb .security .factory
>>>>>>>>>>>>>>> .EJBSecurityManagerFactory
>>>>>>>>>>>>>>> .createManager(EJBSecurityManagerFactory.java:205)
>>>>>>>>>>>>>>> at org .glassfish
>>>>>>>>>>>>>>> .ejb.startup.EjbApplication.loadContainers(EjbApplication.java:
>>>>>>>>>>>>>>> 182) ... 50 more
>>>>>>>>>>>>>>> Caused by: javax.security.jacc.PolicyContextException:
>>>>>>>>>>>>>>> java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.getPolicyFactory(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 220) at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.loadPolicyConfiguration(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 235) at org .glassfish .ejb .security
>>>>>>>>>>>>>>> .application.EJBSecurityManager.initialize(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 299) at org .glassfish .ejb .security
>>>>>>>>>>>>>>> .application.EJBSecurityManager.<init>(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 183) at org .glassfish .ejb .security .factory
>>>>>>>>>>>>>>> .EJBSecurityManagerFactory
>>>>>>>>>>>>>>> .createManager(EJBSecurityManagerFactory.java:198)
>>>>>>>>>>>>>>> ... 51 more
>>>>>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : cannot find class : null
>>>>>>>>>>>>>>> at javax .security .jacc .PolicyConfigurationFactory
>>>>>>>>>>>>>>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:
>>>>>>>>>>>>>>> 172) at org .glassfish .ejb .security .application
>>>>>>>>>>>>>>> .EJBSecurityManager.getPolicyFactory(EJBSecurityManager.java:
>>>>>>>>>>>>>>> 217) ... 55 more
>>>>>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: JACC:Error
>>>>>>>>>>>>>>> PolicyConfigurationFactory : property not set :
>>>>>>>>>>>>>>> javax.security.jacc.PolicyConfigurationFactory.provider
>>>>>>>>>>>>>>> at javax .security .jacc .PolicyConfigurationFactory
>>>>>>>>>>>>>>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:
>>>>>>>>>>>>>>> 157) ... 56 more
>>>>>>>>>>>>>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time
>>>>>>>>>>>>>>> elapsed: 1.108 sec
>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>> dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>> dev-help_at_glassfish.dev.java.net
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>> dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>> dev-help_at_glassfish.dev.java.net
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>
>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>> dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>> dev-help_at_glassfish.dev.java.net
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>
>>>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>> dev-help_at_glassfish.dev.java.net
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>> dev-help_at_glassfish.dev.java.net
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>
>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>>
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>
>