我的理解是 JBossAS 5.x 支持在带有 @EJB3 注释的 servlet 中注入 EJB3 bean。我正在使用 JBossAS 5.0.1.GA 的默认配置,但它不起作用。我已经将 mappedName 参数添加到带有会话 bean JNDI 名称的 @EJB 注释中,它只是没有做任何事情。没有明显的错误,只是从未注入过 bean。
会话 bean 在 ejb-jar 中,servlet 在一个战争中,一切都打包在一个耳朵里。手动 JNDI 查找工作得很好。有任何想法吗?
如果您的 web.xml 指向旧版本的规范,则可能会发生这种情况。理想情况下,它应该类似于
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
此链接也可能有所帮助。
您还应该在 classpath.JAr 文件中检查 EJB3 部署所需的 jar 文件是 jboss-ejb3-ext-api.jar。