Title: deployment problem involving session and entity

Hello,

I'm now trying to deploy a jar file that incorporates both an entity and a session bean.  I had done this successfully using the CD example.  However, now that I am using my own classes, I seem to be doing something wrong. 

A quick overview of the interfaces and classes I am working with:

- interface WorkOrder extends Runnable
  This interface is for objects that can be scheduled to run at a periodic
  interval.

- abstract class WorkOrderImpl implements WorkOrder
  This class provides some default implementation of WorkOrder.

- interface SnmpWorkOrder extends EJBObject, WorkOrder
  Remote interface for what will be an entity bean.  This interface allows
  an object to obtain an IP address, OID, comm string, etc.

- class SnmpWorkOrderPK implements Serializable
  Primary Key class that is really just a string.

- interface SnmpWorkOrderHome extends EJBHome
  This interface allows SnmpWorkOrders to be created.  Also you can find
  SnmpWorkOrders by a SnmpWorkOrderPK.

- class SnmpWorkOrderBean extends WorkOrderImpl implements EntityBean
  This class has the implementation behind SnmpWorkOrder.  It also has
  the ejbActivate, ejbPassivate, etc.  methods.  It has a run() method
  that creates an SNMP request and gets back a response.

- interface Scheduler extends EJBObject
  Remote interface for a stateless session bean.  This interface allows
  an object to schedule a WorkOrder (i.e. schedule(WorkOrder wo)).  I
  want to use this class to schedule any type of work order (not just
  SnmpWorkOrders)

- interface SchedulerHome extends EJBHome
  Allows a Scheduler to be created

- interface SchedulerBean extends SessionBean
  Implementation for my scheduler bean.

Originally I wrote the Scheduler bean (with the SnmpWorkOrder was just a class that the client created and the Scheduler used), this worked fine.  My problems began when I tried to change SnmpWorkOrder into an entity bean.

Here is the deployment error I get:

[Auto deploy] Auto deploy of file:/D:/jboss/deploy/scheduler.jar
[Container factory] Deploying:file:/D:/jboss/deploy/scheduler.jar
[Container factory] Loading ejb-jar.xml : jar:file:/D:/TEMP/tmpejbjar23471.jar!/
META-INF/ejb-jar.xml
[Container factory] Loading standardjboss.xml : jar:file:/D:/jboss/lib/ext/jboss
.jar!/org/jboss/metadata/standardjboss.xml
[Container factory] jar:file:/D:/TEMP/tmpejbjar23471.jar!/META-INF/jboss.xml fou
nd. Overriding defaults
[Container factory] Deploying SnmpWorkOrderBean
[Container factory] Deploying SchedulerBean
[JAWS] Initializing JAWS plugin for SnmpWorkOrderBean
[Auto deploy] Deployment failed:file:/D:/jboss/deploy/scheduler.jar
[Auto deploy] javax.management.RuntimeMBeanException: RuntimeException thrown in
 operation deploy
[Auto deploy]   at javax.management.MBeanServer.invoke(MBeanServer.java:1647)
[Auto deploy]   at javax.management.MBeanServer.invoke(MBeanServer.java:1501)
[Auto deploy]   at org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:285)
[Auto deploy]   at org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:221)
[Auto deploy]   at java.lang.Thread.run(Thread.java:484)


I think the problem is in my deployment files but I'm not really sure where.  Here is my ejb-jar.xml file.

<ejb-jar>
     <description>Allows work orders to be scheduled on the EJB server </description>
     <display-name>Scheduler</display-name>
     <enterprise-beans>
       <session>
         <description>stateless session bean</description>
         <ejb-name>SchedulerBean</ejb-name>
         <home>com.aprisma.gpe.SchedulerHome</home>
         <remote>com.aprisma.gpe.Scheduler</remote>
         <ejb-class>com.aprisma.gpe.SchedulerBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>
       </session>

       <entity>
         <description>CMP entity bean</description>
         <ejb-name>SnmpWorkOrderBean</ejb-name>
         <home>com.aprisma.gpe.SnmpWorkOrderHome</home>
         <remote>com.aprisma.gpe.SnmpWorkOrder</remote>
         <ejb-class>com.aprisma.gpe.SnmpWorkOrderBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>com.aprisma.gpe.SnmpWorkOrderPK</prim-key-class>
         <reentrant>False</reentrant>
         <cmp-field><field-name>oid</field-name></cmp-field>
         <cmp-field><field-name>snmpWorkID</field-name></cmp-field>
         <cmp-field><field-name>ipAddress</field-name></cmp-field>
         <cmp-field><field-name>pollInterval</field-name></cmp-field>
         <cmp-field><field-name>commString</field-name></cmp-field>
       </entity>
     </enterprise-beans>
   </ejb-jar>


My jaws.xml file contains a bunch of mapping information (which I took as the default) and a definition of the cmp-fields (listed above).  All the fields are of type VARCHAR(256) except for pollInterval which is of type INTEGER.

My jboss.xml file states to use a "Stateless SessionBean" configuration for my Scheduler object and a "CMP EntityBean" configuration for my SnmpWorkOrder object.  I took the default entries for each of configurations.

Any help you that you can provide will be greatly appreciated.
- Craig Dube

Reply via email to