The exception being thrown by Jboss when I try to deploy, is a NullPointerException in line 103 of org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntitiesCommand. The line of code reads as follows:
// Make commands for any autogenerated finders required
Method[] homeMethods = factory.getContainer().getHomeClass().getMethods();
After adding some additional logging to this Jboss class, I have determined that the getHomeClass() call is returning "null", which is causing the subsequent call to getMethods() to throw NPE.
I don't know if this is a bug in Jboss 2.4, or a problem with how xdoclet is producing code or xml.
One thing for sure is that it's not really a "JDBC problem" per se; instead it appears to be in the auto-generation of finder methods.
Ideas would be appreciated!
Thanks,
Bryan
Dmitri Colebatch wrote:
[EMAIL PROTECTED]">Bryan,
yes, the jaws thing is indeed weird. could you post the ejb-jar, jboss
and jaws xml files? Have you had a look over the code? how's it look?
cheers
dim
On Wed, 5 Sep 2001, Bryan Field-Elliot wrote:Per your instructions below:
Dmitri Colebatch wrote:On Mon, 3 Sep 2001, Bryan Field-Elliot wrote:This evening I will try the latest CVS and post my results (local
interfaces, without CMP 2.0).I haven't actually tried using the local interface yet, but have done
everything up to that point (including deploy with local interfaces) and
all is good, so it should be smooth sailing.I am still having trouble getting jboss to correctly verify or deploy my
beans when I try local interfaces.
To recap:
RedHat Linux 7.1
Sun JDK 1.3.0-02
JBoss 2.4.0 + Tomcat final release
xdoclet checked out from CVS just a few minutes ago
My build.xml has this task defined:
<ejbdoclet
ejbspec="2.0"
sourcepath="${gen}"
destdir="${gen}"
packagenames="com.myapp.ejb.*"
excludedtags="@version,@author">
<classpath refid="commonPath"/>
<dataobject/>
<remoteinterface/>
<localinterface/>
<homeinterface/>
<localhomeinterface/>
<entitypk/>
<entitycmp/>
<session/>
<deploymentdescriptor destdir="${xml}"/>
<jboss typemapping="PostgreSQL" datasource="java:/myapp"
destdir="${xml}"/>
</ejbdoclet>
My bean class starts like this:
/**
* Note Bean
*
* @ejb:bean type="CMP" cmp-version="1.x" name="myapp/Note"
jndi-name="ejb/myapp/Note" view-type="local"
* @ejb:transaction type="Required"
*
* @ejb:finder signature="Collection findAll()"
*
* @jboss:table-name table-name="notes"
* @jboss:create-table create="true"
* @jboss:remove-table remove="false"
* @jboss:tuned-updates tune="true"
* @jboss:read-only read-only="false"
*
*/
public abstract class NoteBean implements EntityBean
Each remote method looks like this:
/**
* @ejb:interface-method view-type="local"
* @ejb:persistent-field
*/
public abstract String getURL();
Whenever I try to access the loc al interface'd bean, I get the error
"env not bound" (not loaded and JDNI-bound, evidently).
When I switch to remote interfaces, everything works fine.
Lastly, my jboss console output look reads as follows (long).
It is suspicious to me that the errors I am getting are within
JAWS/JDBC. These parameters remain unchanged whether I try the local or
remote interface route. Still I point it out in case it ring's anyone's
bell.
Thanks again for all the help,
Bryan
jboss console log:
[Container factory] Deploying:file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/tmp/deploy/Default/myapp-ejb.jar
[Verifier] Verifying file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/tmp/deplo y/Default/myapp-ejb.jar/ejb1003.jar
[Container factory] Deploying myapp/Note
[Container factory] Deploying myapp/User
[Container factory] Deploying myapp/Topic
[Container factory] Deploying myapp/ClientSession
[JAWS] Table 'users' already exists
[Container factory] java.lang.NullPointerException
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntitiesCommand.<init>(JDBCFindEntitiesCommand.java:103)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCCommandFactory.createFindEntitiesCommand(JDBCCommandFactory.java:246)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntityCommand.<init>(JDBCFindEntityCommand.java:46)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCCommandFactory.createFindEntityCommand(JDBCCommandFactory.java:235)
[Container factory] at org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.init(JAWSPersistenceManager.java:90)
[Container factory] at org.jboss.e jb.plugins.CMPPersistenceManager.init(CMPPersistenceManager.java:110)
[Container factory] at org.jboss.ejb.EntityContainer.init(EntityContainer.java:221)
[Container factory] at org.jboss.ejb.Application.init(Application.java:202)
[Container factory] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:372)
[Container factory] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:304)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.deployment.J2eeDeployer.startModules(J2eeDeployer.java:486)
[Container factory] at org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeployer.java:464)
[Container factory] at org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:208)
[C ontainer factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:379)
[Container factory] at org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:217)
[Container factory] at org.jboss.ejb.AutoDeployer.startService(AutoDeployer.java:353)
[Container factory] at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupport.java:107)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(Co nfigurationService.java:836)
[Container factory] at $Proxy0.start(Unknown Source)
[Container factory] at org.jboss.util.ServiceControl.start(ServiceControl.java:81)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.Main.<init>(Main.java:210)
[Container factory] at org.jboss.Main$1.run(Main.java:116)
[Container factory] at java.security.AccessController.doPrivileged(Native Method)
[Container factory] at org.jboss.Main.main(Main.java:112)
[Container factory] java.lang.NullPointerException
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntitiesCommand.<init>(JDBCFindEntitiesCommand.java:103)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCCommandFactory. createFindEntitiesCommand(JDBCCommandFactory.java:246)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntityCommand.<init>(JDBCFindEntityCommand.java:46)
[Container factory] at org.jboss.ejb.plugins.jaws.jdbc.JDBCCommandFactory.createFindEntityCommand(JDBCCommandFactory.java:235)
[Container factory] at org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.init(JAWSPersistenceManager.java:90)
[Container factory] at org.jboss.ejb.plugins.CMPPersistenceManager.init(CMPPersistenceManager.java:110)
[Container factory] at org.jboss.ejb.EntityContainer.init(EntityContainer.java:221)
[Container factory] at org.jboss.ejb.Application.init(Application.java:202)
[Container factory] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:372)
[Container factory] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:304)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com. sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.deployment.J2eeDeployer.startModules(J2eeDeployer.java:486)
[Container factory] at org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeployer.java:464)
[Container factory] at org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:208)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:379)
[Container factory] at org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:217)
[Container factory] at org.jboss.ejb.AutoDeployer.startService(AutoDeployer.java:353)
[Container factory] at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupport.java:107)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(ConfigurationService.java:836)
[Container factory] at $Proxy0.start(Unknown Source)
[Container factory] at org.jboss.util.ServiceControl.start(ServiceControl.java:81)
[Container factory] at java.lang.reflect.Method.invoke(Native Method)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Container factory] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Container factory] at org.jboss.Main.<init>(Main.java:210)
[Contai ner factory] at org.jboss.Main$1.run(Main.java:116)
[Container factory] at java.security.AccessController.doPrivileged(Native Method)
[Container factory] at org.jboss.Main.main(Main.java:112)
[J2EE Deployer Default] Starting myapp-ejb.jar failed!
[Default] org.jboss.ejb.DeploymentException: Could not deploy file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/tmp/deploy/Default/myapp-ejb.jar, Cause:java.lang.NullPointerException
[Default] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:401)
[Default]
[Default] at org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:304)
[Default]
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Default]
[Default] at com.sun.management.jmx.MBeanServerI mpl.invoke(MBeanServerImpl.java:1523)
[Default]
[Default] at org.jboss.deployment.J2eeDeployer.startModules(J2eeDeployer.java:486)[Default]
[Default] at org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeployer.java:464)
[Default]
[Default] at org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:208)
[Default]
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Default]
[Default] at org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:379)
[Default]
[Default] at org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:217)
[Default]
[Default] at org.jboss.ejb.AutoDeployer.startService(AutoDeployer.java:353)
[Default]
[Default] at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupport.java:107)< br>[Default]
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Default]
[Default] at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(ConfigurationService.java:836)
[Default]
[Default] at $Proxy0.start(Unknown Source)
[Default]
[Default] at org.jboss.util.ServiceControl.start(ServiceControl.java:81)
[Default]
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[Default]
[Default] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[Default]
[Default] at org.jboss.Main.<init>(Main.java:210)
[Default]
[Default] at org.jboss.Main$1.run(Main.java:116 )
[Default]
[Default] at java.security.AccessController.doPrivileged(Native Method)
[Default]
[Default] at org.jboss.Main.main(Main.java:112)
[Default]
[J2EE Deployer Default] Module myapp-ejb.jar is not running
[J2EE Deployer Default] Destroying application myapp-ejb.jar
[AutoDeployer] Deployment failed:file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/deploy/myapp-ejb.jar
[AutoDeployer] org.jboss.deployment.J2eeDeploymentException: Error while starting myapp-ejb.jar: Could not deploy file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/tmp/deploy/Default/myapp-ejb.jar, Cause: org.jboss.ejb.DeploymentException: Could not deploy file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/tmp/deploy/Default/myapp-ejb.jar, Cause:java.lang.NullPointerException
[AutoDeployer] at org.jboss.deployment.J2eeDeployer.startModules(J2eeDeployer.java:511)[AutoDeployer] at org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeployer.java:464)
[AutoDeployer] at org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:208)
[AutoDeployer] at java.lang.reflect.Method.invoke(Native Method)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[AutoDeployer] at org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:379)
[AutoDeployer] at org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:217)
[AutoDeployer] at org.jboss.ejb.AutoDeployer.startService(AutoDeployer.java:353)
[AutoDeployer] at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupp ort.java:107)
[AutoDeployer] at java.lang.reflect.Method.invoke(Native Method)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[AutoDeployer] at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(ConfigurationService.java:836)
[AutoDeployer] at $Proxy0.start(Unknown Source)
[AutoDeployer] at org.jboss.util.ServiceControl.start(ServiceControl.java:81)
[AutoDeployer] at java.lang.reflect.Method.invoke(Native Method)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
[AutoDeployer] at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
[AutoDeployer] at org.jboss.Main.<init>(Main.java:210)
[AutoDeployer] at org.jboss.Main$1.run(Main.java:116)
[AutoDeployer] at java.security.AccessController.doPrivileged(Native Method)
[AutoDeployer] at org.jboss.Main.main(Main.java:112)
[AutoDeployer] Auto deploy of file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/deploy/lib/jbosspool-jdbc.rar
[RARDeployer] Attempting to deploy RAR at 'file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/deploy/lib/jbosspool-jdbc.rar'
[RARDeployer] Loading Minerva Resource Adapter for JDBC 1/2 drivers
[RARDeployer] Required license terms present. See deployment descriptor.
[MinervaDS] Not setting config property 'Driver'
[MinervaDS] Not setting config property 'Password'
[MinervaDS] Not setting config property 'UserName'
[MinervaDS] Bound connection factory for resource adapter 'Minerva JDBC LocalTransaction ResourceAdapter' to JNDI name 'java:/MinervaDS'
[AutoDeployer ] Auto deploy of file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/deploy/lib/jms-ra.rar
[RARDeployer] Attempting to deploy RAR at 'file:/usr/java/JBoss-2.4.0_Tomcat-3.2.3/jboss/deploy/lib/jms-ra.rar'
[JmsXA] Using default value 'java:DefaultJMSProvider' for config property 'JmsProviderAdapterJNDI'
[JmsXA] FINE: Setting LogWriter: org.jboss.logging.LogWriter@21c42f
[JmsXA] Bound connection factory for resource adapter 'JMS Adapter' to JNDI name 'java:/JmsXA'
[AutoDeployer] Started
[JMXAdaptorService] Starting
[JMXAdaptorService] Started
[RMIConnectorService] Starting
[RMIConnectorService] Started
[MailService] Starting
[MailService] Mail Se rvice 'Mail' bound to java:/Mail
[MailService] Started
[Service Control] Started 26 services
[Default] JBoss 2.4.0 Started in 0m:12s
