Jpa HK2-3注射液
我遵循22.1。实现自定义注入提供程序段落 我能够按照本文描述的步骤开发自己的可注入自定义注释: 因此,我使用以下部署说明绑定我的injectionresolver:Jpa HK2-3注射液,jpa,cdi,jersey-2.0,ejb-3.1,jta,Jpa,Cdi,Jersey 2.0,Ejb 3.1,Jta,我遵循22.1。实现自定义注入提供程序段落 我能够按照本文描述的步骤开发自己的可注入自定义注释: 因此,我使用以下部署说明绑定我的injectionresolver: <servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.klopotek.klas.auth.injection.PrincipalConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
@Context和@MyAnnot都可以正常工作,因为@Context注释是在Jersey容器中处理的
现在我想将JPA和JTA用于我的持久层。
我的最终代码应该如下所示:
@Path("modelORA")
public class ModelRetrieverORA {
@PersistenceContext (unitname="myName")
EntityManager manager;
@Resource
UserTransaction transaction;
@Context
SecurityContext securityContext;
@Context
private UriInfo uriInfo;
@MyAnnot
private Myinjectable Principal;
但当然,manager和transaction都是空的。注射没有发生
我认为问题与Jersey2使用的HK2注入引擎(我需要它是因为我的自定义注释)或我的应用服务器中的CDI引擎(tomcat或wildfly 9)有关。
那么,我该如何向WELD或任何CDI引擎注入事务和JPA管理器呢?尝试在ws类开头的@Path(“modelORA”)注释上方添加@Stateless注释。感谢您的回答。。。我刚才做了,但没有任何改变…@Stateless(name=“RestServiceModelORA”)@TransactionManagement(TransactionManagementType.BEAN)。。。仍然为空值您在哪个服务器上运行应用程序?我在Wildfly 9上运行,最后一次使用它。。。你可以阅读。如果您通过“HK2 Jersey entitymanager injection”进行搜索,则在同一方向的互联网上会有更多资源。
@Path("modelORA")
public class ModelRetrieverORA {
@PersistenceContext (unitname="myName")
EntityManager manager;
@Resource
UserTransaction transaction;
@Context
SecurityContext securityContext;
@Context
private UriInfo uriInfo;
@MyAnnot
private Myinjectable Principal;