JSF und AJAX - managedBean ist nicht im ServletContext

Status
Nicht offen für weitere Antworten.

Nicnac

Mitglied
Hallo,

ich versuche gerade, in meine JSF-Anwendung ein kleines Ajax-Feature einzubauen.
Ich schreibe keine Komponente.

Ich habe ein AjaxServlet.java. In diesem muss ich an eine meiner managed-beans heran um dort Funktionen auszuführen.

Ich habe es über den ServletContext (wie in dem Beispiel http://kafle.blogspot.com/2005/09/tutorial-using-ajax-in-jsf-application_27.html) versucht:

Code:
MeineBean meineBean = (MeineBean)getServletContext().getAttribute("meineBean "
);

Das geht aber nicht! In meinem Servlet-Context ist meine Bean nicht, und ich weiß nicht warum. Wie setze ich meine Bean in den ServletContext?

(Der FacesContext ist null, da ich mich im AjaxServlet befinde.Daher bekomme ich mein Bean also auch nicht.)

Vielen Dank für Eure Hilfe.
N.Schweighardt
 

Ralf Ueberfuhr

Bekanntes Mitglied
Ich bin seit 1.6. in der J2EE-Branche und habe auch festgestellt, dass AJAX und JSF nicht so einfach kombinierbar zu sein scheinen. Es gibt aber SF-Projekte wie ajax4jsf, die das beheben wollen.

Falls ich mich irre, dann bitte ich um Aufklärung.
 

Nicnac

Mitglied
Hi,

das kann gut sein, daß es mit (noch mehr) Frameworks oft einfacher ist, ich darf so etwas aber leider nicht benutzen.

Habe inzwischen eine Lösung gefunden, doch auf den FacesContext zuzugreifen. Sollte alles funktionieren, poste ich die Lösung hier.


Danke trotzdem.
Nicnac
 

Nicnac

Mitglied
So... hier mein Servlet. Ich hoffe es hilft Dir weiter. Bei mir funktioniert es wunderbar.



Code:
...
public class AjaxServlet extends HttpServlet{
	
private ServletConfig servletConfig = null;
	
FacesContextFactory facesContextFactory;
Lifecycle lifecycle;

	public void destroy() {	
		servletConfig = null;
	}
	
	public ServletConfig getServletConfig() {	
		return (this.servletConfig);	
	}
	
	public String getServletInfo() {
		return (this.getClass().getName());
	}
	
	public void init(ServletConfig servletConfig) throws ServletException {
		this.servletConfig = servletConfig;
		

		ServletContext context = servletConfig.getServletContext();
		facesContextFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
		LifecycleFactory lifecycleFactory = (LifecycleFactory)		FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
		
                String lifecycleId = context.getInitParameter(FacesServlet.LIFECYCLE_ID_ATTR);
		
                if (lifecycleId == null) {
			lifecycleId = LifecycleFactory.DEFAULT_LIFECYCLE;
		}
		lifecycle = lifecycleFactory.getLifecycle(lifecycleId);
		
	}

	
	protected Object getBean(FacesContext context, String name) {
		return context.getApplication().getVariableResolver().resolveVariable(context, name);
	}
	
	public void doGet(HttpServletRequest request,HttpServletResponse response)throws java.io.IOException,ServletException {
		
		
		...
		FacesContext context = facesContextFactory.getFacesContext(servletConfig.getServletContext(),request, response, lifecycle);
		
		MyBean myBean = (MyBean )getBean(context,"myBean ");
		
	        ...


	}
	
	public void doPost(HttpServletRequest request,HttpServletResponse response)	throws java.io.IOException,ServletException {
		doGet(request, response);
	}
}

Wenn Du Spring benutzt und die Bean, die Du brauchst, eine SpringBean ist, kommst Du über den ApplicationContext dran:

Code:
//in der GET-Methode:
getBean("myBean");


public Object getBean(String name) {
        if (ctx == null) {
            ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
        }
        return ctx.getBean(name);
    }


Viele Grüße
Nicki
 
G

Guest

Gast
masseur81 hat gesagt.:
Ich bin seit 1.6. in der J2EE-Branche und habe auch festgestellt, dass AJAX und JSF nicht so einfach kombinierbar zu sein scheinen. Es gibt aber SF-Projekte wie ajax4jsf, die das beheben wollen.

Falls ich mich irre, dann bitte ich um Aufklärung.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
fiesematente JSF ajax innerhalb DataTable und verschachtelte EL (Brauch dringend hilfe) Allgemeines EE 8
S a4j:ajax Event wird 2 Mal gefeuert. Allgemeines EE 0
H Suche dynamische Ajax-Tabelle Allgemeines EE 2
MQue Ajax - Servlet Allgemeines EE 2
D AJAX oder Servlets Allgemeines EE 6
M "Auto Client-Request" oder Server-Push oder Ajax – Allgemeines EE 2
N JSP: Collection im Servlet überwachen (mit AJAX)? Allgemeines EE 5
W "Wie" nutzt ihr AjAx in euren Projekten? Allgemeines EE 4
N selectOneMenu - items über ajax Allgemeines EE 3
N Collection überwachen (Servlet + AJAX) Allgemeines EE 3
P AJAX Datei Upload Allgemeines EE 4
F JPA Inject EntityManager im JSF-ManagedBean Allgemeines EE 1
F Probleme mit JSF und ManagedBean Allgemeines EE 3
M ManagedBean, Named etc. Allgemeines EE 6
V SEVERE: Managedbean could not be created Allgemeines EE 3
N ManagedBean manuell initialisieren? Allgemeines EE 1
thor_norsk Glassfish Server unter Windows startet nicht! Allgemeines EE 20
pkm Root resource - Klassen werden nicht gefunden. Allgemeines EE 2
M doGet()-Methode wird nicht geladen Allgemeines EE 3
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
B Datenbank Resource wird nicht gefunden Allgemeines EE 1
M JSF Binding greift nicht Allgemeines EE 0
OnDemand JSF Stacktrace wird nicht korrekt ausgegeben Allgemeines EE 1
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
J Mit @Schedule annotierte Methode wird nach einer Weile nicht mehr ausgeführt (JBoss AS 7.2) Allgemeines EE 0
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
J JBoss, Eclipse, Webseite wird nicht angezeigt? Allgemeines EE 4
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
Y JSF EJB wird nicht injected Allgemeines EE 18
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
P Prozess wird nicht beendet 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
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
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
P JSF Seite wird nicht gestartet Allgemeines EE 4
J Direktaufruf einer jsp nicht zulassen Allgemeines EE 2
C WAS findet Jars in EAR nicht? Allgemeines EE 2
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben