[jboss-user] [EJB 3.0] - Inject EJB 2.1 Entity Home into EJB 3.0 session beans using
benwalker_vf
do-not-reply at jboss.com
Wed Mar 5 12:24:34 EST 2008
Hi,
Has anyone been able to inject a 2.1 entity bean home into 3.0 session bean using the @EJB annotation in jboss-5.0.0.Beta4?
I have tried the following (fairly sure it should work according to EJB3 spec)
Session Fragment: -
| @Stateless(name="ExampleService")
| @Local(ExampleService.class)
| @Remote(ExampleServiceRemote.class)
| @TransactionAttribute(REQUIRED)
| public class ExampleServiceBean implements ExampleService,ExampleServiceRemote,Serializable {
|
| private static final long serialVersionUID = -7533521006618484580L;
|
| @EJB
| private Example21EntityHome example21EntityHome;
|
| private static Logger logger = Logger.getLogger(ExampleServiceBean.class);
|
| /**
| * Does what ever you tell it too
| * @param whatToDo request text
| * @return string response text
| */
| public String doSomething(String whatToDo) {
|
|
| String doing = "doing " + whatToDo;
|
| try {
| example21EntityHome.create(doing);
| } catch (CreateException e) {
|
| logger.error("Unable to create 2.1 entity bean",e);
| }
|
| logger.info(doing);
| return doing;
|
| }
|
|
|
| }
Entity Fragment : -
| public abstract class Example21EntityBean extends EntityAdapter implements Serializable {
|
| public abstract Integer getPk();
|
| public abstract void setPk(Integer pk);
|
| public abstract String getData();
|
| public abstract void setData(String data);
|
| public Integer ejbCreate(String data) throws CreateException {
| // dummy, pk set by auto-generated-pk
| setPk(0);
| setData(data);
| return null;
| }
|
| public void ejbPostCreate(String data) {
| // empty implementation
|
| }
| }
2.1 Entity Bean Deployment Descriptor
| <?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>
| <display-name>Example 21 Legacy</display-name>
| <enterprise-beans>
| <entity>
| <ejb-name>Example21Entity</ejb-name>
| <local-home>com.entitybean21.Example21EntityHome</local-home>
| <local>com.entitybean21.Example21Entity</local>
| <ejb-class>com.entitybean21.Example21EntityBean</ejb-class>
| <persistence-type>Container</persistence-type>
| <prim-key-class>java.lang.Integer</prim-key-class>
| <reentrant>false</reentrant>
| <abstract-schema-name>Example21Entity</abstract-schema-name>
| <cmp-field>
| <description>This is the PK</description>
| <field-name>pk</field-name>
| </cmp-field>
| <cmp-field>
| <field-name>data</field-name>
| </cmp-field>
| <primkey-field>pk</primkey-field>
| </entity>
| </enterprise-beans>
| <assembly-descriptor>
| <container-transaction>
| <method>
| <ejb-name>Example21Entity</ejb-name>
| <method-name>create</method-name>
| </method>
| <trans-attribute>Required</trans-attribute>
| </container-transaction>
| <container-transaction>
| <method>
| <ejb-name>Example21Entity</ejb-name>
| <method-name>*</method-name>
| </method>
| <trans-attribute>Supports</trans-attribute>
| </container-transaction>
| </assembly-descriptor>
| </ejb-jar>
|
However, on deployment I get the following stack trace: -
| 17:13:58,517 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
|
| *** CONTEXTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State}
|
| jboss.j2ee:ear=example.ear,jar=example-ejb.jar,name=ExampleService,service=EJB3
| -> <UNKNOWN>{Described:** UNRESOLVED Demands 'Class:com.entitybean21.Example21EntityHome **}
| -> <UNKNOWN>{Described:** UNRESOLVED Demands 'jboss.ejb:service=EJBTimerService **}
|
|
| *** CONTEXTS IN ERROR: Name -> Error
|
| <UNKNOWN> -> ** UNRESOLVED Demands 'jboss.ejb:service=EJBTimerService **
|
NB Packaged as two ejb jar files in the same ear to get around issue posted @ http://www.jboss.org/?module=bb&op=viewtopic&t=103268
Has anyone tried to do something similar? Is this supported functionality?
Thanks
Ben
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134346#4134346
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134346
More information about the jboss-user
mailing list