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?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000146#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...