PojoCache: java.lang.NoSuchMethodException: addObserver
chencao0524 Jan 9, 2007 11:08 AMHi All,
I am trying to use jBoss PojoCache in my application and I am using AOP pre-compiler to precompile my POJO. I am getting an exception when trying to create an instance of the POJO in Windows.
I am running jBoss 4.0.5.GA and JDK 1.5.0_06
I am using jboss-cache-jdk50.jar and I am attaching the MANIFEST below
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.5.0_10-b03 (Sun Microsystems Inc.)
Built-By: smcgowan
Created-On: December 20 2006
Main-Class: org.jboss.cache.Version
Specification-Title: JBossCache
Specification-Version: 1.4.1.CR1
Specification-Vendor: JBoss Inc.
Implementation-Title: JBossCache
Implementation-Version: 1.4.1.CR1
Implementation-Vendor: JBoss Inc.
I am using jboss-aop-jdk50.jar and I am attaching the MANIFEST below
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
Specification-Title: JBoss AOP Framework
Specification-Version: jboss-aop-1.5.2.GA
Specification-Vendor: JBoss (http://www.jboss.org/)
Implementation-Title: JBoss AOP Framework
Implementation-URL: http://www.jboss.org/
Implementation-Version: jboss-aop-1.5.2.GA
Implementation-Vendor: JBoss.org
Implementation-Vendor-Id: http://www.jboss.org/
Premain-Class: org.jboss.aop.standalone.Agent
Can-Redefine-Classes: true
replSync-in-service.xml is below
<mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=TestPojoCache"> <depends>jboss:service=Naming</depends> <depends>jboss:service=TransactionManager</depends> <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute> <attribute name="IsolationLevel">REPEATABLE_READ</attribute> <attribute name="CacheMode">REPL_SYNC</attribute> <attribute name="UseReplQueue">false</attribute> <attribute name="ReplQueueInterval">0</attribute> <attribute name="ReplQueueMaxElements">0</attribute> <attribute name="ClusterName">Messi</attribute> <attribute name="ClusterConfig"> <config> <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> <attribute name="FetchInMemoryState">true</attribute> <attribute name="InitialStateRetrievalTimeout">15000</attribute> <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> <attribute name="UseRegionBasedMarshalling">true</attribute> </mbean>
Class is below
public class StudentMaintTest { private Student mary_; private PojoCache cache1_; public StudentMaintTest() { cache1_ = createCache("Messi"); init(); testPropagation(); } private static PojoCache createCache(String name) { try { PojoCache tree = new PojoCache(); PropertyConfigurator config = new PropertyConfigurator(); config.configure(tree, "replSync-in-service.xml"); tree.setClusterName(name); // We can set a different cluster group. tree.start(); // kick start the cache return tree; } catch (Exception ex) { ex.printStackTrace(); return null; } } protected void init() { mary_ = new Student(); mary_.setName("Mary Smith"); Address address = new Address(); address.setStreet("456 Oak Drive"); address.setCity("Pleasantville, CA"); address.setZip(94555); mary_.setAddress(address); } public void testPropagation() { try { cache1_.putObject("/students/54321", mary_); } catch (Exception ex) { ex.printStackTrace(); } } }
stack trace is below
* org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:312)
* org.jboss.aop.AspectManager.initialiseClassAdvisor(AspectManager.java:590)
* org.jboss.aop.AspectManager.getAdvisor(AspectManager.java:578)
* cn.net.ce.cache.pojo.Address.(Address.java)
* cn.net.ce.web.tapestry4.Home.pageBeginRender(Home.java:99)
* org.apache.tapestry.AbstractPage.firePageBeginRender(AbstractPage.java:478)
* org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:268)
* org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:366)
* org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:71)
* $ResponseRenderer_110079a410f.renderResponse($ResponseRenderer_110079a410f.java)
* org.apache.tapestry.engine.HomeService.service(HomeService.java:65)
* $IEngineService_110079a4177.service($IEngineService_110079a4177.java)
* org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:77)
* org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
* org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
* org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
* $WebRequestServicer_110079a4157.service($WebRequestServicer_110079a4157.java)
* $WebRequestServicer_110079a4153.service($WebRequestServicer_110079a4153.java)
* org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
* $ServletRequestServicer_110079a4139.service($ServletRequestServicer_110079a4139.java)
* org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
* $ServletRequestServicerFilter_110079a4135.service($ServletRequestServicerFilter_110079a4135.java)
* $ServletRequestServicer_110079a413b.service($ServletRequestServicer_110079a413b.java)
* org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
* $ServletRequestServicerFilter_110079a4133.service($ServletRequestServicerFilter_110079a4133.java)
* $ServletRequestServicer_110079a413b.service($ServletRequestServicer_110079a413b.java)
* org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
* $ServletRequestServicerFilter_110079a4137.service($ServletRequestServicerFilter_110079a4137.java)
* $ServletRequestServicer_110079a413b.service($ServletRequestServicer_110079a413b.java)
* $ServletRequestServicer_110079a412d.service($ServletRequestServicer_110079a412d.java)
* org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
* org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:79)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
* org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
* org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
* org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
* org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
* org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
* org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
* org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
* org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
* org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:87)
* org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:84)
* org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
* org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
* org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
* org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
* org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
* org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn.invoke(ClusteredSingleSignOn.java:676)
* org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
* org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
* org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
* org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
* org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
* org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
* org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
* org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
* java.lang.Thread.run(Thread.java:595)
* Caused by: java.lang.NoSuchMethodException: addObserver
* org.jboss.aop.ClassAdvisor.getMethod(ClassAdvisor.java:323)
* org.jboss.aop.ClassAdvisor.getMethod(ClassAdvisor.java:331)
* org.jboss.aop.ClassAdvisor.populateMixinMethods(ClassAdvisor.java:394)
* org.jboss.aop.ClassAdvisor$1.run(ClassAdvisor.java:290)
* java.security.AccessController.doPrivileged(Native Method)
* org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:271)
* ... 58 more
Anybody could help me.
Thanks.