I'm pretty sure.  I just found this in section 10.5.1 of the spec (about a
bean's lifecycle):

The instance does not move to the ready state during the execution of a
finder or a home
method.  An ejbSelect<METHOD>(...) method may be called by an entity bean's
home method while the instance is in the pooled state.

Also the O'Reilly EJB book has a section on calling ejbSelect methods from
Home methods.  

Anyway I really appreciate you taking a look at it.

Jason

--
Jason Carroll
VeriSign Consulting
Email: [EMAIL PROTECTED]   Phone: (703) 948-3843


-----Original Message-----
From: Dain Sundstrom [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 16, 2002 11:41 AM
To: 'Carroll, Jason'; '[EMAIL PROTECTED]'
Subject: RE: [JBoss-user] Problem using ejbSelect methods in ejbHome
metho ds in 3.0alpha


Does the spec allow for this?  If it does, I'll fix it.

-dain

> -----Original Message-----
> From: Carroll, Jason [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, January 16, 2002 8:08 AM
> To: '[EMAIL PROTECTED]'
> Subject: [JBoss-user] Problem using ejbSelect methods in 
> ejbHome methods
> in 3.0alpha
> 
> 
> I'm getting exceptions when I use ejbSelect methods but only 
> when they are
> called from within ejbHome methods.  I can create an 
> ejbSelect method and
> then
> use it in a method in the bean class and it works fine.  I 
> can also create a
> home method and call it from a session bean for instance and 
> it works fine,
> but
> when I copy the exact same code in the bean method to the 
> home method I get
> an
> exception from Jboss.  Has anyone else gotten ejbSelect 
> methods to work from
> within home methods?  I'm currently using the 1/9/2002 
> nightly snapshot from
> cvs for this, but the same problem exists for me in a snapshot from
> November. 
> Any help would be appreciated on what I might be doing wrong.
> 
> Thanks,
> Jason
> 
> Example code and the exception is below:
> 
> public abstract class IssueBean extends GenericBean {
> 
>     ...
> 
>     public abstract Collection 
> ejbSelectLastModifiedDates(Integer productId)
> throws FinderException;
> 
>     // Calling this home method throws an exception when the 
> ejbSelect call
> is made
>     public Date ejbHomeLatestModificationDate(Integer productId) {
>         System.out.println("Product Id = " + productId);
>         try {
>             Collection dates = ejbSelectLastModifiedDates(productId);
>             System.out.println("dates contained " + dates.size() +
> "elements");
>         } catch(FinderException fe) {
>         }
>         return new Date();
>     }
> 
>     // Calling this method on a IssueLocal object returns the 
> correct size
> of the collection
>     public int getNumberDates(Integer productId) {
>         try {
>             Collection dates = ejbSelectLastModifiedDates(productId);
>             System.out.println("dates contained " + dates.size() +
> "elements");
>               return dates.size();
>         } catch(FinderException fe) {
>         }
>         return 0;
>     }
> 
> }
> 
> public interface IssueLocal extends EJBLocalObject {
> 
>     ...
> 
>     public IssueModel getModel();
> } 
> 
> public interface IssueLocalHome extends EJBLocalHome {
> 
>     public IssueLocal create(Integer value) throws CreateException;
> 
>     public IssueLocal findByPrimaryKey(Integer value) throws
> FinderException;
> 
>     public Date latestModificationDate(Integer productId);
> }
> 
> ejb-jar info:
> 
>       <query>
>         <description>Selects all lastModificationDates from a 
> Product's
> Issues</description>
>         <query-method>
>           <method-name>ejbSelectLastModifiedDates</method-name>
>           <method-params>
>             <method-param>java.lang.Integer</method-param>          
>           </method-params>
>         </query-method>
>         <ejb-ql>SELECT i.lastModifiedDate FROM Issue AS i 
> WHERE i.product.id
> = ?1</ejb-ql>
>       </query>
> 
> 
> Exception is:
> 
> 12:04:55,540 ERROR [StatelessSessionContainer] invoke 
> returned an exception
> java.rmi.ServerException: null
> Embedded Exception
> null; nested exception is:
>         javax.ejb.EJBException: null
> Embedded Exception
> null
> javax.ejb.EJBException: null
> Embedded Exception
> null
>         at
> org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.i
nvoke(Stateles
> sSessionContainer.java:634)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac
tTxInterceptor
> .java:96)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(Abst
ractTxIntercep
> torBMT.java:142)
>         at
> org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT
.java:62)
>         at
> org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invo
> ke(StatelessSe
> ssionInstanceInterceptor.java:77)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInter
ceptor.java:12
> 7)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
>         at
> org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessio
nContainer.jav
> a:289)
>         at org.jboss.ejb.Container.invoke(Container.java:609)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1555)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1523)
>         at
> org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:113)
>         at
> org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(J
RMPInvokerProx
> y.java:149)
>         at 
> org.jboss.proxy.ejb.GenericProxy.invoke(GenericProxy.java:182)
>         at
> org.jboss.proxy.ejb.StatelessSessionProxy.invoke(StatelessSess
ionProxy.java:
> 110)
>         at $Proxy157.getLatestIssueDateByProductId(Unknown Source)
>         at
> org.apache.jsp.list_0005fissues_0005fby_0005fproduct$jsp._jspS
ervice(list_00
> 05fissues_0005fby_0005fproduct$jsp.java:159)
>         at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.service
> (JspServlet.ja
> va:202)
>         at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
.java:382)
>         at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:291)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler
.java:542)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1265)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1219)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:725)
>         at 
> org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
>         at
> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
>         at 
> org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
>         at
> org.mortbay.http.SocketListener.handleConnection(SocketListene
r.java:138)
>         at 
> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
>         at 
> org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
>         at java.lang.Thread.run(Unknown Source)
> java.rmi.ServerException: null
> Embedded Exception
> null; nested exception is:
>         javax.ejb.EJBException: null
> Embedded Exception
> null
> javax.ejb.EJBException: null
> Embedded Exception
> null
>         at
> org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(
EntityContaine
> r.java:968)
>         at
> org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractI
nterceptor.jav
> a:73)
>         at
> org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractI
nterceptor.jav
> a:73)
>         at
> org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeH
> ome(EntitySync
> hronizationInterceptor.java:221)
>         at
> org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(Ent
ityInstanceInt
> erceptor.java:136)
>         at
> org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityL
ockInterceptor
> .java:80)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac
tTxInterceptor
> .java:98)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxI
nterceptorCMT.
> java:158)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxIntercepto
rCMT.java:55)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityI
nterceptor.jav
> a:102)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor
.java:109)
>         at
> org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:429)
>         at
> org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invokeHo
> me(BaseLocalCo
> ntainerInvoker.java:281)
>         at
> org.jboss.ejb.plugins.local.BaseLocalContainerInvoker$HomeProx
y.invoke(BaseL
> ocalContainerInvoker.java:432)
>         at $Proxy145.latestModificationDate(Unknown Source)
>         at
> cowsultants.itracker.ejb.beans.session.IssueHandlerBean.getLat
> estIssueDateBy
> ProductId(IssueHandlerBean.java:126)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at
> org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.i
nvoke(Stateles
> sSessionContainer.java:623)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac
tTxInterceptor
> .java:96)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(Abst
ractTxIntercep
> torBMT.java:142)
>         at
> org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT
.java:62)
>         at
> org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invo
> ke(StatelessSe
> ssionInstanceInterceptor.java:77)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInter
ceptor.java:12
> 7)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
>         at
> org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessio
nContainer.jav
> a:289)
>         at org.jboss.ejb.Container.invoke(Container.java:609)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1555)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1523)
>         at
> org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:113)
>         at
> org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(J
RMPInvokerProx
> y.java:149)
>         at 
> org.jboss.proxy.ejb.GenericProxy.invoke(GenericProxy.java:182)
>         at
> org.jboss.proxy.ejb.StatelessSessionProxy.invoke(StatelessSess
ionProxy.java:
> 110)
>         at $Proxy157.getLatestIssueDateByProductId(Unknown Source)
>         at
> org.apache.jsp.list_0005fissues_0005fby_0005fproduct$jsp._jspS
ervice(list_00
> 05fissues_0005fby_0005fproduct$jsp.java:159)
>         at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.service
> (JspServlet.ja
> va:202)
>         at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
.java:382)
>         at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:291)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler
.java:542)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1265)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1219)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:725)
>         at 
> org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
>         at
> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
>         at 
> org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
>         at
> org.mortbay.http.SocketListener.handleConnection(SocketListene
r.java:138)
>         at 
> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
>         at 
> org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
>         at java.lang.Thread.run(Unknown Source)
> java.lang.NullPointerException
>         at
> org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler
> .invoke(Entity
> BridgeInvocationHandler.java:131)
>         at
> org.jboss.proxy.compiler.ProxyCompiler$Runtime.invoke(ProxyCom
piler.java:89)
>         at
> cowsultants.itracker.ejb.beans.entity.IssueBean$Proxy.ejbSelec
tLastModifiedD
> ates(Unknown
> Source)
>         at
> cowsultants.itracker.ejb.beans.entity.IssueBean.ejbHomeLatestM
> odificationDat
> e(IssueBean.java:50)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at
> org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(
EntityContaine
> r.java:957)
>         at
> org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractI
nterceptor.jav
> a:73)
>         at
> org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractI
nterceptor.jav
> a:73)
>         at
> org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeH
> ome(EntitySync
> hronizationInterceptor.java:221)
>         at
> org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(Ent
ityInstanceInt
> erceptor.java:136)
>         at
> org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityL
ockInterceptor
> .java:80)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac
tTxInterceptor
> .java:98)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxI
nterceptorCMT.
> java:158)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxIntercepto
rCMT.java:55)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityI
nterceptor.jav
> a:102)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor
.java:109)
>         at
> org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:429)
>         at
> org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invokeHo
> me(BaseLocalCo
> ntainerInvoker.java:281)
>         at
> org.jboss.ejb.plugins.local.BaseLocalContainerInvoker$HomeProx
y.invoke(BaseL
> ocalContainerInvoker.java:432)
>         at $Proxy145.latestModificationDate(Unknown Source)
>         at
> cowsultants.itracker.ejb.beans.session.IssueHandlerBean.getLat
> estIssueDateBy
> ProductId(IssueHandlerBean.java:126)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at
> org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.i
nvoke(Stateles
> sSessionContainer.java:623)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac
tTxInterceptor
> .java:96)
>         at
> org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(Abst
ractTxIntercep
> torBMT.java:142)
>         at
> org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT
.java:62)
>         at
> org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invo
> ke(StatelessSe
> ssionInstanceInterceptor.java:77)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInter
ceptor.java:12
> 7)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
>         at
> org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessio
nContainer.jav
> a:289)
>         at org.jboss.ejb.Container.invoke(Container.java:609)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1555)
>         at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
java:1523)
>         at
> org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:113)
>         at
> org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(J
RMPInvokerProx
> y.java:149)
>         at 
> org.jboss.proxy.ejb.GenericProxy.invoke(GenericProxy.java:182)
>         at
> org.jboss.proxy.ejb.StatelessSessionProxy.invoke(StatelessSess
ionProxy.java:
> 110)
>         at $Proxy157.getLatestIssueDateByProductId(Unknown Source)
>         at
> org.apache.jsp.list_0005fissues_0005fby_0005fproduct$jsp._jspS
ervice(list_00
> 05fissues_0005fby_0005fproduct$jsp.java:159)
>         at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.service
> (JspServlet.ja
> va:202)
>         at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
.java:382)
>         at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:291)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler
.java:542)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1265)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1219)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:725)
>         at 
> org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
>         at
> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
>         at 
> org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
>         at
> org.mortbay.http.SocketListener.handleConnection(SocketListene
r.java:138)
>         at 
> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
>         at 
> org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
>         at java.lang.Thread.run(Unknown Source)
> 12:04:56,812 INFO  [Default] ServerException 
> (java.rmi.ServerException) in
> list_issues_by_product: null
> Embedded Exception
> null; nested exception is:
>         javax.ejb.EJBException: null
> Embedded Exception
> null
> 
> 
> =====
> --
> Jason Carroll
> [EMAIL PROTECTED]
> 
> __________________________________________________
> Do You Yahoo!?
> Send FREE video emails in Yahoo! Mail!
> http://promo.yahoo.com/videomail/
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
> 
> 

_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to