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

Reply via email to