lib jar で宣言された dao Bean の注入に問題があります。したがって、永続化コンテキスト、エンティティ、およびダオスを備えたjar(私のもの)があります。これがdaoの例です:
@Stateless
public class SomeDao {
@PersistenceContext
private EntityManager em;
...
}
今度は、この dao をメイン アプリケーションで使用したいと考えています。
jax-rs ユースケース:
@Path("rs")
public class WebService{
@Inject
private SomeDao dao;
@POST
public Response doPost(){
//dao is injected but nullpointer thrown on EntityManager
dao.doSomething();
}
...
}
両方のプロジェクトに beans.xml があります (lib の場合は META-INF/、Web アプリケーションの場合は WEB-INF/ の下)。このように :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
- - - - - - - 編集 - - - - - -
@Stateless アノテーションとプロデューサーを削除すると、それが機能することがわかりました。したがって、問題は実際には次のとおりです。lib jarで宣言されたEJBをCDIで注入する方法。