JSF EJB wird nicht injected

y0dA

Top Contributor
Hallo!
Technologien: JSF 2.0, EJB 3.1, JBossAS 6.0

Projektstruktur:
Ear (Ear Projekt)
Service (beinhaltet die EJBs --> @Stateless)
ServiceClient(beinhaltet die Interfaces von Service --> @Local)
Web (JSF 2.0 Mojarra)

Projekte habe ich mit dem Eclipse Wizard angelegt.
Nun habe ich auf den JBoss deployed (sprich das EAR in Eclipse dem JBoss geadded), der Server startet ohne Fehler, die Applikation ist ansprechbar nur wird folgendes nicht injected (ist eine Bean zu einer .xhtml):
Java:
public class TestBean {

	@EJB
	private TestServiceLocal testService;
	
	private String testText;

	public TestBean() {
		System.out.println("wir waren im konstruktor");
		testText = testService.doTest();
	}
	
	@PostConstruct
	public void init() {
		testText = testService.doTest();
	}
	
	public void setTestText(String testText) {
		this.testText = testText;
	}

	public String getTestText() {
		return testText;
	}
}

Java:
@Stateless
public class TestService implements TestServiceLocal {

	@Override
	public String doTest() {
		// TODO Auto-generated method stub
		return "Teststring";
	}

	
}

Java:
@Local
public interface TestServiceLocal {

	public abstract String doTest();
}

faces-config.xml
[xml]
<?xml version="1.0"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
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-facesconfig_2_0.xsd">
<managed-bean>
<managed-bean-name>testBean</managed-bean-name>
<managed-bean-class>de.xx.web.test.TestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

</faces-config>
[/xml]

web.xml
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_0.xsd"
version="3.0">
<display-name>Web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<description>JavaServer Faces 2.0 - Hello World</description>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<listener>
<listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class>
</listener>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>hello.xhtml</welcome-file>
</welcome-file-list>
</web-app>
[/xml]

Muss ich eventuell dem JBoss irgendein JAR ins lib legen?
Mein EAR Projekt (durch Eclipse erstellt) besitzt lediglich einen Ordner "EarContent" selbiger ist aber leer und sonst gibts in dem Projekt auch nix anderes.

Benutze:
[xml]
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>
[/xml]

--> kannte ich bisher nicht, habe immer mit
[xml]
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
[/xml]
gearbeitet nur gibt es hierzu kein 3.1
 
Zuletzt bearbeitet:

y0dA

Top Contributor
Logauszug beim Serverstart:
Code:
16:41:15,656 INFO  [org.jboss.ejb3.instantiator.deployer.BeanInstantiatorDeployerBase] Installed org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator@9cb796 into MC at org.jboss.ejb.bean.instantiator/STAEar/STAService/TestService
16:41:15,671 WARN  [org.jboss.ejb3.interceptor.InterceptorInfoRepository] EJBTHREE-1852: InterceptorInfoRepository is deprecated
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel] Created KernelDeployment for: Service.jar
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel] installing bean: jboss.j2ee:ear=Ear.ear,jar=Service.jar,name=TestService,service=EJB3
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel]   with dependencies:
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel]   and demands:
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	jboss.ejb:service=EJBTimerService; Required: Described
16:41:16,625 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	jboss-switchboard:appName=Ear,module=Service,name=TestService; Required: Create
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel]   and supplies:
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	jndi:Ear/TestService/local-de.xx.service.TestServiceLocal
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	jndi:Ear/TestService/local
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	jndi:TestService
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel] 	Class:de.xx.service.TestServiceLocal
16:41:16,656 INFO  [org.jboss.ejb3.deployers.JBossASKernel] Added bean(jboss.j2ee:ear=Ear.ear,jar=Service.jar,name=TestService,service=EJB3) to KernelDeployment of: Service.jar
16:41:17,640 INFO  [org.jboss.ejb3.session.SessionSpecContainer] Starting jboss.j2ee:ear=Ear.ear,jar=Service.jar,name=TestService,service=EJB3
16:41:17,687 INFO  [org.jboss.ejb3.EJBContainer] STARTED EJB: de.xx.service.impl.TestService ejbName: TestService
16:41:17,843 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

	Ear/TestService/local - EJB3.x Default Local Business Interface
	Ear/TestService/local-de.xx.service.TestServiceLocal - EJB3.x Local Business Interface
 

JimPanse

Bekanntes Mitglied
Hi,

die injection findet erst statt nach dem die ManagedBean initialisiert wird. Also ist der Aufruf im Konstrukor immer NULL! -> d.h. erst in der @PostConstruct Methode den Aufruf verwenden!

+ du hast vergessen in der web.xml

Code:
 <context-param>
  <param-name>com.sun.faces.injectionProvider</param-name>
  <param-value>org.jboss.web.jsf.integration.injection.JBossScanningInjectionProvider</param-value>
 </context-param>

+ soll laut Spec. die Perfomance der JSF-Anwendung steigern

Code:
<context-param>
  <param-name>com.sun.faces.serializationProvider</param-name>
  <param-value>org.jboss.web.jsf.integration.serialization.JBossSerializationProvider</param-value>
 </context-param>
 <context-param>


Greetz
 

y0dA

Top Contributor
Hi,

die injection findet erst statt nach dem die ManagedBean initialisiert wird. Also ist der Aufruf im Konstrukor immer NULL! -> d.h. erst in der @PostConstruct Methode den Aufruf verwenden!

Das mit dem Konstruktor war nur ein Versuch da er ins @PostConstruct gar nicht reinging.

Ok, habe nun
[xml]
<context-param>
<param-name>com.sun.faces.injectionProvider</param-name>
<param-value>org.jboss.web.jsf.integration.injection.JBossScanningInjectionProvider</param-value>
</context-param>
[/xml]
in der web.xml hinzugegeben, Erfolg hat es leider keinen gebracht - er geht mir einfach nicht in die @PostConstruct Methode (init()) ..

Vllt. liegt es am JBoss 6?
LT. Google benötigt man die common-annotations.jar für @PostConstruct - selbige liegt unter WEB-INF/lib - kann es also auch nicht sein.
faces-config.xml sowie web.xml Kopf passt?
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Hi,

kopier mal die jboss-faces.jar in dein WEB-inf/lib Verzeichnis und probiere es nochmal!

die lib findest du unter default/deploy/jbossweb.sar/jsf-libs.jar

das hat bei mir zum Erfolg geführt!

Ich arbeite noch mit JBoss 5 d.h. liegen in meinem WEB-INF/lib Verzeichnis die JSF 2.0 Libs -> falls du auch eine eigene JSF Version im Projekt verwendest und nicht die vom JBoss dann noch zusätzlich:


Code:
<context-param>
  <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
  <param-value>Mojarra-2.0</param-value>
 </context-param>
 <context-param>
  <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
  <param-value>true</param-value>
 </context-param>


Greetz
 

JimPanse

Bekanntes Mitglied
was unter jboss/server/default/deploy/jbossweb.sar/jsf-libs liegen keine JSF libs???????

ich arbeite zwar noch mit dem JBoss 5.1 aber irgendwie kann das nicht ganz hinauen... ich lade mir das teil mal runter.... mom
 

JimPanse

Bekanntes Mitglied
ok... hattest recht!

das ganze liegt jetzt in server/default/deployers/jsf-deployer/Mojarra-2.0/

dann kopier dir mal aus dem Verzeichnis die jboss-faces.jar in dein WEB-INF/Lib Verzeichnis...
 

y0dA

Top Contributor
Danke für deinen Einsatz!

Die von dir gewünschte JAR habe ich nun ins WEB-INF/lib Verzeichnis kopiert leider ohne Erfolg..
 

FArt

Top Contributor
Ich persönlich würde davon ausgehen, dass ich nicht der Erste bin, der mit JBoss 6.0.0 (final) ein EJB verwendet und mir somit auffällt, dass das Teil zwar JEE zertifiziert ist, aber es sich wohl durch die Zertifizierung gemogelt haben muss.

Somit würde ich von einem OSI-Layer-8 Problem ausgehen, vor dem schließlich niemand gefeit ist. Ich würde ein kleines, minimales Bean schreiben, deployen und sehen was passiert. Wenn es sich richtig verhält, würde ich langsam die Komplexität erhöhen, bis ich bei meinem Endergebnis angelangt bin. Entweder habe ich bis dahin meinen Fehler/Denkfehler entdeckt, oder ich habe ein sinnvolles Beispielprogramm, mit dem sich das Problem nachstellen lässt. Damit kann man dann einen Bug bei JBoss reporten.
 

mvitz

Top Contributor
Da du oben die Dependency angegeben hast, baust du mit maven? Du solltest nämlich den Scope dieser Dependency auf "provided" setzen, da diese sich ja im JBoss befindet.

Ansonsten habe ich dein Beispiel einmal nachgebaut und bei mir funktioniert das so einwandfrei.
 

y0dA

Top Contributor
Da du oben die Dependency angegeben hast, baust du mit maven? Du solltest nämlich den Scope dieser Dependency auf "provided" setzen, da diese sich ja im JBoss befindet.

Ansonsten habe ich dein Beispiel einmal nachgebaut und bei mir funktioniert das so einwandfrei.


Danke dir, die Dependencies bräuchte ich für Maven, aktuell läuft das ganze aber in Eclipse, sprich ich builde nicht selbst. Kann ich vllt das von dir nachgebaute Projekt mal haben?

Kann man beim JBoss eigentlich umstellen ob PARENT FIRST oder PARENT LAST?
 
Zuletzt bearbeitet:

mvitz

Top Contributor
Klar, siehe Anhang.

Ich hab es jetzt wohl als Maven Projekt und dann über die JBoss Admin Console deployed, da ich keinen Eclipse Adapter für JBoss AS 6 auf die schnelle installieren wollte.
 

Anhänge

  • de.mvitz.examples.jboss.zip
    28,7 KB · Aufrufe: 2

y0dA

Top Contributor
@mvitz
Habe mittels Maven grad ein EAR deines Projekts erzeugt und es funktioniert, umso mehr bin ich ratlos wo ich gefailed habe (eventuell die Eclipse Wizards?)
 

y0dA

Top Contributor
Konnte mittlerweile das Problem lokalisieren und beheben.
Im Detail hat mir Eclipse (Dynamic Web Project) ein paar JARs ins WEB-INF/libs Verzeichnis gelegt welche störend waren, selbige löschen und @PostConstruct wird aufgerufen.

Danke für eure Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M doGet()-Methode wird nicht geladen Allgemeines EE 3
B Datenbank Resource wird nicht gefunden Allgemeines EE 1
OnDemand JSF Stacktrace wird nicht korrekt ausgegeben Allgemeines EE 1
J Mit @Schedule annotierte Methode wird nach einer Weile nicht mehr ausgeführt (JBoss AS 7.2) Allgemeines EE 0
J JBoss, Eclipse, Webseite wird nicht angezeigt? Allgemeines EE 4
P Prozess wird nicht beendet Allgemeines EE 4
A action-Methode wird nicht aufgerufen Allgemeines EE 7
M taglib wird nicht gefunden Allgemeines EE 9
N JSF + Facelets: Datatable wird nicht angezeigt Allgemeines EE 1
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
P JSF Seite wird nicht gestartet Allgemeines EE 4
B FileInputStream(sPath); file wird nicht gefunden Allgemeines EE 5
F MyFaces und Tiles: <tiles:insert> wird nicht erkannt Allgemeines EE 10
A HttpUnit: Form wird nicht submitted Allgemeines EE 4
S package wird nicht gefunden Allgemeines EE 2
E Tomcat/Servlet Problem - Servlet wird nicht gefunden Allgemeines EE 8
M Servlet: CSS der JSP wird bei einem forward nicht gefunden? Allgemeines EE 2
D HTML-Code von JSP wird in Browser nicht angezeigt?! Allgemeines EE 3
S Drools - Stop sobald erste Regel getroffen wird Allgemeines EE 2
S a4j:ajax Event wird 2 Mal gefeuert. Allgemeines EE 0
A Wie kann ich verhinder, dass die seite angezeigt wird? Allgemeines EE 3
C JSP wird nur halb geladen Allgemeines EE 2
G jsp:getProperty wird mehrfach aufgerufen - Warum? Allgemeines EE 3
F doFilter wird zwei mal aufgerufen Allgemeines EE 5
M Action wird 2 mal durchlaufen Allgemeines EE 3
G welcher Appserver wird verwendet Allgemeines EE 4
H Servlet: init() wird 2x ausgeführt Allgemeines EE 8
G properties file im J2EE Server - wo wird genau gesucht? Allgemeines EE 6
F Servlet: DoPost wird zweimal aufgerufen Allgemeines EE 3
S ResSet wird "vernichtet" Allgemeines EE 5
thor_norsk Glassfish Server unter Windows startet nicht! Allgemeines EE 20
pkm Root resource - Klassen werden nicht gefunden. Allgemeines EE 2
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
J Ich kann Java JDK nicht downloaden Allgemeines EE 6
G Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden. Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
I XML mit JAXB und Annotations aufbauen klappt nicht wie gewollt Allgemeines EE 5
M JSF Binding greift nicht Allgemeines EE 0
D Remote Aufruf von EJB funktioniert nicht Allgemeines EE 1
D Websocket nach Decoder Annotation nicht mehr erreichbar Allgemeines EE 0
S JEE installation geht nicht? Allgemeines EE 6
D Einfaches Java Projekt funktioniert nicht Allgemeines EE 3
U @Inject funktioniert nicht Allgemeines EE 3
T wie static aber doch nicht ... Allgemeines EE 8
C Double Eingabe Felder sind nicht Leer Allgemeines EE 1
F SessionScoped und Stateful EJB: Werte werden nicht behalten Allgemeines EE 3
L JSF Primefaces breadcrumb - erstes Element funktioniert nicht Allgemeines EE 0
D Jboss löscht Archiv nicht beim Redeployed Allgemeines EE 3
M Konzeptfrage: Applicationserver, oder nicht? Allgemeines EE 4
E CDI mit verschiedenen Jars in EAR klappt auf Jboss AS 7.1.1.Final nicht Allgemeines EE 8
M Daten aus der Resource werden nicht übernommen Allgemeines EE 4
R MavenDependencyResolver nicht auflösbar Allgemeines EE 5
D [Glassfish EJB] OneToMany geht nicht Allgemeines EE 7
G JSF Beans nicht angezeigt Allgemeines EE 2
S JSF und CSS: background:url() geht nicht Allgemeines EE 2
S Eclipse: Teilmodule beim Testen werden nicht gestartet Allgemeines EE 2
H Bean läuft unter GlassFish, aber JBoss nicht Allgemeines EE 5
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
M JSP Ausgabe funktioniert nicht Allgemeines EE 4
F Webanwendung startet nicht richtig Allgemeines EE 6
B Tomcat6/axis1.4 kann nicht auf Dateien zugreifen Allgemeines EE 3
P Displaytag findet getter-Methode(n) nicht! Allgemeines EE 3
N Tomcat funktioniert nach shutdown/startup nicht mehr korrekt Allgemeines EE 9
F REST-Service: GET erkennt Veränderungen an der DB nicht. Allgemeines EE 2
T Applet mit XmlRpc läuft lokal nicht vollständig Allgemeines EE 4
S m2eclips + strust2 == geht nicht Allgemeines EE 5
C TransferObjects's in EJB 3 klappt nicht Allgemeines EE 2
P Kriege JAAS einfach nicht zum Laufen Allgemeines EE 3
A Servlet erkennt request Objekt nicht Allgemeines EE 8
A Java Tomcat findet Website nicht Allgemeines EE 8
D JSF-Tags können nicht aufgelöst werden ? Allgemeines EE 2
D Debug Modus im Glassfish 2.1 plötzlich nicht mehr möglich Allgemeines EE 2
J Einige Klassen werden nicht resolved Allgemeines EE 7
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
J Dinge, die man nicht tun sollte Allgemeines EE 6
I Klassen werden nicht für Import erkannt eclipse EE Allgemeines EE 2
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
T web-app läuft nicht Allgemeines EE 5
D ArrayList behält Werte nicht Allgemeines EE 2
D musicplayer spielt mit threads nicht mehr ab Allgemeines EE 3
0 myfaces staret nicht Allgemeines EE 1
A Warum werden die Managed Beans nicht erkannt? Allgemeines EE 3
A Tomcat startet nicht, Einstellungsfehler? Allgemeines EE 3
S MyFaces Sandbox: inputSuggest Komponente furnktioniet nicht Allgemeines EE 11
A cascade funzt nicht Allgemeines EE 8
K JSF Test Anwendung ausführen funktioniert nicht Allgemeines EE 7
B Faces Context nicht gefunden Allgemeines EE 4
M JSF Bilder werden wegen jsessionid nicht gefunden (nur IE) Allgemeines EE 6
K Download Dialog startet nicht Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
D warum ist gwt nicht beliebt ? Allgemeines EE 2
I Tomahawk funktioniert nicht Allgemeines EE 3
M Resourcen werden in JSP nicht gefunden Allgemeines EE 12
S Verdammt, MyFaces Sandbox 'läuft' nicht Allgemeines EE 7
T Ich raff es nicht . NotSerializableException Allgemeines EE 5
M Servlets | work - Klassen nicht im WAR File Allgemeines EE 5
E HTTP-GET// -->Eine URL aufrufen, aber nicht dahin navigie Allgemeines EE 2
J Direktaufruf einer jsp nicht zulassen Allgemeines EE 2
C WAS findet Jars in EAR nicht? Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben