11-27-2005 07:51 AM
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.alfresco.jcr.util.JCRProxyFactory$SessionContextInvocationHandler
11-28-2005 01:14 AM
My use case is that I have JBoss installation with Alfresco WAR (from JBoss bundle) and my EAR (EJB3 beans + WAR). I need to access Alfresco's JCR repository from my web application.
Alfresco's bundled Hibernate is incompatible with JBoss EJB3 deployer one's so I have to isolate Alfresco WAR classloader from UCL. The main problem is that repository impementation is hibernate-backed and hibernate uses lazy loading - tries to load objects (nodes and their properties) on client (my webapp) side.
Question is - how should I get reference to javax.jcr.Repository instance so that all real work will be done in Alfresco WAR classes without trying to use my webapp classes?
I tried the following:
1. Simply put repository to JNDI and access it. Doesn't work because of ClassCastExceptions - uses hibernate classes from my webapp classloader which are different from Alfresco's ones.
2. Put ejb3 deployer libs as shared (myserver/lib) and remove hibernate-related jars from alfresco so we'll both use same jars. Doesn't work because now I have to put ALL alfresco jars as shared for jboss server and I really don't want it.
3. Export Spring JCR.Repository bean through RMI. Doesn't work because of
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.alfresco.jcr.util.JCRProxyFactory$SessionContextInvocationHandler
11-28-2005 02:53 AM
<attribute name="Java2ClassLoadingCompliance">false</attribute>
<attribute name="UseJBossWebLoader">false</attribute>
<?xml version="1.0"?>
<jboss-web>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>
alfresco.org:loader=alfresco.war
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
<!– The call by value mode. true if all lookups are unmarshalled using
the caller's TCL, false if in VM lookups return the value by reference.
–>
<attribute name="CallByValue">true</attribute>
13:27:31,602 WARN [RequestExceptionReporter] Exception during post-request cleanup: org.hibernate.hql.ast.HqlToken
java.lang.ClassCastException: org.hibernate.hql.ast.HqlToken
at antlr.CharScanner.makeToken(CharScanner.java:175)
at org.hibernate.hql.ast.HqlLexer.makeToken(HqlLexer.java:39)
at org.hibernate.hql.antlr.HqlBaseLexer.mIDENT(HqlBaseLexer.java:580)
at org.hibernate.hql.antlr.HqlBaseLexer.nextToken(HqlBaseLexer.java:264)
at antlr.TokenBuffer.fill(TokenBuffer.java:69)
at antlr.TokenBuffer.LA(TokenBuffer.java:80)
at antlr.LLkParser.LA(LLkParser.java:52)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:139)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:231)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:150)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:100)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:459)
at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:904)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:854)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl$2.doInHibernate(HibernateNodeDaoServiceImpl.java:130)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:311)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:288)
at org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl.getStores(HibernateNodeDaoServiceImpl.java:133)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at org.alfresco.repo.transaction.NodeDaoServiceTransactionInterceptor.invoke(NodeDaoServiceTransactionInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy46.getStores(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:179)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy183.login(Ljavax.jcr.Credentials;)Lorg.apache.jackrabbit.rmi.remote.RemoteSession;(Unknown Source)
at org.apache.jackrabbit.rmi.client.ClientRepository.login(ClientRepository.java:97)
at com.fis.web.alfresco.AlfrescoJcrSessionFactory.createSession(AlfrescoJcrSessionFactory.java:47)
at $SessionFactory_107d5c41552.createSession()Ljavax.jcr.Session;($SessionFactory_107d5c41552.java:???)
at com.fis.web.jcr.impl.SessionProviderImpl.getSession(SessionProviderImpl.java:37)
at $SessionProvider_107d5c41514.getSession()Ljavax.jcr.Session;($SessionProvider_107d5c41514.java:???)
at com.fis.web.jcr.JcrBinding.getObject(JcrBinding.java:26)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:87)
at $Info_0.pageDetached(Lorg.apache.tapestry.event.PageEvent;)V($Info_0.java:???)
at org.apache.tapestry.AbstractPage.firePageDetached(AbstractPage.java:452)
at org.apache.tapestry.AbstractPage.detach(AbstractPage.java:140)
at org.apache.tapestry.pageload.PageSource.releasePage(PageSource.java:138)
at $IPageSource_107d5c4142a.releasePage(Lorg.apache.tapestry.IPage;)V($IPageSource_107d5c4142a.java:???)
at org.apache.tapestry.engine.RequestCycle.cleanup(RequestCycle.java:190)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:289)
at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
at $WebRequestServicer_107d5c41480.service(Lorg.apache.tapestry.web.WebRequest;Lorg.apache.tapestry.web.WebResponse;)V($WebRequestServicer_107d5c41480.java:???)
at com.fis.web.jcr.impl.SessionFilter.service(SessionFilter.java:14)
at $WebRequestServicerFilter_107d5c4147e.service(Lorg.apache.tapestry.web.WebRequest;Lorg.apache.tapestry.web.WebResponse;Lorg.apache.tapestry.services.WebRequestServicer;)V($WebRequestServicerFilter_107d5c4147e.java:???)
at $WebRequestServicer_107d5c41482.service(Lorg.apache.tapestry.web.WebRequest;Lorg.apache.tapestry.web.WebResponse;)V($WebRequestServicer_107d5c41482.java:???)
at $WebRequestServicer_107d5c4147a.service(Lorg.apache.tapestry.web.WebRequest;Lorg.apache.tapestry.web.WebResponse;)V($WebRequestServicer_107d5c4147a.java:???)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
at $ServletRequestServicer_107d5c4146a.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V($ServletRequestServicer_107d5c4146a.java:???)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
11-28-2005 02:56 AM
11-28-2005 07:23 AM
12-05-2005 08:58 PM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.