[SPRING] Spring Bean으로 EJB 3 주입하기
SPRINGSpring Bean으로 EJB 3 주입하기
Spring (3.1.2) 서비스 (둘 다 다른 WAR에 있음)에 EJB를 삽입하려고합니다. 둘 다 매우 간단합니다 (예제를 단순화하기 위해 제거 된 메소드).
EJB :
@Remote
public interface MyBean {
}
@Singleton
public class MyBeanImpl implements MyBean{
}
서비스:
@Service
public class MyServiceImpl implements MyService{
}
언뜻보기에 매우 간단하지만 다음을 시도했습니다.
@EJB(lookup = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
그것은 작동하지 않았다. 다음 나는 또한 시도했다 :
@EJB(mappedName = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
과
@Resource(mappedName = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
그러나 어느 쪽도 일하지 않았다.
나는 다음을 사용하여 EJB를 주입 할 수 있었다.
<jee:jndi-lookup id="myBean" jndi-name="java:global/ejbApp/MyBeanImpl!com.my.MyBean" />
내 봄의 구성과 서비스에서 :
@Autowired
private MyBean myBean;
그러나 나는 정말로이 해결책을 좋아하지 않는다. 내가 할 수 있도록 일부 주석에 내 JNDI 경로를 갖고 싶습니다.
@EJB(lookup = MyBean.JNDI_NAME)
private MyBean myBean;
해결법
-
==============================
1.우리는 아주 좋은 간단한 해결책을 발견했습니다. 스프링 설정 파일에 다음을 넣어야합니다.
우리는 아주 좋은 간단한 해결책을 발견했습니다. 스프링 설정 파일에 다음을 넣어야합니다.
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"> <property name="alwaysUseJndiLookup" value="true" /> </bean>
그리고 스프링을 사용하면 JNDI에서 @Resource로 주석 처리 된 bean을 검색 할 수 있습니다. 이제는 할 수 있습니다.
@Resource(mappedName = MyBean.JNDI_NAME) private MyBean myBean;
-
==============================
2.XML을 없애거나 JNDI 이름을 주석에 넣으려고합니까? 전자의 경우 테스트하지는 않았지만 작동해야합니다.
XML을 없애거나 JNDI 이름을 주석에 넣으려고합니까? 전자의 경우 테스트하지는 않았지만 작동해야합니다.
@Configuration public class EjbCfg { @Bean public JndiObjectFactoryBean myBean() { JndiObjectFactoryBean factory = new JndiObjectFactoryBean(); factory.setJndiName(MyBean.JNDI_NAME); return factory; } }
이제 다음과 같이 간단히 삽입 할 수 있습니다.
@Autowired private MyBean myBean;
from https://stackoverflow.com/questions/12963405/injecting-ejb-3-into-spring-bean by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 프레임 워크 : 로케일 용 코드 아래에 메시지가 없습니다. (0) | 2019.01.05 |
---|---|
[SPRING] 'sessionFactory'라는 이름으로 빈을 생성하는 중 오류가 발생했습니다 : MalformedParameterizedTypeException (0) | 2019.01.05 |
[SPRING] 스프링 부트 JSF 통합 (0) | 2019.01.05 |
[SPRING] Spring 통합은 제어 버스를 통해 채널 어댑터를 수동으로 시작 / 중지합니다. (0) | 2019.01.05 |
[SPRING] 종속 항아리의 클래스에서 주석 자동 배선 (0) | 2019.01.05 |