dev@glassfish.java.net

Re: Embedded EJB container

From: Kumar Jayanti <Vbkumar.Jayanti_at_Sun.COM>
Date: Fri, 19 Jun 2009 16:31:34 +0530

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.

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
>
>