JBoss 5.1.0 GA中的@EJB?

Nik*_*hil 4 java jboss java-ee ejb-3.0

我一直在努力争取这一段时间.

我正在尝试为EJB 3.0做好准备.我正在使用JBoss 5.1.0 GA作为我的应用程序服务器.我从非常简单的无状态会话bean开始,使用本地接口和一个简单的jsp-servlet客户端调用会话bean方法.所有这一切,我一直在尝试使用@EJB注释将会话bean注入servlet类.

public class SampleServlet extends HttpServlet {

    @EJB
    private PersonLocal person;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        System.out.println("In servlet");       
        response.getWriter().write("Person Name : "+person.getName());
        System.out.println(person.getName());       
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用JBoss 5.1.0 GA和默认配置.(我也试过所有配置)

但是,我曾经得到会话bean注入的空引用.经过一天左右的努力之后,我终于尝试了丑陋的EJB 2.x JNDI查找方法,而不是@EJB使用jndi.properties文件中指定的jndi配置的注释,它没有任何其他更改!

现在,我试图在JBoss文档中找出JBoss 5.1.0 GA是否支持带@EJB注释的注入,但是找不到具体的答案.那么有人可以告诉我它是否呢?因为我真的更喜欢注释而不是JNDI查找(我的意思是,谁不会?).我错过了什么......?

可能应该把它放在JBoss论坛中,但是......我沉迷于这个地方;-)

Pas*_*ent 5

这是JBoss 5.x肯定支持的,因为它已通过Java EE 5认证.

实际上,我建议查看第11章JBoss EJB3教程的Servlet中的EJB注入简介,它们描述了一个详细的分步示例.

并特别注意以下注意事项:

要在Web模块中进行注入,您的web.xml应使用2.5版本的web-app xsd:

<web-app version="2.5"
  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/web-app_2_5.xsd">
Run Code Online (Sandbox Code Playgroud)

  • 我想知道有多少关于SO的servlet/jsp问题已经通过修复`web-app version`来解决..... (3认同)