Hey,....
ich habe im Moment fast nur Konfigurations- Probleme ich hoffe ich hab bald alle Probleme durch und kann endlich weiter proggen
Mein aktuelles Problem setzt sich aus einer Mischung von JSF,h2,Hibernate/JPA, Tom EE zusammen
ich hab auf der TomEE Seite, auf der H2 Seite, bei Google etc. gesucht... ich finde einfach nix, ich hab 10000 Sachen probiert, web.xml vom Server geändert, Persistence.xml, Lib verschoben etc. aber es will einfach nicht klappen.... kann sein, dass meine Konfigurationen nun ganz kaputt sind, aber ich hoffe ihr könnt mir weiterhelfen
Lokal also ohne Server und ohne JSF/CDI klappt Hibernate/JPA + H2 ohne Probleme
Folgende Struktur (Maven Projekt):
src/main/java
package model mit den Klassen Control /Person
src/main/webapp
hello.xhtml
Meta-INF
Web-INF mit beans.xml, web.xml, persistence.xml, faces-config.xml
so weit, so gut .... die CDI funzt auch ohne Probleme und sogar die Datenbank wird erstellt bzw. sieht es so aus aber wirklich gespeichert wird nix
JA ich weiß vieles is unsinning was z.b. im PostConstruct passiert aber das soll alles nur ein Test sein
Hier meine Daten:
Control.java
Person.java
hello.xhtml
Persistence.xml
web.xml
Teile des Printstack vom TomEE Server:
wie man an dem null sieht, ist kein User mit der ID vorhanden und die DB Datei existiert auch nirgendwo.... ich hab keine Ahnung was ich noch machen soll daher wäre es sehr nett, wenn ihr mir da weiterhelfen könntet
Die Ausgabe der JSF Seite is übrigens korrekt mit CDI :
POM:
ich habe im Moment fast nur Konfigurations- Probleme ich hoffe ich hab bald alle Probleme durch und kann endlich weiter proggen
Mein aktuelles Problem setzt sich aus einer Mischung von JSF,h2,Hibernate/JPA, Tom EE zusammen
ich hab auf der TomEE Seite, auf der H2 Seite, bei Google etc. gesucht... ich finde einfach nix, ich hab 10000 Sachen probiert, web.xml vom Server geändert, Persistence.xml, Lib verschoben etc. aber es will einfach nicht klappen.... kann sein, dass meine Konfigurationen nun ganz kaputt sind, aber ich hoffe ihr könnt mir weiterhelfen
Lokal also ohne Server und ohne JSF/CDI klappt Hibernate/JPA + H2 ohne Probleme
Folgende Struktur (Maven Projekt):
src/main/java
package model mit den Klassen Control /Person
src/main/webapp
hello.xhtml
Meta-INF
Web-INF mit beans.xml, web.xml, persistence.xml, faces-config.xml
so weit, so gut .... die CDI funzt auch ohne Probleme und sogar die Datenbank wird erstellt bzw. sieht es so aus aber wirklich gespeichert wird nix
JA ich weiß vieles is unsinning was z.b. im PostConstruct passiert aber das soll alles nur ein Test sein
Hier meine Daten:
Control.java
Java:
package model;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
@Named
public class Control implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String hello="hello";
@PersistenceUnit(name="PU")
EntityManagerFactory ef;
public Control(){
}
public String getHello() {
return hello;
}
public void setHello(String hello) {
this.hello = hello;
}
@PostConstruct
public void save(){
EntityManager em= ef.createEntityManager();
System.out.println(em.merge(new Person("Hans")));
System.out.println(em.find(Person.class,1L));
hello="Text wird eingefügt";
}
}
Person.java
Java:
package model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
private String name;
protected Person(){
}
public Person(String name){
this.setName(name);
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
return name+ " das ist mein Name";
}
}
hello.xhtml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>JSF 2.0 Hello World</title>
</h:head>
<h:body>
<h3>JSF 2.0 Hello World Example - hello.xhtml</h3>
<h:form>
<h:outputText value="#{control.hello}"></h:outputText>
</h:form>
</h:body>
</html>
Persistence.xml
Java:
<?xml version="1.0" encoding="UTF-8"?>
<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="PU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>model.Person</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.connection.url" value="jdbc:h2:test.h2;MODE=Oracle" />
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.connection.autocommit" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.transaction.factory_class"
value="org.hibernate.transaction.JDBCTransactionFactory" />
</properties>
</persistence-unit>
</persistence>
web.xml
Java:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
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-app_3_0.xsd">
<display-name>WebH2</display-name>
<!-- Change to "Production" when you are ready to deploy -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- JSF mapping -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map these files with JSF -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
Teile des Printstack vom TomEE Server:
Java:
Hibernate:
create table Person (
id bigint generated by default as identity (start with 1),
name varchar(255),
primary key (id)
)
Hans das ist mein Name
Hibernate:
select
person0_.id as id0_0_,
person0_.name as name0_0_
from
Person person0_
where
person0_.id=?
null
wie man an dem null sieht, ist kein User mit der ID vorhanden und die DB Datei existiert auch nirgendwo.... ich hab keine Ahnung was ich noch machen soll daher wäre es sehr nett, wenn ihr mir da weiterhelfen könntet
Die Ausgabe der JSF Seite is übrigens korrekt mit CDI :
Code:
JSF 2.0 Hello World Example - hello.xhtml
Text wird eingefügt
POM:
Code:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>WebH2</groupId>
<artifactId>WebH2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>WebH2</name>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.168</version>
</dependency>
</dependencies>
</project>
Zuletzt bearbeitet: