[ https://issues.apache.org/jira/browse/WICKET-2022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Bednar closed WICKET-2022. --------------------------------- > wicket fails on WebLogic 9.2 clustered > -------------------------------------- > > Key: WICKET-2022 > URL: https://issues.apache.org/jira/browse/WICKET-2022 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 1.4-RC1 > Environment: Weblogic 9.2 > Spring 2.5.5 > JDK 1.5.0.17 > Reporter: Martin Bednar > Assignee: Matej Knopp > Fix For: 1.4-RC3 > > > I have problems with deploying wicket (wicket-1.4m1) application on WebLogic > 9.2 server cluster (2 nodes). > Application use spring 2.5.5 for service layer and is configured: > web.xml: > <distributable/> > <filter> > <filter-name>wicket.call-centre</filter-name> > > <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> > <init-param> > <param-name>applicationFactoryClassName</param-name> > > <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value> > </init-param> > <init-param> > <param-name>applicationBean</param-name> > <param-value>wicketApplication</param-value> > </init-param> > <init-param> > <param-name>wicket.configuration</param-name><!-- > <param-value>development</param-value> > --> > <param-value>deployment</param-value> > </init-param> > </filter> > <filter-mapping> > <filter-name>wicket.call-centre</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <listener> > > <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> > </listener> > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value>classpath:applicationContext.xml</param-value> > </context-param> > weblogic.xml: > <session-descriptor> > <persistent-store-type>replicated_if_clustered</persistent-store-type> > </session-descriptor> > If application deploys on nonclustered environment everything is ok. On > cluster I got these errors: > <Warning> <RMI> <app-test> <testws> <[ACTIVE] ExecuteThread: '0' for queue: > 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1231941794006> > <BEA-080004> <An error was thrown by rmi server: > weblogic.cluster.replication.ReplicationManager.create(Lweblogic.rmi.spi.HostID;ILweblogic.cluster.replication.ROID;Lweblogic.cluster.replication.Replicatable;) > java.lang.ExceptionInInitializerError. > java.lang.ExceptionInInitializerError > at sun.misc.Unsafe.ensureClassInitialized(Native Method) > at > sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25) > at > sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122) > at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917) > at java.lang.reflect.Field.getFieldAccessor(Field.java:898) > at java.lang.reflect.Field.getLong(Field.java:527) > at > java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1586) > at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52) > at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408) > at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400) > at java.io.ObjectStreamClass.lookup0(ObjectStreamClass.java:297) > at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java) > at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531) > at > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > at > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:412) > 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 > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > org.apache.wicket.WicketRuntimeException: There is no application attached to > current thread [ACTIVE] ExecuteThread: '0' for queue: > 'weblogic.kernel.Default (self-tuning)' > at org.apache.wicket.Application.get(Application.java:177) > at org.apache.wicket.Component.getApplication(Component.java:1282) > at org.apache.wicket.Component.<init>(Component.java:894) > at org.apache.wicket.MarkupContainer.<init>(MarkupContainer.java:105) > at org.apache.wicket.Page.<init>(Page.java:236) > at > org.apache.wicket.protocol.http.pagestore.SerializedPagesCache$SerializedPageWithSession$1.<init>(SerializedPagesCache.java:206) > at > org.apache.wicket.protocol.http.pagestore.SerializedPagesCache$SerializedPageWithSession.<clinit>(SerializedPagesCache.java:205) > at sun.misc.Unsafe.ensureClassInitialized(Native Method) > at > sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25) > at > sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122) > at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917) > at java.lang.reflect.Field.getFieldAccessor(Field.java:898) > at java.lang.reflect.Field.getLong(Field.java:527) > at > java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1586) > at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52) > at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408) > at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400) > at java.io.ObjectStreamClass.lookup0(ObjectStreamClass.java:297) > at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java) > at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531) > at > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > at > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:412) > 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 > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > at > weblogic.servlet.internal.session.ReplicatedSessionChange.readExternal(ReplicatedSessionChange.java:155) > at > java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > at > weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195) > at > weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565) > at > weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191) > at > weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown Source) > at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:553) > at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:443) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147) > at > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:439) > at > weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:61) > at > weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:983) > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) > at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) > > > <Warning> <RMI> <BEA-080004> <An error was thrown by rmi server: > weblogic.cluster.replication.ReplicationManager.create(Lweblogic.rmi.spi.HostID;ILweblogic.cluster.replication.ROID;Lweblogic.cluster.replication.Replicatable;) > java.lang.ExceptionInInitializerError. > java.lang.ExceptionInInitializerError > at sun.misc.Unsafe.ensureClassInitialized(Native Method) > at > sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25) > at > sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122) > at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917) > at java.lang.reflect.Field.getFieldAccessor(Field.java:898) > Truncated. see log file for complete stacktrace > org.apache.wicket.WicketRuntimeException: There is no application attached to > current thread [ACTIVE] ExecuteThread: '0' for queue: > 'weblogic.kernel.Default (self-tuning)' > at org.apache.wicket.Application.get(Application.java:177) > at org.apache.wicket.Component.getApplication(Component.java:1282) > at org.apache.wicket.Component.<init>(Component.java:894) > at org.apache.wicket.MarkupContainer.<init>(MarkupContainer.java:105) > at org.apache.wicket.Page.<init>(Page.java:236) > Truncated. see log file for complete stacktrace > > > Any advice ? > -------------------------------------------------------------------------------------------------------------------------------------------- > Matej Knopp suggest: > Looks like this is causing problems in SerializedPagesCache > static final Page NO_PAGE = new Page() > { > }; > I wonder why the class is not loaded when the other node is initialized. > Please create a JIRA issue. > in the meanwhile, you can try load Class.forName(..) the > org.apache.wicket.protocol.http.pagestore.SerializedPagesCache$SerializedPageWithSession > class in your Application#init. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.