0 Replies Latest reply on Jan 10, 2007 4:08 PM by Ricardo Felipe

    Error getting an instance of PoJoCache , when redeploy my ap

    Ricardo Felipe Newbie

      I have a servlet and in this servlet i have a private PojoCache like this:

      private PojoCache cache = null;
      
      //Servlet init
      public void init() throws ServletException {
       super.init();
       // Get an instance of PojoCache
       try {
       cache = createCache("Test-Cluster");
       } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
       }
      }
      
      
      // Create PojoCache method
      private PojoCache createCache(String name) throws Exception {
       PojoCache tree = new PojoCache();
       PropertyConfigurator config = new PropertyConfigurator();
       // read in the replSync xml. Here we use synchronous mode replication.
       config.configure(tree, "META-INF/replSync-service.xml");
       tree.setClusterName(name); // We can set a different cluster group.
       tree.start(); // kick start the cache
       return tree;
      }
      

      when i put console in console something like this: ant deploy
      and later run my servlet the cache work fine but if put in console ant undeploy deploy without restarting JBoos a get this error:

      GMS: address is newton:1047
      -------------------------------------------------------
      14:47:52,722 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load commons-logging.properties. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      14:47:52,722 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load META-INF/services/org.apache.commons.logging.LogFactory. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      14:47:52,723 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load org.apache.log4j.Logger. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      java.lang.IllegalStateException
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
       at org.apache.commons.logging.impl.LogFactoryImpl$1.run(LogFactoryImpl.java:441)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.commons.logging.impl.LogFactoryImpl.loadClass(LogFactoryImpl.java:435)
       at org.apache.commons.logging.impl.LogFactoryImpl.isLog4JAvailable(LogFactoryImpl.java:505)
       at org.apache.commons.logging.impl.LogFactoryImpl.getLogClassName(LogFactoryImpl.java:327)
       at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:368)
       at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:353)
       at org.jgroups.stack.AckReceiverWindow.<clinit>(AckReceiverWindow.java:26)
       at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:354)
       at org.jgroups.protocols.UNICAST.up(UNICAST.java:168)
       at org.jgroups.stack.UpHandler.run(Protocol.java:59)
      14:47:52,724 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load org.apache.commons.logging.impl.Log4JLogger. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      java.lang.IllegalStateException
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
       at org.apache.commons.logging.impl.LogFactoryImpl$1.run(LogFactoryImpl.java:441)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.commons.logging.impl.LogFactoryImpl.loadClass(LogFactoryImpl.java:435)
       at org.apache.commons.logging.impl.LogFactoryImpl.isLog4JAvailable(LogFactoryImpl.java:506)
       at org.apache.commons.logging.impl.LogFactoryImpl.getLogClassName(LogFactoryImpl.java:327)
       at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:368)
       at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:353)
       at org.jgroups.stack.AckReceiverWindow.<clinit>(AckReceiverWindow.java:26)
       at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:354)
       at org.jgroups.protocols.UNICAST.up(UNICAST.java:168)
       at org.jgroups.stack.UpHandler.run(Protocol.java:59)
      14:47:52,726 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load org.apache.commons.logging.impl.Log4JLogger. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      java.lang.IllegalStateException
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
       at org.apache.commons.logging.impl.LogFactoryImpl$1.run(LogFactoryImpl.java:441)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.commons.logging.impl.LogFactoryImpl.loadClass(LogFactoryImpl.java:435)
       at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:376)
       at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:353)
       at org.jgroups.stack.AckReceiverWindow.<clinit>(AckReceiverWindow.java:26)
       at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:354)
       at org.jgroups.protocols.UNICAST.up(UNICAST.java:168)
       at org.jgroups.stack.UpHandler.run(Protocol.java:59)
      14:47:52,726 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load org.apache.log4j.Level. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      java.lang.IllegalStateException
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
       at org.apache.commons.logging.impl.Log4jProxy$1.run(Log4jProxy.java:66)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.commons.logging.impl.Log4jProxy.threadContextClassLoader(Log4jProxy.java:88)
       at org.apache.commons.logging.impl.Log4jProxy.<init>(Log4jProxy.java:94)
       at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:39)
       at sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source)
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
       at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:353)
       at org.jgroups.stack.AckReceiverWindow.<clinit>(AckReceiverWindow.java:26)
       at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:354)
       at org.jgroups.protocols.UNICAST.up(UNICAST.java:168)
       at org.jgroups.stack.UpHandler.run(Protocol.java:59)
      14:47:52,818 INFO [TreeCache] viewAccepted(): [newton:1044|1] [newton:1044, newton:1047]
      14:47:52,832 INFO [TreeCache] TreeCache local address is newton:1047
      14:47:52,833 INFO [TreeCache] viewAccepted(): [newton:1044|1] [newton:1044, newton:1047]
      14:47:52,837 INFO [TreeCache] locking the subtree at / to transfer state
      14:47:52,845 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load org.apache.log4j.Level. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
      java.lang.IllegalStateException
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
       at org.apache.commons.logging.impl.Log4jProxy$1.run(Log4jProxy.java:66)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.commons.logging.impl.Log4jProxy.threadContextClassLoader(Log4jProxy.java:88)
       at org.apache.commons.logging.impl.Log4jProxy.<init>(Log4jProxy.java:94)
       at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:39)
       at sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source)
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
       at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
       at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:372)
       at org.jboss.cache.statetransfer.StateTransferGenerator_140.<init>(StateTransferGenerator_140.java:35)
       at org.jboss.cache.statetransfer.StateTransferFactory.getStateTransferGenerator(StateTransferFactory.java:49)
       at org.jboss.cache.TreeCache._getState(TreeCache.java:2519)
       at org.jboss.cache.TreeCache._getState(TreeCache.java:2445)
       at org.jboss.cache.TreeCache$MessageListenerAdaptor.getState(TreeCache.java:5283)
       at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.passUp(MessageDispatcher.java:602)
       at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:331)
       at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.handleUp(MessageDispatcher.java:722)
       at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.access$300(MessageDispatcher.java:554)
       at org.jgroups.blocks.MessageDispatcher$1.run(MessageDispatcher.java:691)
       at java.lang.Thread.run(Thread.java:595)
      14:47:52,853 INFO [StateTransferGenerator_140] returning the state for tree rooted in /(1024 bytes)
      14:47:52,908 INFO [TreeCache] received the state (size=1024 bytes)
      14:47:52,927 INFO [TreeCache] state was retrieved successfully (in 95 milliseconds)
      14:47:52,950 INFO [TreeCache] parseConfig(): PojoCacheConfig is empty



      This is my xml cache configuration

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!-- ===================================================================== -->
      <!-- -->
      <!-- Sample TreeCache Service Configuration -->
      <!-- -->
      <!-- ===================================================================== -->
      
      <server>
      
       <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
      
      
       <!-- ==================================================================== -->
       <!-- Defines TreeCache configuration -->
       <!-- ==================================================================== -->
      
       <mbean code="org.jboss.cache.TreeCache"
       name="jboss.cache:service=TreeCache">
      
       <depends>jboss:service=Naming</depends>
       <depends>jboss:service=TransactionManager</depends>
      
       <!--
       Configure the TransactionManager
      
       <attribute name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute>
       -->
       <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
      
       <!--
       Isolation level : SERIALIZABLE
       REPEATABLE_READ (default)
       READ_COMMITTED
       READ_UNCOMMITTED
       NONE
       -->
       <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
      
       <!--
       Valid modes are LOCAL
       REPL_ASYNC
       REPL_SYNC
       INVALIDATION_ASYNC
       INVALIDATION_SYNC
       -->
       <attribute name="CacheMode">REPL_SYNC</attribute>
      
       <!--
       Just used for async repl: use a replication queue
       -->
       <attribute name="UseReplQueue">false</attribute>
      
       <!--
       Replication interval for replication queue (in ms)
       -->
       <attribute name="ReplQueueInterval">0</attribute>
      
       <!--
       Max number of elements which trigger replication
       -->
       <attribute name="ReplQueueMaxElements">0</attribute>
      
       <!-- Name of cluster. Needs to be the same for all clusters, in order
       to find each other
       -->
       <attribute name="ClusterName">TreeCache-Cluster</attribute>
      
       <!-- JGroups protocol stack properties. Can also be a URL,
       e.g. file:/home/bela/default.xml
       <attribute name="ClusterProperties"></attribute>
       -->
      
       <attribute name="ClusterConfig">
       <config>
       <!-- UDP: if you have a multihomed machine,
       set the bind_addr attribute to the appropriate NIC IP address, e.g bind_addr="192.168.0.2"
       -->
       <!-- UDP: On Windows machines, because of the media sense feature
       being broken with multicast (even after disabling media sense)
       set the loopback attribute to true -->
       <UDP mcast_addr="228.1.2.3" mcast_port="48866"
       ip_ttl="64" ip_mcast="true"
       mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
       ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
       loopback="false"/>
       <PING timeout="2000" num_initial_members="3"
       up_thread="false" down_thread="false"/>
       <MERGE2 min_interval="10000" max_interval="20000"/>
       <!-- <FD shun="true" up_thread="true" down_thread="true" />-->
       <FD_SOCK/>
       <VERIFY_SUSPECT timeout="1500"
       up_thread="false" down_thread="false"/>
       <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
       max_xmit_size="8192" up_thread="false" down_thread="false"/>
       <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
       down_thread="false"/>
       <pbcast.STABLE desired_avg_gossip="20000"
       up_thread="false" down_thread="false"/>
       <FRAG frag_size="8192"
       down_thread="false" up_thread="false"/>
       <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
       shun="true" print_local_addr="true"/>
       <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
       </config>
       </attribute>
      
      
       <!--
       Whether or not to fetch state on joining a cluster
       NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
       -->
       <attribute name="FetchInMemoryState">true</attribute>
      
       <!--
       The max amount of time (in milliseconds) we wait until the
       initial state (ie. the contents of the cache) are retrieved from
       existing members in a clustered environment
       -->
       <attribute name="InitialStateRetrievalTimeout">15000</attribute>
      
       <!--
       Number of milliseconds to wait until all responses for a
       synchronous call have been received.
       -->
       <attribute name="SyncReplTimeout">15000</attribute>
      
       <!-- Max number of milliseconds to wait for a lock acquisition -->
       <attribute name="LockAcquisitionTimeout">10000</attribute>
      
       <!-- Name of the eviction policy class. -->
       <attribute name="EvictionPolicyClass"></attribute>
      
       <!--
       Indicate whether to use region based marshalling or not. Set this to true if you are running under a scoped
       class loader, e.g., inside an application server. Default is "false".
       -->
       <attribute name="UseRegionBasedMarshalling">true</attribute>
       </mbean>
      
      
       <!-- Uncomment to get a graphical view of the TreeCache MBean above -->
       <!-- <mbean code="org.jboss.cache.TreeCacheView" name="jboss.cache:service=TreeCacheView">-->
       <!-- <depends>jboss.cache:service=TreeCache</depends>-->
       <!-- <attribute name="CacheService">jboss.cache:service=TreeCache</attribute>-->
       <!-- </mbean>-->
      
      
      </server>



      Any idea about this?