目前我们使用Spring 4并且有一个Java类加载我们所有的xml-config文件:
每个孩子都知道它的父母的豆子,而且每个人都可以正常工作。现在,我必须在Websphere Application Server上使用IBM EJB与遗留系统进行通信。这个EJB被调用,现在我想使用我们的Spring Context来获得一些服务。
EJB定义为
@Stateless(mappedName = "ejb/LegacyRocks")
@RemoteHome(com.ibm.websphere.ola.ExecuteHome.class)
public class WolaUseCaseOne {...}
我已经阅读了有关SpringBeanAutowiringInterceptor的内容,但我不明白这一点。我没有一个简单的xml文件来加载,所以任何人都可以用另一种方式为EJB内部的autowire mit Spring Beans提供吗?
PS: 我也找到了这篇文章(http://www.schakko.de/2013/10/11/sharing-the-spring-application-context-from-a-war-with-ejbs/),但我们不使用JSF而且它对我没有帮助
我已经读过,没有办法注入完整的上下文,因为我们有一个Web应用程序上下文,并且EJB中没有这样的Web上下文......?
答案 0 :(得分:0)
您需要按照以下
创建ejbFirefoxProfile.layoutOnDisk
您需要使用
实现spring服务类@Local
public interface TestManager {
boolean isValid();
}
@Stateless(name = "java:global/TestManagerImpl", mappedName = "java:global/TestManagerImpl")
@EJB(name = "java:global/TestManagerImpl", beanInterface = TestManager.class)
public class TestManagerImpl implements TestManager {
@PostConstruct
public void ejbCreate() {
}
@PreDestroy
public void ejbDestroy() {
}
@Override
public boolean isValid(){
//your code
}
}
已修改
将ejb调用为spring service方法
@Service(value = "testServiceImpl")
public class TestServiceImpl {
@EJB(name = "java:global/TestManagerImpl", mappedName = "java:global/TestManagerImpl")
private TestManager testManager;
@Override
public boolean isValid(){
retrun testManager.isValid();
}
}
希望它对你有用!!