Kleinere Frage EJB/JSF

corofighter

Mitglied
Hallo,

folgendes: Mein xhtml sieht wie folgt aus:
Java:
<h:selectOneMenu id="adresse" value="#{nutzerController.selected.adresse}" title="#{bundle.CreateNutzerTitle_adresse}" required="true" requiredMessage="#{bundle.CreateNutzerRequiredMessage_adresse}">
                        <f:selectItems value="#{adresseController.itemsAvailableSelectOne}"/>
                    </h:selectOneMenu>

Folgendes Bean funktioniert:
Java:
public SelectItem[] getItemsAvailableSelectOne() {
        return JsfUtil.getSelectItems((List<Adresse> ejbFacade.findAll(), true);
    }

aber bei folendem kriegt ich eine Fehlermeldung
Java:
public SelectItem[] getItemsAvailableSelectOne() {
        javax.persistence.Query q=this.ejbFacade.getEntityManager().createQuery("select object(o) from Adresse o");
        return JsfUtil.getSelectItems((List<Adresse>) q.getResultList(),true);
    }

javax.ejb.EJBException: Illegal non-business method access on no-interface view

Die Codes wurde mit dem Wizard von NB6.9/JSF 2.0 erstellt.

Kann mir jmd. helfen? Danke!
 
M

maki

Gast
Das Problem (bzw. mehrere):
Code:
this.ejbFacade.getEntityManager().createQuery(....
Sowas macht man doch nicht in einer JSF ManagedBean vom ServletContainer aus, abgesehen davon ist das ein sog. "Trainwreck" und durchbricht dazu noch die Schichtentrennung.
 

corofighter

Mitglied
Danke. Ich will ja gar nicht verhehlen, dass ich noch recht unerfahren mit JSF bin. Wie macht man es denn ansonsten? Netbeans bietet mir als Methoden von ejbFacade nur findAll() und findRange (und eben getEntityManager) an. Wie werden denn parametrisierte Queries denn normalerweise durchgeführt?

Danke im Voraus!
 

corofighter

Mitglied
Danke. Ich weiß zwar nicht, ob es guter Stil ist, aber ich habe es so gemacht:

In die AdresseFacade.java folgende Code eingefügt
Java:
public List<Adresse> findAllAdresse(){
        Query q=  this.getEntityManager().createNamedQuery("Adresse.findAll");
        return (List<Adresse>) q.getResultList();
    }

und dann kann man es von JSF ManagedBean AdresseController über
Java:
return JsfUtil.getSelectItems(ejbFacade.findAllAdresse(), true);
aufrufen.

Läuft jedenfalls.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage zum URL-Pattern des Bereitstellungsdeskriptors Web Tier 11
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
C Wahrscheinlich einfache Frage bzgl. JSF Web Tier 2
F JSF Frage zu valueChangeListener Web Tier 1
F JSF synchronized(session) Frage ? Web Tier 1
F JSF h:selectManyCheckbox Css Frage Web Tier 2
F JSF p:selectCheckboxMenu Frage Web Tier 0
S JSF Allgemeine Frage zu JSF Web Tier 10
U Servlet Allgemeine Frage zu Servlets Web Tier 2
K Frage zu Taglibs in JSF Web Tier 3
M Design-Frage: JSP, Servlets und CSS Web Tier 11
M Frage zur Konfiguration einer RichFaces DataTable Web Tier 4
F Frage zu Java Beans Web Tier 17
F Frage zum Validator Web Tier 2
J Frage zu Checkbox bei JSF Web Tier 3
S Frage bezüglich Einblendung eines Zusatzfeldes Web Tier 2
O Escapen oder nicht Escapen, das ist hier die Frage :) (Struts2) Web Tier 2
H Frage zu Servlet getRequestDispatcher Web Tier 2
S JSF: Frage wegen managed-bean Web Tier 3
G Struts 2 - Validation Frage Web Tier 5
E File upload mit jsp (frage zum speicherort) Web Tier 12
G Kurze Frage zu editier-Formularen Web Tier 7
T Action mapping Frage (Struts) Web Tier 2
G Kurze Frage zu Servlets&Struts Web Tier 4
O kurze Frage zur Tomcat Installation Web Tier 2
O Struts Grundlagen Frage Web Tier 32
E einfache Frage zu Servlet (Counter erzeugen) Web Tier 7
W getServletConfig().getInitParameter(.) Frage Web Tier 5
G Frage zu Tiles Web Tier 4
M Grundlegende Frage zu Servlets und JSPs Web Tier 12

Ähnliche Java Themen

Neue Themen


Oben