jboss and ejb 2.0 CMR
843829May 14 2003 — edited Jul 28 2004Hi
I am using cmr with jboss 3.2.x
I am getting following error .2.1_tomcat-4.1.24/server/default/deploy/SampleCMR7.war
16:17:04,888 INFO [STDOUT] Inside constructor
16:17:04,898 INFO [STDOUT] Inside constructor
16:17:04,908 INFO [STDOUT] ----- Entering getCmpChildSet -----
16:17:04,918 INFO [STDOUT] Adding child to vector
16:17:04,918 ERROR [LogInterceptor] RuntimeException:
java.lang.NullPointerException
at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.getEntityEJBLocalOb
ject(BaseLocalProxyFactory.java:231)
at org.jboss.ejb.plugins.cmp.jdbc.bridge.RelationSet$1.next(RelationSet.
java:341)
at com.sample.SampleCMPEJB.getCmpChildSet(SampleCMPEJB.java:181)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(EntityConta
iner.java:1044)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke(JDBCRel
ationInterceptor.java:95)
at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntityS
ynchronizationInterceptor.java:301)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
ke(CachedConnectionInterceptor.java:186)
at org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentr
anceInterceptor.java:82)
at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstance
Interceptor.java:174)
at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockIntercep
tor.java:89)
at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreation
Interceptor.java:53)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
rceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:243)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:1
04)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:117)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto
ryFinderInterceptor.java:122)
at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:483
)
at org.jboss.ejb.Container.invoke(Container.java:674)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBea
nDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.jav
a:83)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:4
5)
at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:9
7)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy36.getCmpChildSet(Unknown Source)
at org.apache.jsp.SampleCMR_jsp._jspService(SampleCMR_jsp.java:93)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2
95)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
I get error after i get collection from cmr method and i try to iterate it. Can someone sugget me what is going wrong. Why would itr.next() throw me null pointer (itr is not null).
XML are as follows
EJB-JAR.xml
-----------
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<description></description>
<ejb-name>SampleCMP</ejb-name>
<home>com.sample.SampleCMPHome</home>
<remote>com.sample.SampleCMP</remote>
<ejb-class>com.sample.SampleCMPEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>com.sample.SampleCMPPK</prim-key-class>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>SampleCMP</abstract-schema-name>
<reentrant>False</reentrant>
<cmp-field>
<field-name>phone</field-name>
</cmp-field>
<cmp-field>
<field-name>email</field-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<field-name>ssn</field-name>
</cmp-field>
</entity>
<entity>
<description></description>
<ejb-name>SampleCMPChild</ejb-name>
<home>com.sample.SampleCMPChildHome</home>
<remote>com.sample.SampleCMPChild</remote>
<ejb-class>com.sample.SampleCMPChildEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>com.sample.SampleCMPChildPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>SampleCMPChild</abstract-schema-name>
<cmp-field>
<field-name>location</field-name>
</cmp-field>
<cmp-field>
<field-name>ssn</field-name>
</cmp-field>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>parent-child</ejb-relation-name>
<ejb-relationship-role>
<description></description>
<ejb-relationship-role-name>parent</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<description></description>
<ejb-name>SampleCMPChild</ejb-name>
</relationship-role-source>
<cmr-field>
<description></description>
<cmr-field-name>cmpParent</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<description>unit</description>
<ejb-relationship-role-name>child</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<description></description>
<ejb-name>SampleCMP</ejb-name>
</relationship-role-source>
<cmr-field>
<description></description>
<cmr-field-name>cmpChild</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</relationships>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>SampleCMP</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>SampleCMPChild</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
jbosscmp-jdbc.xml
--------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC
"-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:/oracleDS</datasource>
<datasource-mapping>Oracle8</datasource-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>SampleCMP</ejb-name>
<table-name>SampleCMP</table-name>
<cmp-field>
<field-name>phone</field-name>
<column-name>PHONE</column-name>
</cmp-field>
<cmp-field>
<field-name>email</field-name>
<column-name>EMAIL</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>NAME</column-name>
</cmp-field>
<cmp-field>
<field-name>ssn</field-name>
<column-name>SSN</column-name>
</cmp-field>
</entity>
<entity>
<ejb-name>SampleCMPChild</ejb-name>
<table-name>SampleCMPChild</table-name>
<cmp-field>
<field-name>ssn</field-name>
<column-name>SSN</column-name>
</cmp-field>
<cmp-field>
<field-name>location</field-name>
<column-name>LOCATION</column-name>
</cmp-field>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>parent-child</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>parent</ejb-relationship-role-name>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>child</ejb-relationship-role-name>
<key-fields>
<key-field>
<field-name>ssn</field-name>
<column-name>SSN</column-name>
</key-field>
</key-fields>
</ejb-relationship-role>
</ejb-relation>
</relationships>
</jbosscmp-jdbc>
Lemme me know if i m screwing up relations
pranav