I am getting the following exception trying to deploy a jar containing
three beans, the first one being Guest/GuestBean/GuestHome.
[Container factory] Binding an EJBReference Guest
[Container factory] Binding Guest to internal JNDI source:
org.gaws.guestbook.entitybeans.GuestBean
[Container factory] java.lang.NullPointerException
[Container factory] at
org.jboss.ejb.Container.setupEnvironment(Container.java:405)
va:405)
[Container factory] at
org.jboss.ejb.Container.init(Container.java:264)
I am using a MySQL DB for the entity persistence and THINK I have it
setup correctly. It seems to load the driver and create the Minerva
pool just fine.
Any help would be greatly appreciated.
Thanks,
Garret
[EMAIL PROTECTED]
The ejb-jar.xml is:
------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise
JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>GuestBean</ejb-name>
<home>org.gaws.guestbook.entitybeans.GuestHome</home>
<remote>org.gaws.guestbook.entitybeans.Guest</remote>
<ejb-class>org.gaws.guestbook.entitybeans.GuestBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<primkey-field>guestID</primkey-field>
<reentrant>False</reentrant>
<resource-ref>
<description>MySQL Data source</description>
<res-ref-name>GuestBookDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<cmp-field>
<field-name>guestID</field-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<field-name>email</field-name>
</cmp-field>
<env-entry>
<description></description>
<env-entry-name>java.naming.factory.initial</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>org.jnp.interfaces.NamingContextFactory</env-entry-value>
</env-entry>
<env-entry>
<description></description>
<env-entry-name>java.naming.provider.url</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>localhost:1099</env-entry-value>
</env-entry>
</entity>
<entity>
<ejb-name>MessageBean</ejb-name>
<home>org.gaws.guestbook.entitybeans.MessageHome</home>
<remote>org.gaws.guestbook.entitybeans.Message</remote>
<ejb-class>org.gaws.guestbook.entitybeans.MessageBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<primkey-field>messageID</primkey-field>
<reentrant>False</reentrant>
<resource-ref>
<description>MySQL Data source</description>
<res-ref-name>GuestBookDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<ejb-ref>
<ejb-ref-name>Guest</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.gaws.guestbook.entitybeans.GuestHome</home>
<remote>org.gaws.guestbook.entitybeans.Guest</remote>
<ejb-link>org.gaws.guestbook.entitybeans.GuestBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>MessageThread</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.gaws.guestbook.entitybeans.MessageThreadHome</home>
<remote>org.gaws.guestbook.entitybeans.MessageThread</remote>
<ejb-link>org.gaws.guestbook.entitybeans.MessageThreadBean</ejb-link>
</ejb-ref>
<cmp-field>
<field-name>messageID</field-name>
</cmp-field>
<cmp-field>
<field-name>subject</field-name>
</cmp-field>
<cmp-field>
<field-name>body</field-name>
</cmp-field>
<cmp-field>
<field-name>entryDate</field-name>
</cmp-field>
<cmp-field>
<field-name>messageThreadPK</field-name>
</cmp-field>
<cmp-field>
<field-name>authorPK</field-name>
</cmp-field>
<env-entry>
<description></description>
<env-entry-name>java.naming.factory.initial</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>org.jnp.interfaces.NamingContextFactory</env-entry-value>
</env-entry>
<env-entry>
<description></description>
<env-entry-name>java.naming.provider.url</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>localhost:1099</env-entry-value>
</env-entry>
</entity>
<entity>
<ejb-name>MessageThreadBean</ejb-name>
<home>org.gaws.guestbook.entitybeans.MessageThreadHome</home>
<remote>org.gaws.guestbook.entitybeans.MessageThread</remote>
<ejb-class>org.gaws.guestbook.entitybeans.MessageTheadBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<primkey-field>messageThreadID</primkey-field>
<reentrant>False</reentrant>
<resource-ref>
<description>MySQL Data source</description>
<res-ref-name>GuestBookDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<ejb-ref>
<ejb-ref-name>Message</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>org.gaws.guestbook.entitybeans.MessageHome</home>
<remote>org.gaws.guestbook.entitybeans.Message</remote>
<ejb-link>org.gaws.guestbook.entitybeans.MessageBean</ejb-link>
</ejb-ref>
<cmp-field>
<field-name>messageThreadID</field-name>
</cmp-field>
<cmp-field>
<field-name>parentMessagePK</field-name>
</cmp-field>
<env-entry>
<description></description>
<env-entry-name>java.naming.factory.initial</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>org.jnp.interfaces.NamingContextFactory</env-entry-value>
</env-entry>
<env-entry>
<description></description>
<env-entry-name>java.naming.provider.url</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>localhost:1099</env-entry-value>
</env-entry>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>GuestBean</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>MessageBean</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>MessageThreadBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
-----------------------------
The jboss.xml:
-------------------------------
<?xml version="1.0" encoding="Cp1252"?>
<jboss>
<resource-managers>
<resource-manager
res-class="org.jboss.ejb.deployment.JDBCResource">
<res-name>GuestBookDB</res-name>
<res-jndi-name>xa.MySQL</res-jndi-name>
</resource-manager>
</resource-managers>
<enterprise-beans>
<entity>
<ejb-name>GuestBean</ejb-name>
<jndi-name>Guest</jndi-name>
</entity>
<entity>
<ejb-name>MessageBean</ejb-name>
<jndi-name>Message</jndi-name>
</entity>
<entity>
<ejb-name>MessageThreadBean</ejb-name>
<jndi-name>MessageThread</jndi-name>
</entity>
<secure>false</secure>
</enterprise-beans>
------------------------------
The jaws.xml:
------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<jaws>
<datasource>xa.MySQL</datasource>
<type-mapping>mySQL</type-mapping>
<!-- This section provides optional object-to-relational mapping
descriptions -->
<enterprise-beans>
<entity>
<ejb-name>GuestBean</ejb-name>
<table-name>GUEST</table-name>
<create-table>false</create-table>
<remove-table>false</remove-table>
<tuned-updates>true</tuned-updates>
<read-only>false</read-only>
<time-out>300</time-out>
<cmp-field>
<field-name>guestID</field-name>
<column-name>GUEST_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>NAME</column-name>
<sql-type>VARCHAR(60)</sql-type>
<jdbc-type>VARCHAR</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>email</field-name>
<column-name>EMAIL</column-name>
<sql-type>VARCHAR(100)</sql-type>
<jdbc-type>VARCHAR</jdbc-type>
</cmp-field>
</entity>
<entity>
<ejb-name>MessageBean</ejb-name>
<table-name>MESSAGE</table-name>
<create-table>false</create-table>
<remove-table>false</remove-table>
<tuned-updates>true</tuned-updates>
<read-only>false</read-only>
<time-out>300</time-out>
<cmp-field>
<field-name>messageID</field-name>
<column-name>MESSAGE_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>subject</field-name>
<column-name>SUBJECT</column-name>
<sql-type>VARCHAR(150)</sql-type>
<jdbc-type>VARCHAR</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>body</field-name>
<column-name>BODY</column-name>
<sql-type>TEXT</sql-type>
<jdbc-type>TEXT</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>entryDate</field-name>
<column-name>ENTRY_DATE</column-name>
<sql-type>DATE</sql-type>
<jdbc-type>DATE</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>guestPK</field-name>
<column-name>GUEST_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>threadPK</field-name>
<column-name>THREAD_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
</entity>
<entity>
<ejb-name>MessageThreadBean</ejb-name>
<table-name>MESSAGETHREAD</table-name>
<create-table>false</create-table>
<remove-table>false</remove-table>
<tuned-updates>true</tuned-updates>
<read-only>false</read-only>
<time-out>300</time-out>
<cmp-field>
<field-name>messageThreadID</field-name>
<column-name>MESSAGETHREAD_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
<cmp-field>
<field-name>parentMessagePK</field-name>
<column-name>PARENTMESSAGE_ID</column-name>
<sql-type>INT</sql-type>
<jdbc-type>INT</jdbc-type>
</cmp-field>
</entity>
</enterprise-beans>
</jaws>
------------------------------------