我用谷歌搜索,试图理解为什么 Weblogic 10.3.4 没有将 EJB 注入到 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 仍然为空?谢谢你。