cancel
Showing results for 
Search instead for 
Did you mean: 

Sun AppServer Alfresco issues

erwinv
Champ in-the-making
Champ in-the-making
After trying to install the WAR version of alfresco on Sun AppServer 8.1, the following exception shows up, preventing the application context from starting.


Context initialization failed
java.lang.ExceptionInInitializerError"

(full trace below)

The exception in turn is caused by:

Caused by: java.security.AccessControlException: access denied (java.security.SecurityPermission putProviderProperty.CryptixCrypto)

(see trace again)

Tried Adding the following to server.policy:


// Alfresco addition
grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/alfresco/-" {
     permission java.security.SecurityPermission "putProviderProperty.CryptixCrypto";
};

which didn't do anything…

Ultimately, the exception is caused by the static initialization block in org/alfresco/repo/security/authentication/MD4PasswordEncoderImpl:


    static
    {
        try
        {
            MessageDigest.getInstance("MD4");
        }
        catch (NoSuchAlgorithmException e)
        {
            Security.addProvider(new CryptixCrypto());
        }
    }

i.e. when no other MD4 implementation is present, it defaults to Cryptix.

Any hints as to how to fix this?

         Erwin

Stack trace from server.log:


[#|2006-01-13T09:13:32.507-0700|INFO|sun-appserver-ee8.1|javax.enterprise.system.stream.out|_ThreadID=10;|09:13:32,505 ERROR [web.context.ContextLoader] Context initialization failed
java.lang.ExceptionInInitializerError
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Class.java:242)
   at org.springframework.util.ClassUtils.forName(ClassUtils.java:86)
   at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:61)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:332)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:298)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:235)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:184)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:188)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:146)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.importBeanDefinitionResource(DefaultXmlBeanDefinitionParser.java:268)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:226)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:184)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:188)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:146)
   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:99)
   at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:114)
   at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:82)
   at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:87)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:260)
   at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:133)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:230)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:156)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4010)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4525)
   at com.sun.enterprise.web.WebModule.start(WebModule.java:241)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1086)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:833)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1086)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:483)
   at org.apache.catalina.startup.Embedded.start(Embedded.java:894)
   at com.sun.enterprise.web.WebContainer.start(WebContainer.java:688)
   at com.sun.enterprise.web.HttpServiceWebContainer.startInstance(HttpServiceWebContainer.java:889)
   at com.sun.enterprise.web.HttpServiceWebContainerLifecycle.onStartup(HttpServiceWebContainerLifecycle.java:50)
   at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:300)
   at com.sun.enterprise.server.PEMain.run(PEMain.java:294)
   at com.sun.enterprise.server.PEMain.main(PEMain.java:220)
Caused by: java.security.AccessControlException: access denied (java.security.SecurityPermission putProviderProperty.CryptixCrypto)
   at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
   at java.security.AccessController.checkPermission(AccessController.java:427)
   at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
   at java.lang.SecurityManager.checkSecurityAccess(SecurityManager.java:1698)
   at java.security.Provider.check(Provider.java:349)
   at java.security.Provider.put(Provider.java:303)
   at cryptix.jce.provider.CryptixCrypto.<init>(CryptixCrypto.java:54)
   at org.alfresco.repo.security.authentication.MD4PasswordEncoderImpl.<clinit>(MD4PasswordEncoderImpl.java:57)
   … 38 more
|#]
5 REPLIES 5

erwinv
Champ in-the-making
Champ in-the-making
Okay, so why do I always get my inspirational thoughts after I post to these forums?

Setting the permission to

permission java.security.AllPermission;
gets rid of the permissions errors (though opening up a potential security hole, I suppose…).

Now for the rest of the errors. Somehow Hibernate seems to be not on the classpath:

Error in named query: node.GetChangedNodeStatuses
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [
      select
         status
      from
         org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
      where
         status.key.protocol = :storeProtocol and
         status.key.identifier = :storeIdentifier and
         status.deleted = :deleted and
         status.changeTxnId = :changeTxnId
   ]
        at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:57)
        at antlr.CharScanner.setTokenObjectClass(CharScanner.java:340)
        at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:31)
        at antlr.CharScanner.<init>(CharScanner.java:51)
        at antlr.CharScanner.<init>(CharScanner.java:60)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)
        at org.hibernate.hql.ast.HqlLexer.<init>(HqlLexer.java:26)
        at org.hibernate.hql.ast.HqlParser.getInstance(HqlParser.java:45)
        at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:228)
        at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:151)
        at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:101)
        at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:468)
        at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:436)
        at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:325)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1091)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:758
)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:68
5)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowi
reCapableBeanFactory.java:937)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:334)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:316)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:316)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(Abst
ractAutowireCapableBeanFactory.java:599)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAuto
wireCapableBeanFactory.java:497)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:298)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefiniti
onValueResolver.java:147)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:96)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:316)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:316)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapab
leBeanFactory.java:316)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:146)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueRes
olver.java:176)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionV
alueResolver.java:105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAuto
wireCapableBeanFactory.java:891)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCap
ableBeanFactory.java:707)
        at org.springframe|#]

erwinv
Champ in-the-making
Champ in-the-making
Okay, so here's the pickle of the day.

Turns out these errors are due to an incompatible version of antlr.jar on the Sun AppServer classpath (in {serverroot}/lib) that doesn't play nice with Hibernate in Alfresco.

Following a post in a different Hibernate/Sun related forum, I tried replacing the AppServer's antlr.jar with the one from Alfresco. This made Alfresco start up fine, but immediately after caused AppServer to crash and burn:


[#|2006-01-13T14:26:46.329-0700|WARNING|sun-appserver-pe9.0|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;_RequestID=40fce848-cbf3-428b-98d9-e17b9b3aa841;|CORE5016: Unexpected error occurred while loading applications
java.lang.VerifyError: Cannot inherit from final class
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
   at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
   at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1922)
   at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:943)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1409)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
   at org.apache.catalina.core.StandardWrapper$1.run(StandardWrapper.java:1047)
   at java.security.AccessController.doPrivileged(Native Method)
   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1043)
   at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:962)
   at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4404)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4762)
   at com.sun.enterprise.web.WebModule.start(WebModule.java:290)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1095)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:902)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1095)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:503)
   at org.apache.catalina.startup.Embedded.start(Embedded.java:914)
   at com.sun.enterprise.web.WebContainer.start(WebContainer.java:774)
   at com.sun.enterprise.web.PEWebContainer.startInstance(PEWebContainer.java:693)
   at com.sun.enterprise.web.PEWebContainerLifecycle.onStartup(PEWebContainerLifecycle.java:70)
   at com.sun.enterprise.server.ondemand.ServiceGroup.startLifecycleServices(ServiceGroup.java:264)
   at com.sun.enterprise.server.ondemand.WebServiceGroup.startLifecycleServices(WebServiceGroup.java:208)
   at com.sun.enterprise.server.ondemand.WebServiceGroup.start(WebServiceGroup.java:58)
   at com.sun.enterprise.server.ondemand.ServiceGroup$1.run(ServiceGroup.java:178)
   at java.security.AccessController.doPrivileged(Native Method)
   at com.sun.enterprise.server.ondemand.ServiceGroup.startChildren(ServiceGroup.java:175)
   at com.sun.enterprise.server.ondemand.MainServiceGroup.start(MainServiceGroup.java:43)
   at com.sun.enterprise.server.ondemand.ServerEntryListenerImpl.notifyEntry(ServerEntryListenerImpl.java:70)
   at com.sun.enterprise.server.ondemand.entry.ServerEntryHelper.sendEvent(ServerEntryHelper.java:60)
   at com.sun.enterprise.server.ondemand.entry.ServerEntryHelper.generateAppLoaderEntryContext(ServerEntryHelper.java:45)
   at com.sun.enterprise.server.AbstractLoader.generateEntryContext(AbstractLoader.java:822)
   at com.sun.enterprise.server.AbstractLoader.notifyAppEvent(AbstractLoader.java:828)
   at com.sun.enterprise.server.DummyWebModuleLoader.load(DummyWebModuleLoader.java:60)
   at com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:202)
   at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:199)
   at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:324)
   at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:110)
   at com.sun.enterprise.server.PEMain.run(PEMain.java:318)
   at com.sun.enterprise.server.PEMain.main(PEMain.java:252)
   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:585)
   at com.sun.enterprise.server.PELaunch.main(PELaunch.java:210)
|#]

Darned if ya do, darned if ya don't apparently…

gavinc
Champ in-the-making
Champ in-the-making
This could be a JSF conflict.

As it's a Sun appserver I presume they include the Sun Reference Implementation and not MyFaces?

It may be that the Sun RI is being found instead of our slightly modifed version of Myfaces which ends up causing this issue. If you can try removing the Sun RI of JSF and see if that helps.

erwinv
Champ in-the-making
Champ in-the-making
Thanks, that is very helpful information. This does do the job on a clean Sun AppServer PE 2005Q2 install. On our JES Portal Server, running on Sun AppServer EE 2005Q1, I also had to copy jaxen-1.1-beta-8.jar from Alfresco to the server's lib directory.

(Actually, I put both Alfresco's antlr-2.7.5H3.jar and jaxen-1.1-beta-8.jar in lib/endorsed. The JES server doesn't seem to have a conflicting antlr.jar to be removed, though. Go figure.)

After this, the web client does start up. I'm fully expecting a few more glitches as I go along. I'll keep you posted…  Smiley Happy

     Erwin

steve
Champ in-the-making
Champ in-the-making
Thanks for keeping us informed Erwin!

It's much appreciated.

Steve