Hi,

I'm running jBoss on Linux, JDK 1.2.2.  I'm having a problem with an
Entity bean.  I suspect I'm not configured properly for BMP.  The
examples I've seen on the web are for CMP.  The information in
http://www.jboss.org/contconf_howto.html refers to "standardjboss.xml",
but there is no such file in my distribution, so I can't study it.

My client code does this:

User u = home.findByPassword( username, pw );
UserInfo info = u.getInfo();

The finder method works and returns a remote reference.  (The "ejbFind"
method of the bean is called, but not the "ejbLoad" method.)

The second method, however, causes the server to fail.  It gives the
trace shown below, saying something about "isn't in the cache".  My
"ejbLoad" method is never called.  I've put my deployment descriptor at
the bottom for reference.

Thanks for any help you can give me.
- Keith

NOTE:  I'm running this application in Jonas without problems.
Therefore, I'm assuming the problem has to do with configuration of
jBoss.

[User] ejbFindByPassword: user5, pw=6A696D6D79
[User] SELECT userName FROM users WHERE username='user5' AND
_password='6A696D6D79';
[User] FOUND: user5
[User] TRANSACTION ROLLBACK EXCEPTION:Can't remove bean with id = user5:
it isn't in the cache.; nested exception is:
java.lang.IllegalStateException: Can't remove bean with id = user5: it
isn't in the cache.
[User] java.lang.IllegalStateException: Can't remove bean with id =
user5: it isn't in the cache.
[User]  at
org.jboss.ejb.plugins.EnterpriseInstanceCache.remove(EnterpriseInstanceC
ache.java:142)
[User]  at
org.jboss.ejb.plugins.EntityInstanceCache.remove(EntityInstanceCache.jav
a:64)
[User]  at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInt
erceptor.java:211)
[User]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java,
Compiled Code)
[User]  at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptor
CMT.java, Compiled Code)
[User]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[User]  at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.jav
a:144)
[User]  at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
[User]  at
org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:316)
[User]  at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContai
nerInvoker.java:222)
[User]  at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContai
nerInvoker.java:187)
[User]  at java.lang.reflect.Method.invoke(Native Method)
[User]  at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java, Compiled
Code)
[User]  at sun.rmi.transport.Transport$1.run(Transport.java, Compiled
Code)
[User]  at java.security.AccessController.doPrivileged(Native Method)
[User]  at sun.rmi.transport.Transport.serviceCall(Transport.java,
Compiled Code)
[User]  at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java,
Compiled Code)
[User]  at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.ja
va, Compiled Code)
[User]  at java.lang.Thread.run(Thread.java, Compiled Code)

------------------------------------------------------------------------
---------
<!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>
      <description>Deployment descriptor for KLM's User
example</description>
      <ejb-name>Message</ejb-name>
      <home>com.idisys.msg.ejb.MessageHome</home>
      <remote>com.idisys.msg.ejb.Message</remote>
      <ejb-class>com.idisys.msg.ejb.MessageBean</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/MessageDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
      </resource-ref>
    </entity>
    <session>
      <ejb-name>MessageSearch</ejb-name>
      <home>com.idisys.msg.search.MessageSearchHome</home>
      <remote>com.idisys.msg.search.MessageSearch</remote>
      <ejb-class>com.idisys.msg.search.MessageSearchBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <env-entry>
<env-entry-name>prop1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>prop1 value</env-entry-value>
      </env-entry>
      <resource-ref>
<res-ref-name>jdbc/MessageDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
      </resource-ref>
      <resource-ref>
<res-ref-name>Message</res-ref-name>
<res-type>com.idisys.msg.ejb.MessageHome</res-type>
<res-auth>Container</res-auth>
      </resource-ref>
    </session>
    <entity>
      <description>Deployment descriptor for KLM's User
example</description>
      <ejb-name>User</ejb-name>
      <home>com.idisys.user.ejb.UserHome</home>
      <remote>com.idisys.user.ejb.User</remote>
      <ejb-class>com.idisys.user.ejb.UserBean</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/UserDataSource</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>MessageSearch</ejb-name>
<method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
      <method>
<ejb-name>Message</ejb-name>
<method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
      <method>
<ejb-name>User</ejb-name>
<method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>


Keith L. Musser
Integrated Dynamics, Inc.
812-371-7777
email:  [EMAIL PROTECTED]





--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to