Hi... I'm testing Orion and learning also EJB, so.. I have
bag full of questions...
First of all...
I'm getting this error trying to access an Entity CMP
EJB using JavaBeans.. What exactly does that means?
For reference, I have a Sybase datasource setup like that:
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="Sybase"
location="jdbc/SybaseCoreDS"
xa-location="jdbc/xa/SybaseXADS"
ejb-location="jdbc/SybaseDS"
connection-driver="com.sybase.jdbc2.jdbc.SybDriver"
username="sa"
password=""
url="jdbc:sybase:Tds:castro.intra:7100/adnetwork"
inactivity-timeout="30"
schema="database-schemas/sybase.xml"
max-connections="150"
/>
My ejb-jar.xml:
<ejb-jar>
<enterprise-beans>
<entity>
<description>Client Entity Bean</description>
<ejb-name>Client</ejb-name>
<home>br.com.adnetwork.adserver.admin.ClientHome</home>
<remote>br.com.adnetwork.adserver.admin.Client</remote>
<ejb-class>br.com.adnetwork.adserver.admin.ClientEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<cmp-field><field-name>client_id</field-name></cmp-field>
<cmp-field><field-name>name</field-name></cmp-field>
...
<primkey-field>client_id</primkey-field>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Client</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
My web.xml:
<web-app>
<display-name>Adserver Administration Web Application</display-name>
<servlet>
<servlet-name>ClientJSP</servlet-name>
<description>JSP that calls the Client EJB</description>
<jsp-file>Client.jsp</jsp-file>
</servlet>
<ejb-ref>
<ejb-ref-name>ejb/ClientHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>br.com.adnetwork.adserver.admin.ClientHome</home>
<remote>br.com.adnetwork.adserver.admin.Client</remote>
</ejb-ref>
</web-app>
In the ClientBean I reference the EJB like that:
java.lang.Object objref = ic.lookup("java:comp/env/ejb/ClientHome");
Basically.. I used the ejbmaker and added the possibility to create
all fields.. Maybe I'm not knowning what I'm doing, that's why I'm
asking the list..
On the ejbCreate/postCreate I have added all fields (collumns)...
Also I added all getXX/setXX methods on the ClientEJB and Client.
On the ClientHome I also added all fields on create.
Follows Stack trace:
8/9/00 12:53 PM Error in bean Client
com.evermind.server.rmi.OrionRemoteException: Error enlisting connection
resource, system error: javax.transaction.SystemException: Failed to add
the resource due to error in the resource
at com.evermind.server.ApplicationServerTransaction.getConnection(JAX)
at Client_EntityBeanWrapper27.loadState(Client_EntityBeanWrapper27.java:10051)
at
ClientHome_EntityHomeWrapper29.findExistingEntity(ClientHome_EntityHomeWrapper29.java:37)
at
ClientHome_EntityHomeWrapper29.findByPrimaryKey(ClientHome_EntityHomeWrapper29.java:269)
at
br.com.adnetwork.adserver.admin.ClientBean.processRequest(ClientBean.java:74)
at /Client.jsp._jspService(/Client.jsp.java:102) (JSP page line 5)
at com.evermind.server.http.EvermindHttpJspPage.service(JAX)
at com.evermind.server.http.HttpApplication.t5(JAX)
at com.evermind.server.http.JSPServlet.service(JAX)
at com.evermind.server.http.di.pw(JAX)
at com.evermind.server.http.di.forward(JAX)
at com.evermind.server.http.dr.p1(JAX)
at com.evermind.server.http.dr.p0(JAX)
at com.evermind.util.f.run(JAX)
Nested exception is:
javax.transaction.SystemException: Failed to add the resource due to error
in the resource
at com.evermind.server.ApplicationServerTransaction.enlistResource(JAX)
at com.evermind.server.ApplicationServerTransaction.getConnection(JAX)
at Client_EntityBeanWrapper27.loadState(Client_EntityBeanWrapper27.java:10051)
at
ClientHome_EntityHomeWrapper29.findExistingEntity(ClientHome_EntityHomeWrapper29.java:37)
at
ClientHome_EntityHomeWrapper29.findByPrimaryKey(ClientHome_EntityHomeWrapper29.java:269)
at
br.com.adnetwork.adserver.admin.ClientBean.processRequest(ClientBean.java:74)
at /Client.jsp._jspService(/Client.jsp.java:102) (JSP page line 5)
at com.evermind.server.http.EvermindHttpJspPage.service(JAX)
at com.evermind.server.http.HttpApplication.t5(JAX)
at com.evermind.server.http.JSPServlet.service(JAX)
at com.evermind.server.http.di.pw(JAX)
at com.evermind.server.http.di.forward(JAX)
at com.evermind.server.http.dr.p1(JAX)
at com.evermind.server.http.dr.p0(JAX)
at com.evermind.util.f.run(JAX)
Best regards,
EC