Dependency injection 在struts2操作中注入EJB?
我正在使用struts2,EJB3.0。。。 我的需求是从struts2操作类调用EJB层。 我希望有两种方法可以实现这一目标:Dependency injection 在struts2操作中注入EJB?,dependency-injection,struts2,annotations,ejb-3.0,Dependency Injection,Struts2,Annotations,Ejb 3.0,我正在使用struts2,EJB3.0。。。 我的需求是从struts2操作类调用EJB层。 我希望有两种方法可以实现这一目标: 1.Using @EJB annotation in Action class 2.Using JNDI look up 我两个都试过了, 但是JNDI查找的问题是,即使我使用了正确的命名,我也会得到NameNotFoundException。因此,最终,我的团队转向了另一种使用@EJB注释的方法 但是,当我使用@EJB注释时,我认为它没有被注入: 我得到了Nul
1.Using @EJB annotation in Action class
2.Using JNDI look up
我两个都试过了,
但是JNDI查找的问题是,即使我使用了正确的命名,我也会得到NameNotFoundException。因此,最终,我的团队转向了另一种使用@EJB注释的方法
但是,当我使用@EJB注释时,我认为它没有被注入:
我得到了NullPointerException
代码:
@EJB(mappedName="BeanLocal/local")
BeanLocal bean ;
谁能建议我进一步做些什么。。。
另外,如果SOF中有任何链接,请务必联系我,因为我没有发现任何与此相关的内容您不能在Struts 2操作类中使用传统的依赖项注入,因为操作是不受管理的。但是,有一种方法可以通过使用or来实现这一点。
您也可以使用JNDI查找,但语法取决于您的服务器。您最好的选择是根据您拥有的内容检查文档,…您不能在Struts 2操作类中使用传统的依赖项注入,因为操作是不受管理的。但是,有一种方法可以通过使用or来实现这一点。
您也可以使用JNDI查找,但语法取决于您的服务器。您最好的选择是根据您所拥有的内容检查文档,我也遇到了同样的问题,下面是我如何解决它的 正如Shinosha所说,@EJB注释将无法工作,因为操作类由Struts容器管理 为了使用JNDI查找,我必须使bean@Remote并指定一个mappedName。那么代码如下所示,这取决于您使用的服务器,在我的例子中是Weblogic:
Context ctx = new InitialContext();
MyBean bean= (MyBean) ctx.lookup("MyBeanMappedName#myapp.MyBean");
查找字符串应该是bean的完全限定名。我遇到了同样的问题,下面是我如何解决它的 正如Shinosha所说,@EJB注释将无法工作,因为操作类由Struts容器管理 为了使用JNDI查找,我必须使bean@Remote并指定一个mappedName。那么代码如下所示,这取决于您使用的服务器,在我的例子中是Weblogic:
Context ctx = new InitialContext();
MyBean bean= (MyBean) ctx.lookup("MyBeanMappedName#myapp.MyBean");
查找字符串应该是bean的完全限定名。我编写了以下拦截器来解决这个问题。查看并分享您可能获得的任何反馈:
我编写了以下拦截器来解决这个问题。查看并分享您可能获得的任何反馈:
CDI插件可能是最好的方法,但是你也可以手动操作,一个la。CDI插件可能是最好的方法,但是你也可以手动操作,一个la。