JAX-RS 웹 서비스에 EJB 삽입
문제 설명:
상태 비저장 EJB를 JAX-RS 웹 서비스에 삽입하려는 시도에서 주석을 사용하는 JAX-RS 웹 서비스의 경우 EJB 인스턴스는 서비스 클래스에서 null로 유지되어 사용 시 NullPointerException이 발생합니다.
환경 세부 정보:
- Glassfish 3.1
- Netbeans 6.9 RC 2
- Java EE 6
솔루션 옵션:
옵션 1 : 주입 공급자 SPI를 사용하여 주입
- EJB 조회 및 주입을 수행하는 사용자 지정 주입 공급자를 구현합니다.
- 예를 들어 Jersey 1.17에서는 다음과 같습니다.
import com.sun.jersey.core.spi.component.ComponentContext;
import ...
public class EJBProvider implements InjectableProvider<EJB, Type> {
// Implementation details...
}
옵션 2: 리소스 클래스를 EJB로 변환
- JAX-RS 리소스 클래스를 Stateless EJB 자체로 만들어 자체적으로 관리할 수 있도록 합니다. dependency.
옵션 3: CDI 활용
- CDI(컨텍스트 및 종속성 주입)를 사용하여 EJB를 JAX-RS 리소스 클래스에 주입합니다. .
예:
@Path("book")
@RequestScoped
public class BookResource {
@Inject
private BookEJB bookEJB;
// Implementation details...
}
추가 리소스:
- [EJB 주입]( https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html)
- [@EJB 주입](https://stackoverflow.com/questions/1130846/ejb- 주입)
- [REST 서비스를 EJB 3.1과 결합](https://dzone.com/articles/combining-rest-services-with-ejb-31)
- [EJB 3.1 및 REST - 경량 하이브리드](https://weblogs.java.net/blog/emcfarlane/archive/2009/12/10/ejb-31-and-rest-lightweight-hybrid)
- [EJB 주입 전쟁 중 jar에서 jax-rs 클래스로](https://stackoverflow.com/questions/6474811/injecting-an-ejb-from-a-jar-into-a-jax-rs-class-in- 전쟁)
위 내용은 상태 비저장 EJB를 JAX-RS 웹 서비스에 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!