2009-03-10 5 views
1

Es war mein Verständnis, dass JBossAS 5.x die EJB3-Bean-Injektion in Servlets mit der @ EJB3-Annotation unterstützte. Ich verwende die Standardkonfiguration für JBossAS 5.0.1.GA und es funktioniert nicht. Ich habe das Argument mappedName der @ EJB-Annotation mit dem JNDI-Namen der Session-Beans hinzugefügt, und es tut einfach nichts. Keine offensichtlichen Fehler, die Bohne wird einfach nie eingespritzt.JBoss 5 AS und EJB3 Bean Injektion von Servlets?

Die Session-Beans sind im EJB-Jar, die Servlets in einem Krieg, alles ist in einem Ohr verpackt. Manuelle JNDI-Lookups funktionieren einwandfrei. Irgendwelche Ideen?

Antwort

0

Dies kann passieren, wenn Ihre web.xml auf eine ältere Version der Spezifikation verweist. Idealerweise sollte es so etwas wie

<?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"> 

Diese link kann helfen, ein wenig sein.

+0

Danke! Ein kleiner Vorbehalt, es scheint, dass der Namensraum http://java.sun.com/xml/ns/javaee sein sollte, nicht http://java.sun.com/xml/ns/j2ee. Also änderte ich zu: xmlns = "http://java.sun.com/xml/ns/javaee" xsi: schemaLocation = "http://java.sun.com/xml/ns/javaee web- app_2_5.xsd " – joshz

0

Sie sollten auch die JAR-Datei überprüfen, die für die EJB3-Bereitstellung im Klassenpfad benötigt wird. Die JAR-Datei ist jboss-ejb3-ext-api.jar.

Verwandte Themen