You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Dale de los Reyes <dr...@hotmail.com> on 2006/08/14 19:41:56 UTC

Problem accessing Entity Bean, Getting SystemExceptionInterceptor warning

Hello,

I need some help. I've been having problems accessing an entity bean from my 
session bean. I've coded similar EJBs before and they've successfully run on 
Geronimo 1.0. I tried using the upgrade.jar utility on these old beans, but 
was unable to get them to deploy. When the example programs became 
available, I gave up trying to use the upgrade tool. Now, the application 
seems to deploy just fine with no error messages being returned in the 
console window, but there are some debug messages in the log file.

When I access my application, the session bean seems to locate the entity 
bean successfully. But when I call a method belonging to that entity bean, I 
get a "SystemExceptionInterceptor" warning. I'm not sure what this means, 
other than I'm doing something wrong.

I'm using Geronimo 1.1 with Tomcat and Java 1.4.2_10. The descriptor files 
are modelled after the Bank demo supplied in the user manual which I was 
able to get running. My test application is deployed as an ear file via Hot 
Deployer.

The descriptor files (ejb-jar.xml, openejb-jar.xml) and stack trace are 
below for my test application. I hope someone can point out what I'm missing 
or doing wrong.

Thanks,
Dale


ejb-jar.xml
-----------

<?xml version="1.0" encoding="UTF-8"?>

<!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>
      <session>
         <ejb-name>ProcessCustomerSessionBean</ejb-name>
         <home>com.service.customer.ejb.ProcessCustomerHome</home>
         <remote>com.service.customer.ejb.ProcessCustomer</remote>
         
<ejb-class>com.service.customer.ejb.ProcessCustomerSessionBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>

         <ejb-ref>
            <ejb-ref-name>ejb/CustomerHome</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <home>com.service.customer.ejb.CustomerHome</home>
            <remote>com.service.customer.ejb.Customer</remote>
            <ejb-link>CustomerEntityBean</ejb-link>
         </ejb-ref>
      </session>

      <entity>
         <ejb-name>CustomerEntityBean</ejb-name>
         <home>com.service.customer.ejb.CustomerHome</home>
         <remote>com.service.customer.ejb.Customer</remote>
         <ejb-class>com.service.customer.ejb.CustomerEntityBean</ejb-class>

         <persistence-type>Bean</persistence-type>
         <prim-key-class>java.lang.String</prim-key-class>
         <reentrant>False</reentrant>

         <resource-ref>
            <res-ref-name>jdbc/CustomerServiceDataSource</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
         </resource-ref>
      </entity>
   </enterprise-beans>

   <assembly-descriptor>
      <container-transaction>
         <method>
            <ejb-name>ProcessCustomerSessionBean</ejb-name>
            <method-name>*</method-name>
         </method>

         <trans-attribute>Required</trans-attribute>
      </container-transaction>
   </assembly-descriptor>
</ejb-jar>

*****

openejb-jar.xml
---------------

<?xml version="1.0" encoding="UTF-8"?>

<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1">
   <dep:environment 
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
      <dep:moduleId>
         <dep:groupId>default</dep:groupId>
         <dep:artifactId>CustomerService-ejb</dep:artifactId>
         <dep:version>1.0</dep:version>
         <dep:type>jar</dep:type>
      </dep:moduleId>

      <dep:dependencies>
         <dep:dependency>
            <dep:groupId>console.dbpool</dep:groupId>
            <dep:artifactId>CustomerServicePool</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
         </dep:dependency>
      </dep:dependencies>

      <dep:hidden-classes/>
      <dep:non-overridable-classes/>
   </dep:environment>

   <enterprise-beans>
      <session>
         <ejb-name>ProcessCustomerSessionBean</ejb-name>
         <jndi-name>ProcessCustomerRemoteSessionBean</jndi-name>

         <ejb-ref>
            <ref-name>ejb/CustomerHome</ref-name>
            <ejb-link>CustomerEntityBean</ejb-link>
         </ejb-ref>
      </session>

      <entity>
         <ejb-name>CustomerEntityBean</ejb-name>
         <jndi-name>CustomerRemoteEntity</jndi-name>

         <resource-ref>
            <ref-name>jdbc/CustomerServiceDataSource</ref-name>
            <resource-link>CustomerServicePool</resource-link>
         </resource-ref>
      </entity>
   </enterprise-beans>
</openejb-jar>

*****

This stack trace is taken from "geronimo-1.1/var/log/geronimo.log"

09:28:35,491 DEBUG [GBeanSingleReference] Waiting to start 
default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=CustomerService-ejb.jar 
because no targets are running for reference J2EEApplication matching the 
patterns 
default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear
09:28:35,631 DEBUG [GBeanSingleReference] Waiting to start 
default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=PubQueryEJB.jar 
because no targets are running for reference J2EEApplication matching the 
patterns 
default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear
09:29:19,985 WARN  [SystemExceptionInterceptor] CustomerEntityBean
javax.transaction.TransactionRolledbackException: 
com.service.customer.ejb.CustomerEntityBean
	at 
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:126)
	at 
org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
	at 
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
	at org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
	at 
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164)
	at 
org.openejb.proxy.EntityEJBHome$$EnhancerByCGLIB$$d8dd02dd.findByAll(<generated>)
	at 
com.service.customer.ejb.ProcessCustomerSessionBean.findAllCustomers(ProcessCustomerSessionBean.java:70)
	at 
com.service.customer.ejb.ProcessCustomerSessionBean$$FastClassByCGLIB$$5aed4974.invoke(<generated>)
	at 
org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperation.java:90)
	at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
	at 
org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java:72)
	at 
org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(ComponentContextInterceptor.java:56)
	at 
org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInterceptor.java:81)
	at 
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119)
	at 
org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
	at 
org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:98)
	at 
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:140)
	at 
org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
	at 
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
	at org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
	at 
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164)
	at 
org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$ba84632c.findAllCustomers(<generated>)
	at 
com.service.customer.web.CustomerServiceJavaBean.getAllCustomers(CustomerServiceJavaBean.java:94)
	at 
org.apache.jsp.customers.index_jsp._jspService(org.apache.jsp.customers.index_jsp:81)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at 
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46)
	at 
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:342)
	at 
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:31)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
	at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
	at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:534)



Re: Problem accessing Entity Bean, Getting SystemExceptionInterceptor warning

Posted by Dale de los Reyes <dr...@hotmail.com>.
Hi Lasantha,

I finally got my entity bean working. The requisite "user-error" applies 
here (*blush*). What happend is that I started out my entity bean using CMP. 
When I ran into problems, I switched it to BMP. However, in the course of 
the switch, I forgot to remove the "abstract" keyword at the beginning of 
the class definition when implementing the entity bean! Once I removed it, 
there was much rejoicing. I have since been able to get CMP working as well. 
Ugh, I'm so embarrased.

Thanks for responding and thank you for your example code! It really helped 
me out a lot!

Very much appreciated,
Dale


>From: Lasantha Ranaweera <la...@opensource.lk>
>Reply-To: user@geronimo.apache.org
>To: user@geronimo.apache.org
>Subject: Re: Problem accessing Entity Bean, Getting 
>SystemExceptionInterceptor warning
>Date: Tue, 15 Aug 2006 18:37:46 +0530
>
>Hi Dale,
>
>Can you give more information on your client application?
>
>Also have a look at 
>http://cwiki.apache.org/confluence/display/GMOxDOC11/EJB+sample+application. 
>But it is not yet finished. Hope it this will help to you too.
>
>Regards,
>Lasantha Ranaweera
>Senior Software Engineer,
>Lanka Sofware Foundation,
>Sri Lanka.
>
>Dale de los Reyes wrote:
>>Hello,
>>
>>I need some help. I've been having problems accessing an entity bean from 
>>my session bean. I've coded similar EJBs before and they've successfully 
>>run on Geronimo 1.0. I tried using the upgrade.jar utility on these old 
>>beans, but was unable to get them to deploy. When the example programs 
>>became available, I gave up trying to use the upgrade tool. Now, the 
>>application seems to deploy just fine with no error messages being 
>>returned in the console window, but there are some debug messages in the 
>>log file.
>>
>>When I access my application, the session bean seems to locate the entity 
>>bean successfully. But when I call a method belonging to that entity bean, 
>>I get a "SystemExceptionInterceptor" warning. I'm not sure what this 
>>means, other than I'm doing something wrong.
>>
>>I'm using Geronimo 1.1 with Tomcat and Java 1.4.2_10. The descriptor files 
>>are modelled after the Bank demo supplied in the user manual which I was 
>>able to get running. My test application is deployed as an ear file via 
>>Hot Deployer.
>>
>>The descriptor files (ejb-jar.xml, openejb-jar.xml) and stack trace are 
>>below for my test application. I hope someone can point out what I'm 
>>missing or doing wrong.
>>
>>Thanks,
>>Dale
>>
>>
>>ejb-jar.xml
>>-----------
>>
>><?xml version="1.0" encoding="UTF-8"?>
>>
>><!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>
>>      <session>
>>         <ejb-name>ProcessCustomerSessionBean</ejb-name>
>>         <home>com.service.customer.ejb.ProcessCustomerHome</home>
>>         <remote>com.service.customer.ejb.ProcessCustomer</remote>
>>         
>><ejb-class>com.service.customer.ejb.ProcessCustomerSessionBean</ejb-class>
>>
>>         <session-type>Stateless</session-type>
>>         <transaction-type>Container</transaction-type>
>>
>>         <ejb-ref>
>>            <ejb-ref-name>ejb/CustomerHome</ejb-ref-name>
>>            <ejb-ref-type>Entity</ejb-ref-type>
>>            <home>com.service.customer.ejb.CustomerHome</home>
>>            <remote>com.service.customer.ejb.Customer</remote>
>>            <ejb-link>CustomerEntityBean</ejb-link>
>>         </ejb-ref>
>>      </session>
>>
>>      <entity>
>>         <ejb-name>CustomerEntityBean</ejb-name>
>>         <home>com.service.customer.ejb.CustomerHome</home>
>>         <remote>com.service.customer.ejb.Customer</remote>
>>         
>><ejb-class>com.service.customer.ejb.CustomerEntityBean</ejb-class>
>>
>>         <persistence-type>Bean</persistence-type>
>>         <prim-key-class>java.lang.String</prim-key-class>
>>         <reentrant>False</reentrant>
>>
>>         <resource-ref>
>>            <res-ref-name>jdbc/CustomerServiceDataSource</res-ref-name>
>>            <res-type>javax.sql.DataSource</res-type>
>>            <res-auth>Container</res-auth>
>>         </resource-ref>
>>      </entity>
>>   </enterprise-beans>
>>
>>   <assembly-descriptor>
>>      <container-transaction>
>>         <method>
>>            <ejb-name>ProcessCustomerSessionBean</ejb-name>
>>            <method-name>*</method-name>
>>         </method>
>>
>>         <trans-attribute>Required</trans-attribute>
>>      </container-transaction>
>>   </assembly-descriptor>
>></ejb-jar>
>>
>>*****
>>
>>openejb-jar.xml
>>---------------
>>
>><?xml version="1.0" encoding="UTF-8"?>
>>
>><openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1">
>>   <dep:environment 
>>xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
>>      <dep:moduleId>
>>         <dep:groupId>default</dep:groupId>
>>         <dep:artifactId>CustomerService-ejb</dep:artifactId>
>>         <dep:version>1.0</dep:version>
>>         <dep:type>jar</dep:type>
>>      </dep:moduleId>
>>
>>      <dep:dependencies>
>>         <dep:dependency>
>>            <dep:groupId>console.dbpool</dep:groupId>
>>            <dep:artifactId>CustomerServicePool</dep:artifactId>
>>            <dep:version>1.0</dep:version>
>>            <dep:type>rar</dep:type>
>>         </dep:dependency>
>>      </dep:dependencies>
>>
>>      <dep:hidden-classes/>
>>      <dep:non-overridable-classes/>
>>   </dep:environment>
>>
>>   <enterprise-beans>
>>      <session>
>>         <ejb-name>ProcessCustomerSessionBean</ejb-name>
>>         <jndi-name>ProcessCustomerRemoteSessionBean</jndi-name>
>>
>>         <ejb-ref>
>>            <ref-name>ejb/CustomerHome</ref-name>
>>            <ejb-link>CustomerEntityBean</ejb-link>
>>         </ejb-ref>
>>      </session>
>>
>>      <entity>
>>         <ejb-name>CustomerEntityBean</ejb-name>
>>         <jndi-name>CustomerRemoteEntity</jndi-name>
>>
>>         <resource-ref>
>>            <ref-name>jdbc/CustomerServiceDataSource</ref-name>
>>            <resource-link>CustomerServicePool</resource-link>
>>         </resource-ref>
>>      </entity>
>>   </enterprise-beans>
>></openejb-jar>
>>
>>*****
>>
>>This stack trace is taken from "geronimo-1.1/var/log/geronimo.log"
>>
>>09:28:35,491 DEBUG [GBeanSingleReference] Waiting to start 
>>default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=CustomerService-ejb.jar 
>>because no targets are running for reference J2EEApplication matching the 
>>patterns 
>>default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear
>>
>>09:28:35,631 DEBUG [GBeanSingleReference] Waiting to start 
>>default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=PubQueryEJB.jar 
>>because no targets are running for reference J2EEApplication matching the 
>>patterns 
>>default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear
>>
>>09:29:19,985 WARN  [SystemExceptionInterceptor] CustomerEntityBean
>>javax.transaction.TransactionRolledbackException: 
>>com.service.customer.ejb.CustomerEntityBean
>>     at 
>>org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:126)
>>
>>     at 
>>org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
>>
>>     at 
>>org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
>>
>>     at 
>>org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
>>     at 
>>org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164)
>>
>>     at 
>>org.openejb.proxy.EntityEJBHome$$EnhancerByCGLIB$$d8dd02dd.findByAll(<generated>)
>>
>>     at 
>>com.service.customer.ejb.ProcessCustomerSessionBean.findAllCustomers(ProcessCustomerSessionBean.java:70)
>>
>>     at 
>>com.service.customer.ejb.ProcessCustomerSessionBean$$FastClassByCGLIB$$5aed4974.invoke(<generated>)
>>
>>     at 
>>org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperation.java:90)
>>
>>     at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
>>     at 
>>org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java:72)
>>
>>     at 
>>org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(ComponentContextInterceptor.java:56)
>>
>>     at 
>>org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInterceptor.java:81)
>>
>>     at 
>>org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119)
>>
>>     at 
>>org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
>>
>>     at 
>>org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:98)
>>
>>     at 
>>org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:140)
>>
>>     at 
>>org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
>>
>>     at 
>>org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
>>
>>     at 
>>org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
>>     at 
>>org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164)
>>
>>     at 
>>org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$ba84632c.findAllCustomers(<generated>)
>>
>>     at 
>>com.service.customer.web.CustomerServiceJavaBean.getAllCustomers(CustomerServiceJavaBean.java:94)
>>
>>     at 
>>org.apache.jsp.customers.index_jsp._jspService(org.apache.jsp.customers.index_jsp:81)
>>
>>     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>     at 
>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
>>
>>     at 
>>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>>     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>     at 
>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>
>>     at 
>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>
>>     at 
>>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>
>>     at 
>>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>>
>>     at 
>>org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46)
>>
>>     at 
>>org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:342)
>>
>>     at 
>>org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:31)
>>
>>     at 
>>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>
>>     at 
>>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>
>>     at 
>>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>>
>>     at 
>>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
>>     at 
>>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>>
>>     at 
>>org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>>
>>     at 
>>org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
>>
>>     at 
>>org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>>
>>     at 
>>org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>
>>     at 
>>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>
>>     at java.lang.Thread.run(Thread.java:534)
>>
>>
>>
>



Re: Problem accessing Entity Bean, Getting SystemExceptionInterceptor warning

Posted by Lasantha Ranaweera <la...@opensource.lk>.
Hi Dale,

Can you give more information on your client application?

Also have a look at 
http://cwiki.apache.org/confluence/display/GMOxDOC11/EJB+sample+application. 
But it is not yet finished. Hope it this will help to you too.

Regards,
Lasantha Ranaweera
Senior Software Engineer,
Lanka Sofware Foundation,
Sri Lanka.

Dale de los Reyes wrote:
> Hello,
>
> I need some help. I've been having problems accessing an entity bean 
> from my session bean. I've coded similar EJBs before and they've 
> successfully run on Geronimo 1.0. I tried using the upgrade.jar 
> utility on these old beans, but was unable to get them to deploy. When 
> the example programs became available, I gave up trying to use the 
> upgrade tool. Now, the application seems to deploy just fine with no 
> error messages being returned in the console window, but there are 
> some debug messages in the log file.
>
> When I access my application, the session bean seems to locate the 
> entity bean successfully. But when I call a method belonging to that 
> entity bean, I get a "SystemExceptionInterceptor" warning. I'm not 
> sure what this means, other than I'm doing something wrong.
>
> I'm using Geronimo 1.1 with Tomcat and Java 1.4.2_10. The descriptor 
> files are modelled after the Bank demo supplied in the user manual 
> which I was able to get running. My test application is deployed as an 
> ear file via Hot Deployer.
>
> The descriptor files (ejb-jar.xml, openejb-jar.xml) and stack trace 
> are below for my test application. I hope someone can point out what 
> I'm missing or doing wrong.
>
> Thanks,
> Dale
>
>
> ejb-jar.xml
> -----------
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!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>
>      <session>
>         <ejb-name>ProcessCustomerSessionBean</ejb-name>
>         <home>com.service.customer.ejb.ProcessCustomerHome</home>
>         <remote>com.service.customer.ejb.ProcessCustomer</remote>
>         
> <ejb-class>com.service.customer.ejb.ProcessCustomerSessionBean</ejb-class> 
>
>         <session-type>Stateless</session-type>
>         <transaction-type>Container</transaction-type>
>
>         <ejb-ref>
>            <ejb-ref-name>ejb/CustomerHome</ejb-ref-name>
>            <ejb-ref-type>Entity</ejb-ref-type>
>            <home>com.service.customer.ejb.CustomerHome</home>
>            <remote>com.service.customer.ejb.Customer</remote>
>            <ejb-link>CustomerEntityBean</ejb-link>
>         </ejb-ref>
>      </session>
>
>      <entity>
>         <ejb-name>CustomerEntityBean</ejb-name>
>         <home>com.service.customer.ejb.CustomerHome</home>
>         <remote>com.service.customer.ejb.Customer</remote>
>         
> <ejb-class>com.service.customer.ejb.CustomerEntityBean</ejb-class>
>
>         <persistence-type>Bean</persistence-type>
>         <prim-key-class>java.lang.String</prim-key-class>
>         <reentrant>False</reentrant>
>
>         <resource-ref>
>            <res-ref-name>jdbc/CustomerServiceDataSource</res-ref-name>
>            <res-type>javax.sql.DataSource</res-type>
>            <res-auth>Container</res-auth>
>         </resource-ref>
>      </entity>
>   </enterprise-beans>
>
>   <assembly-descriptor>
>      <container-transaction>
>         <method>
>            <ejb-name>ProcessCustomerSessionBean</ejb-name>
>            <method-name>*</method-name>
>         </method>
>
>         <trans-attribute>Required</trans-attribute>
>      </container-transaction>
>   </assembly-descriptor>
> </ejb-jar>
>
> *****
>
> openejb-jar.xml
> ---------------
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1">
>   <dep:environment 
> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
>      <dep:moduleId>
>         <dep:groupId>default</dep:groupId>
>         <dep:artifactId>CustomerService-ejb</dep:artifactId>
>         <dep:version>1.0</dep:version>
>         <dep:type>jar</dep:type>
>      </dep:moduleId>
>
>      <dep:dependencies>
>         <dep:dependency>
>            <dep:groupId>console.dbpool</dep:groupId>
>            <dep:artifactId>CustomerServicePool</dep:artifactId>
>            <dep:version>1.0</dep:version>
>            <dep:type>rar</dep:type>
>         </dep:dependency>
>      </dep:dependencies>
>
>      <dep:hidden-classes/>
>      <dep:non-overridable-classes/>
>   </dep:environment>
>
>   <enterprise-beans>
>      <session>
>         <ejb-name>ProcessCustomerSessionBean</ejb-name>
>         <jndi-name>ProcessCustomerRemoteSessionBean</jndi-name>
>
>         <ejb-ref>
>            <ref-name>ejb/CustomerHome</ref-name>
>            <ejb-link>CustomerEntityBean</ejb-link>
>         </ejb-ref>
>      </session>
>
>      <entity>
>         <ejb-name>CustomerEntityBean</ejb-name>
>         <jndi-name>CustomerRemoteEntity</jndi-name>
>
>         <resource-ref>
>            <ref-name>jdbc/CustomerServiceDataSource</ref-name>
>            <resource-link>CustomerServicePool</resource-link>
>         </resource-ref>
>      </entity>
>   </enterprise-beans>
> </openejb-jar>
>
> *****
>
> This stack trace is taken from "geronimo-1.1/var/log/geronimo.log"
>
> 09:28:35,491 DEBUG [GBeanSingleReference] Waiting to start 
> default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=CustomerService-ejb.jar 
> because no targets are running for reference J2EEApplication matching 
> the patterns 
> default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear 
>
> 09:28:35,631 DEBUG [GBeanSingleReference] Waiting to start 
> default/CustomerService/1.0/ear?J2EEApplication=default/CustomerService/1.0/ear,j2eeType=EJBModule,name=PubQueryEJB.jar 
> because no targets are running for reference J2EEApplication matching 
> the patterns 
> default/CustomerService/1.0/ear?j2eeType=J2EEApplication,name=default/CustomerService/1.0/ear 
>
> 09:29:19,985 WARN  [SystemExceptionInterceptor] CustomerEntityBean
> javax.transaction.TransactionRolledbackException: 
> com.service.customer.ejb.CustomerEntityBean
>     at 
> org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:126) 
>
>     at 
> org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80) 
>
>     at 
> org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82) 
>
>     at 
> org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
>     at 
> org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164) 
>
>     at 
> org.openejb.proxy.EntityEJBHome$$EnhancerByCGLIB$$d8dd02dd.findByAll(<generated>) 
>
>     at 
> com.service.customer.ejb.ProcessCustomerSessionBean.findAllCustomers(ProcessCustomerSessionBean.java:70) 
>
>     at 
> com.service.customer.ejb.ProcessCustomerSessionBean$$FastClassByCGLIB$$5aed4974.invoke(<generated>) 
>
>     at 
> org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperation.java:90) 
>
>     at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
>     at 
> org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java:72) 
>
>     at 
> org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(ComponentContextInterceptor.java:56) 
>
>     at 
> org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInterceptor.java:81) 
>
>     at 
> org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119) 
>
>     at 
> org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80) 
>
>     at 
> org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:98) 
>
>     at 
> org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:140) 
>
>     at 
> org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80) 
>
>     at 
> org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82) 
>
>     at 
> org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
>     at 
> org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:164) 
>
>     at 
> org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$ba84632c.findAllCustomers(<generated>) 
>
>     at 
> com.service.customer.web.CustomerServiceJavaBean.getAllCustomers(CustomerServiceJavaBean.java:94) 
>
>     at 
> org.apache.jsp.customers.index_jsp._jspService(org.apache.jsp.customers.index_jsp:81) 
>
>     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>     at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) 
>
>     at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 
>
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 
>
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
>
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 
>
>     at 
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46) 
>
>     at 
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:342) 
>
>     at 
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:31) 
>
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 
>
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
>
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 
>
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
>     at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
>
>     at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 
>
>     at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667) 
>
>     at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 
>
>     at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) 
>
>     at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
>
>     at java.lang.Thread.run(Thread.java:534)
>
>
>