We're using JBoss 4.0.2 and JDK 1.4.2_07 on Windows and Linux boxes. Our XMBean is persisting the non-collection data using the DelegatingPersistenceManager/AttributePersistenceService/XMLAttributePersistenceManager configuration just fine. We also tested this using the ObjectStreamPersistenceManager and got the same results.
By digging into the DelegatingPersistenceManager, we were able to trace down a couple of things. First, whatever is preparing the MBeanInfo and MBeanAttributeInfo before getting to the DelegatingPersistenceManager wasn't setting the attributeValue and lastUpdatedTimeStamp2 values. By putting persistenc information on the collection attribute itself, the value and lastUpdatedTimeStamp values were being set, but attributeValue and lastUpdatedTimeStamp2 were still not being set. Collection Set Collection java.util.TreeSet I was able to get a temporary work around going on my development environment by overriding DelegatingPersistenceManager with the following change: ... Object value = attrDesc.getFieldValue(ModelMBeanConstants.ATTRIBUTE_VALUE); Object updated = attrDesc.getFieldValue(ModelMBeanConstants.LAST_UPDATED_TIME_STAMP2); Object pPolicy = attrDesc.getFieldValue(ModelMBeanConstants.PERSIST_POLICY); // Deal with persistable collections and arrays if ( value == null && attrDesc.getFieldValue( "value" ) != null ) { // If the value and/or lastUpdatedTimeStamp are non-null, given // both attributeValue and lastUpdatedTimeStamp2 are null, this is // a collection or array value = attrDesc.getFieldValue("value"); updated = attrDesc.getFieldValue("lastUpdatedTimeStamp"); } ... For unfathomable reasons I won't go into, the client doesn't want to recompile our own DelegatingPersistenceManager with this patch. So I created a xmbeanCollectionPersistenceSupport.jar containing our implementation. Now we're at the point that I'm stuck on. When we put xmbeanCollectionPersistenceSupport.jar in the <JBOSS_HOME>/lib/endorsed and run the server from Eclipse using the JBoss plugin, everything works peachy and collections get persisted. However, when we run from the command line, we get this exception: 11:03:54,354 ERROR [ModelMBeanInvoker] Unable to instantiate the persistence manager:com.clientName.mx.persistence.DelegatingPersistenceManager RuntimeErrorException: instantiating com.clientName.mx.persistence.DelegatingPersistenceManager failed: java.lang.NoClassDefFoundError: org/jboss/mx/persistence/PersistenceManager Cause: java.lang.NoClassDefFoundError: org/jboss/mx/persistence/PersistenceManager How do I get my new class recognized without putting it in <JBOSS_SERVER>/lib/endorsed? Is there another way to address the issue? Can anyone put me out of my misery? Thanks Bob Blackard Momentum SI View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3905526#3905526 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3905526 ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user