Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-2022

wicket fails on WebLogic 9.2 clustered

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.4-RC1
    • 1.4-RC3
    • wicket
    • None
    • Weblogic 9.2
      Spring 2.5.5
      JDK 1.5.0.17

    Description

      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.

      Attachments

        Activity

          People

            knopp Matej Knopp
            xxbedy Martin Bednar
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: