[jboss-user] [JBossCache] - Running POJOCache error

confuz do-not-reply at jboss.com
Wed Aug 2 06:24:01 EDT 2006


Hi All,
      I ran pojo cache, but hit error, following is the code and errors

  | package org.jboss.cache.data;
  | 
  | import java.util.List;
  | 
  | /**
  |  * @author Ben Wang
  |  * @@org.jboss.cache.aop.AopMarker
  |  */
  | public class Person {
  |    protected String name;
  |    protected Address address;
  | 
  |    public void setName(String name)
  |    {
  |       this.name = name;
  |    }
  | 
  |    public String getName()
  |    {
  |       return this.name;
  |    }
  | 
  |    public void setAddress(Address address)
  |    {
  |       this.address = address;
  |    }
  | 
  |    public Address getAddress()
  |    {
  |       return this.address;
  |    }
  | 
  |    public String toString()
  |    {
  |       StringBuffer buf = new StringBuffer();
  |       buf.append("{Name = " +name);
  |       if (address != null)
  |          buf.append(", Address = " + address.getSimpleAddress());
  |       buf.append("}\n");
  | 
  |       return buf.toString();
  |    }
  | 
  | }
  | 
  | 

  | 
  | package org.jboss.cache.data;
  | 
  | /**
  |  * @author Ben Wang
  |  * @@org.jboss.cache.aop.AopMarker
  |  */
  | public class Address {
  |    protected String city;
  |    protected int zip;
  |    protected String street;
  | 
  |    public void setCity(String city)
  |    {
  |       this.city = city;
  |    }
  | 
  |    public String getCity()
  |    {
  |       return this.city;
  |    }
  | 
  |    public void setZip(int zip)
  |    {
  |       this.zip = zip;
  |    }
  | 
  |    public int getZip()
  |    {
  |       return zip;
  |    }
  | 
  |    public void setStreet(String street)
  |    {
  |       this.street = street;
  |    }
  | 
  |    public String getStreet()
  |    {
  |       return this.street;
  |    }
  |    
  |    public String getSimpleAddress()
  |    {
  |       StringBuffer buf = new StringBuffer(street);      
  |       buf.append(" "  + city);
  |       if (zip > 0)
  |          buf.append("  " + zip);
  | 
  |       return buf.toString();
  |    }
  | 
  |    public String toString()
  |    {
  |       StringBuffer buf = new StringBuffer();
  |       buf.append("{City = " +city).append(" ,zip = " +zip).append(" ,street = " +street + "}\n");
  | 
  |       return buf.toString();
  |    }
  | }
  | 

I put thoes pojos into JBossCache-1.4.0.GA\tools\src and ran the ant all to generated the aopc classes(Persion.class,Persion$*.class,Address.class,Address$*.class,))

Then I tested POJOCache base on those class file, but hit error


  | cache = new TreeCache();
  | 			PropertyConfigurator pc = new PropertyConfigurator();
  | 			pc.configure(cache, "tree-service.xml");
  | 
  | 			cache.createService();
  | 			cache.startService();
  | 			
  | 			Person p1 = new Person();
  | 			p1.setName("P1");
  | 			Person p2 = new Person();
  | 			p2.setName("P2");
  | 			Address add = new Address();
  | 			add.setCity("SZ");
  | 			add.setStreet("NR");
  | 			add.setZip(3009884);
  | 			p1.setAddress(add);
  | 			p2.setAddress(add);
  | 			
  | 			cache.put("/test/p1","p1", p1);
  | 			cache.put("/test/p2","p2", p2);
  | 			cache.put("/test/a1","a1", add);
  | 

  | <?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.aop.PojoCache"
  |         name="jboss.cache:service=testTreeCache">
  | 
  |         <depends>jboss:service=Naming</depends>
  |         <depends>jboss:service=TransactionManager</depends>
  |         <!--
  |             Configure the TransactionManager
  |         -->
  |         <attribute name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute>
  | 
  | 
  |         <!--
  |             Node locking level : SERIALIZABLE
  |                                  REPEATABLE_READ (default)
  |                                  READ_COMMITTED
  |                                  READ_UNCOMMITTED
  |                                  NONE
  |         -->
  |         <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
  | 
  |         <!--
  |              Valid modes are LOCAL
  |                              REPL_ASYNC
  |                              REPL_SYNC
  |         -->
  |         <attribute name="CacheMode">REPL_SYNC</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 -->
  |                 <!-- 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.5" mcast_port="45577"
  |                     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"/>
  |                 <VERIFY_SUSPECT timeout="1500"
  |                     up_thread="false" down_thread="false"/>
  |                 <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
  |                     up_thread="false" down_thread="false"/>
  |                 <pbcast.STABLE desired_avg_gossip="20000"
  |                     up_thread="false" down_thread="false"/>
  |                 <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
  |                     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="false" down_thread="false"/>
  |             </config>
  |         </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">20000</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. Not supported now. -->
  |         <attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute>
  | 
  |       <!-- Specific eviction policy configurations. This is LRU -->
  |       <attribute name="EvictionPolicyConfig">
  |          <config>
  |             <attribute name="wakeUpIntervalSeconds">5</attribute>
  |             <!-- Cache wide default -->
  |             <region name="/_default_">
  |                <attribute name="maxNodes">5000</attribute>
  |                <attribute name="timeToLiveSeconds">1000</attribute>
  |             </region>
  |             <region name="/aop">
  |                 <attribute name="maxNodes">5</attribute>
  |                 <attribute name="timeToLiveSeconds">4</attribute>
  |             </region>
  |             <region name="/pojo">
  |                 <attribute name="maxNodes">100</attribute>
  |                 <attribute name="timeToLiveSeconds">4</attribute>
  |             </region>
  |             <region name="/test">
  |                 <attribute name="maxNodes">500</attribute>
  |                 <attribute name="timeToLiveSeconds">0</attribute>
  |             </region>
  |          </config>
  |       </attribute>
  |         
  |     </mbean>
  | 
  | 
  | </server>
  | 

Exception

  | java.lang.RuntimeException: java.io.NotSerializableException: RpcDispatcher retu
  | rned a null.  This is most often caused by args for _replicate(_put(null, /test/
  | p1, p1, {Name = P1, Address = NR SZ  3009884}
  | , true)) not being serializable.
  |         at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5523)
  |         at org.jboss.cache.TreeCache.put(TreeCache.java:3677)
  |         at org.jboss.cache.TreeCache.put(TreeCache.java:3615)
  |         at org.jboss.cache.JSServlet.init(JSServlet.java:45)
  |         at javax.servlet.GenericServlet.init(GenericServlet.java:211)
  |         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
  | java:1091)
  |         at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
  | a:750)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
  | alve.java:130)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
  | alve.java:178)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
  | 

Am I missing something?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3962407#3962407

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3962407



More information about the jboss-user mailing list