2009-03-10 5 views
1

Было мое понимание, что JBossAS 5.x поддерживает EJB3-бобинную инъекцию в сервлетах с помощью аннотации @ EJB3. Я использую конфигурацию по умолчанию для JBossAS 5.0.1.GA, и она не работает. Я добавил аргумент mappedName в аннотацию @EJB с именем JNDI в сессионных компонентах, и он просто ничего не делает. Нет очевидных ошибок, этот компонент никогда не вводится.JBoss 5 AS и EJB3 инжекция бобов из сервлетов?

Сессионные бобы находятся в ejb-банке, сервлетах в войне, все упаковано в ухо. Ручной поиск JNDI работает просто отлично. Есть идеи?

ответ

0

Это может произойти, если ваш 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"> 

Это link может помочь немного слишком.

+0

Спасибо! Одно небольшое предостережение, кажется, что пространство имен должно быть http://java.sun.com/xml/ns/javaee, а не http://java.sun.com/xml/ns/j2ee. Итак, я изменил на: xmlns = "http://java.sun.com/xml/ns/javaee" xsi: schemaLocation = "http://java.sun.com/xml/ns/javaee web- app_2_5.xsd» – joshz

0

Вы также должны проверить файл jar, необходимый для развертывания EJB3 в файле pathpath. JAr - jboss-ejb3-ext-api.jar.