[JSF] Zugriff auf Bean (Eclispe,JBoss)

Smoothi

Bekanntes Mitglied
EDIT: Das Problem von einer JSF-Seite auf eine Bean im selben Projekt zuzugreifen hat sich geklärt. Neustart von Eclipse, Server und Redeploy hat geholfen. oO

Nunja... mein eigentliches Problem ist.

Wie greife ich mit JSF auf eine Bean mittels CDI zu, wenn diese sich in einem anderen Projekt befindet?
 
Zuletzt bearbeitet:

Smoothi

Bekanntes Mitglied
liegt das am CDI?

Wir haben an der Uni mal ein Projekt mit ManagedBeans gehabt. Dabei hatten wir das Projekt mit den Beans einfach dem BuildPath und dem Deployment Assembly mitgegeben und es klappte.

Klappte aber auch nicht -.-
 
Zuletzt bearbeitet:

Templarthelast

Bekanntes Mitglied
Ist das CDI bean mit @Named versehen? Sonst kann es nicht direkt von JSF zugegeriffen werden. Ansonsten könntest du das CDI bean auch in eine ManageBean injecten und dann über dieses die Daten für JSF bereitstellen.
 

Smoothi

Bekanntes Mitglied
Ach ich mach das in einem Projekt... ich find das sowieso schöner als mit zig Projekten zu hantieren. ;)

Jedoch bekomm ich jetzt:
JBAS016069: Error injecting persistence unit into CDI managed bean. Can't find a persistence unit named in deployment bank-swt.war

Meine persistence.xml befindet sich im WebContent/META-INF/persistence.xml und sieht so aus:
Code:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"  
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"  
             version="2.0">  
	<persistence-unit name="BankUnit" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:jboss/datasources/PostgresDS</jta-data-source> 
		
		<properties>		
			<property name="hibernate.hbm2ddl.auto" value="create"/>
			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
			<property name="hibernate.show_sql" value="false"/>
			<property name="hibernate.format_sql" value="false"/>
			<property name="hibernate.use_sql_comments" value="false"/>
			<property name="hibernate.archive.autodetection" value="class"/>
		</properties>
	</persistence-unit>
</persistence>

irgend eine Idee? Ich kann nicht verstehen wie alle so auf Eclipse abgehen, ich hab damit nur Probleme...wär ich nicht dazu gezwungen würde ich wieder NetBeans nehmen. ^^
 

Templarthelast

Bekanntes Mitglied
Das hat weniger mit eclipse als mit deiner Hibernatekonfiguration zu tun. Wie injectest du den den EntityManager?

Ist überhaupt eine Datasource im Application/Servletcontainer angelegt?
 

Smoothi

Bekanntes Mitglied
Natürlich. Die Source ist da. ;)

Ich hab die Entity-Klassen auch aus dem ursprünglichem Projekt rüberkopiert.
Beim ursprünglichen Projekt ging das noch, jetzt wird nichtmal mehr die Tabellenstruktur angelegt.

Also Entities und persistence.xml wurde aus dem Ursprungsprojekt übernommen.

Meine TestBean sieht wie folgt aus:
Code:
@SuppressWarnings("serial")
@Named("bankBean")
@SessionScoped
public class BankBean implements Serializable {
	@PersistenceContext
	private EntityManager entityManager;
	
	public BankBean() {
	}
	
	public Bank createBank(Bank bank) {
		try {
			entityManager.persist(bank);
			return bank;
		} catch(Exception e) {
			System.err.println("Fehler in createBank" + e);
			return null;
		}		
	}
	
	public String getTest() {
		Bank sparkasse = new Bank();
		sparkasse.setName("Sparkasse");
		sparkasse.setSortCode(12345);
		sparkasse = createBank(sparkasse);
		return "test";
	}
}
 

Smoothi

Bekanntes Mitglied
bringt den gleichen Fehler...

die Tabellenstruktur müßte doch eigentlich bei "create" nach dem deploy auch angelegt werden, wenn das Projekt nur Entities enthält
 

Smoothi

Bekanntes Mitglied
vielleicht liegts an meiner Struktur?

Ich hab ein neues JSF-Project erstellt.

- JavaSource
--- <meine Klassen>
- ant
- WebContent
--- META-INF
------ MANIFEST.MF
------ persistence.xml
--- WEB-INF
------ lib
------ beans.xml
------ faces-config.xml
------ web.xml
--- <XHTML-Seiten>
 

jwiesmann

Bekanntes Mitglied
Die Persistence.xml muss in dem Project vorhanden sein, wo die Entities zu finden sind.
Ansonsten muss du explizit in der persistence.xml das JAR-File mit Entities angeben.
[XML]
<persistence-unit name="BankUnit" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/PostgresDS</jta-data-source>
<jar-file>myEntities.jar</jar-file>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="false"/>
<property name="hibernate.use_sql_comments" value="false"/>
<property name="hibernate.archive.autodetection" value="class"/>
</properties>
</persistence-unit>
[/XML]
 

Smoothi

Bekanntes Mitglied
ah ich habs :)

ich mußte unter ProjectFacets "JPA" aktivieren, dann wurde der META-INF-Ordner auch im Klassenverzeichnis angelegt. Per Hand gings nicht. ;)

EDIT:
eclipse.png


Das ist der Punkt wo mich Eclipse wahnsinnig macht. Wie bekomm ich raus woher die Kreuze kommen? Im Quellcode is alles ok. -.-Deployen kann ich es nun auch und die Tabellenstruktur wird angelegt.

Jedoch kann ich noch keine Transaktion ausführen:
javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)

EDIT2: ok..die Exception lies sich durch
Code:
@Resource private UserTransaction utx;
beheben.

Eine andere Möglichkeit ohne UserTransaction wäre mir aber auch ganz lieb. ;)
 
Zuletzt bearbeitet:

Smoothi

Bekanntes Mitglied
ok die Kreuzle sind weg... hab JPA nochmal rausgeschmissen und nochmal neu reingelegt.

Jetzt wäre noch eine Möglichkeit toll wie ich auf das UserTransaction-Objekt verzichten könnte

Dann kann ich endlich durchstarten ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
R JSF Zugriff für Helpdesk-Mitarbeiter Web Tier 15
K Converter + Zugriff auf DAO und EntityManager Web Tier 7
O JSF Zugriff auf entfernte Dateien Web Tier 11
J Servlet Zugriff Servlet Web Tier 11
H JSF Fehler bei Zugriff auf f:attribute Web Tier 2
R Zugriff Validator in Tabelle (ui:repeat) auf andere Felder Web Tier 2
M JSF Zugriff auf mehrere Formulareinträge in einem Validator Web Tier 9
A JSF xhtml parameter / zugriff auf value Web Tier 2
R Zugriff auf Session direkt auf JSF-Seite Web Tier 2
R Zugriff auf geschützten Bereich ohne Authentifizierung Web Tier 10
M JSF Kein Zugriff auf ManagedBeans, nach JSF Migration von 1.2 nach 2.0 Web Tier 4
K Struts request Zugriff Web Tier 4
S Lesender Zugriff auf Datei im Webprojekt Web Tier 2
D Servlets vor direktem Zugriff schützen Web Tier 2
M Zugriff aus eigenen Tags auf Struts Value Stack Web Tier 2
S Problem mit Servlet und Zugriff auf Orace XE Datenbank Web Tier 2
J JSP -> DB Zugriff? Web Tier 4
M JSF Designfrage bzgl. DB-Zugriff Web Tier 9
6 JSF Form Attribute nicht an Bean übergeben Web Tier 2
G HTML Fragment in Bean erzeugen? Web Tier 1
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
F JSF Bean funktioniert nicht immer.. Web Tier 3
I CSS von Client -> an Bean senden Web Tier 0
H JSF jsf/sessionScoped Bean - Bilder (jpg) werden nicht richtig dargestellt Web Tier 1
S Java Bean und Java Servlet Web Tier 2
G jsf bean erstellen die mir die aktuelle uhrzeit ausgibt als xhtml Web Tier 5
M viele Objekte des Managed Bean Web Tier 3
P JSF Prob mit xhtml / Bean / JS Web Tier 6
J JSF Initialisierung einer ApplicationScoped Bean Web Tier 2
B Berechnen und Anzeigen von Formeln aus der Chemie und Physik mit JSP und Bean Web Tier 14
H Bean-Objekte aus XML erstellen Web Tier 2
L expression language Bean && Bean Web Tier 3
C JSF Methoden in Backing-Bean als JSF-Property Web Tier 3
P JSF Merkwürdiges Verhalten einer Bean Web Tier 11
S CDI: Bean aus einem anderen jar Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
D JSF EL #{not null bean.property} Parse exception Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
B JSF Servlectexception: Verwalteter Bean "..bean" kann nicht erstellt werden Web Tier 2
G JSF Bean Vererbung Web Tier 5
J Validieren abhängiger Felder mit JEE6/Bean validation Web Tier 33
F Leere Bean? Web Tier 7
S JSF2: Managed bean aus anderer Dependency Web Tier 7
W MVC mit Bean, JSP und Servlet Web Tier 6
S Style bei fehlerhafter Eingabe (Bean Validation) ändern Web Tier 2
H Managed Bean Aufruf auf Stack legen Web Tier 10
P JSP: Liste in Bean über Session aufbauen Web Tier 6
S Bean Validation (JSF 2.0) funktioniert nicht. Web Tier 4
V Vector aus Bean "holen" / JSP Web Tier 3
B JSF session bean mit worker thread updaten Web Tier 7
K bean methode von jslt aufrufen Web Tier 7
I Eine Bean von einer anderen Bean aufrufen Web Tier 2
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
G JSF javax.faces.bean Web Tier 2
K Anfängerfrage in JSF: <h:inputText> aus Managed Bean ansprechen Web Tier 6
S Managed bean nicht initialisiert Web Tier 2
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
E Methode einer Bean aus anderer Bean aufrufen Web Tier 10
S [SelectItems value(herkunft bean)] in [UI:repeat] lädt daten nicht neu nach Web Tier 3
N MessageResources von Struts in Form-Bean Web Tier 4
N java bean in eclipse Web Tier 6
A JSF SelectOneMenu mit Werten aus Bean vorbelegen Web Tier 2
S JSF: Frage wegen managed-bean Web Tier 3
pusteblume Mehrere Objekte einer Bean Web Tier 10
M Problem mit JSP und Bean Web Tier 2
O 2 Fragen zu JSP und Bean Web Tier 4
E value übergabe an bean! aber wie? Web Tier 3
F Datei von bean aus laden Web Tier 3
N JSF kann Bean nicht finden! Web Tier 7
H JSF - Bean (scope session) - Verfallsdatum? Web Tier 3
G Mit JSTL Rückgabe von Bean Methode ausgeben Web Tier 3
D ResultSet aus Bean an JSP übergeben Web Tier 11
M JSF - Bean aus SessionScope direkt im JSF Code auslesen Web Tier 1
G Eine Instanz pro Managed Bean? Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben