To introduce an ejb 3 bean into a spring bean, you can follow these steps. 1. Create a spring bean 2. Create your EJB using a remote and local interface 3. Write an implementation class for example.
package com.ejb;
@Local
public interface MyEjbLocal{
public String sendMessage();
}
package com.ejb;
@Remote
public interface MyEjbRemote{
public String sendMessage();
}
@Stateless(mappedName = "ejb/MessageSender")
public class MyEjbImpl implements MyEjbLocal, MyEjbRemote{
public String sendMessage(){
return "Hello";
}
}
EJB3, ,
spring bean, ejb.
package com.ejb;
@Service
public class MyService {
private MyEjbLocal ejb;
public void setMyEjbLocal(MyEjbLocal ejb){
this.ejb = ejb;
}
public MyEjbLocal getMyEjbLocal(){
return ejb;
}
}
ejb spring, spring spring-config.xml.
ejb spring bean
<bean id ="myBean" class="org.springframework.ejb.access.LocalStetelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/MessageSender#com.ejb.MyEjb=Local />
<property name="businessInterface" value="com.ejb.MyEjbLocal" />
</bean>
. , Remote .
- ejb
<jee:remote-slsb id="messageSender"
jndi-name="ejb/MessageSender#com.ejb.MyEjbLocal"
business-interface="com.ejb.MyEjbLocal"
home-interface="com.ejb.MyEjbLocal"
cache-home="false" lookup-home-on-startup="false"
refresh-home-on-connect-failure="true" />
, bean , ejb spring bean.