gpt4 book ai didi

java - 将 EJB 注入(inject) servlet

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:12 24 4
gpt4 key购买 nike

我用谷歌搜索试图理解为什么 Weblogic 10.3.4 没有将 EJB 注入(inject) servlet 中的注释字段。

Ear 包含定义 DAO EJB 的 ejb.jar 和带有 TestServlet 的 web.war。

PluginDataDAO.java

@Stateless
public class PluginDataDAO implements IPluginDataDAO {

}

IPluginDataDAO.java

@Local
public interface IPluginDataDAO {

}

TestServlet.java

public class TestServlet extends HttpServlet {
@EJB(mappedName = "PluginDataDAO")
private IPluginDataDAO pluginDataDAO;
}

web.xml

<web-app version="2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID">
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>cz.literak.blog.j2ee.TestServlet</servlet-class>
</servlet>

Servlet 在web.war 里面,EJB 在ejb.jar 里面。我尝试了带/不带映射名称属性的注释,但没有成功。当我尝试将 web.xml 升级到 3.0 时,部署失败,未枚举 3.0。怎么了?为什么 pluginDataDAO 仍然为空?谢谢。

最佳答案

我有同样的问题,用@ManagedBean解决了它:

@ManagedBean
public class TestServlet extends HttpServlet {
@EJB(mappedName = "PluginDataDAO")
private IPluginDataDAO pluginDataDAO;

关于java - 将 EJB 注入(inject) servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com