Hallo zusammen,
ich schlage mich seit zwei Tagen mit einer Fehlermeldung rum, mit der ich absolut nichts anfangen kann. Arbeite mich zur Zeit in JSF ein und möchte das Beispiel aus einem Buch zum Laufen bringen. Wenn ich das Projekt im Tomcat (6.0.20) deploye, erhalte ich während der Server startet folgenden Fehler:
"java:comp" lässt auf JNDI zurückschließen, es wird aber nirgends im Code JNDI benutzt, also in der Art
Im Hintergrund wird der Inhalt einiger JSF-Seiten mit Informationen gefüllt, die mittels JPA aus einer MySQL-Datenbank geholt werden. Der Datenbankzugriff erfolgt direkt, also ohne JNDI, so daß die Verbindungsdaten in der persistence.xml stehen. Hier der Inhalt:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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">
<persistence-unit name="OnlineBankingJSF" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>de.jsfpraxis.entity.Kunde</class>
<class>de.jsfpraxis.entity.Kontokorrent</class>
<class>de.jsfpraxis.entity.Konto</class>
<class>de.jsfpraxis.entity.Festgeld</class>
<class>de.jsfpraxis.entity.Buchung</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/onlinebanking" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="password" />
<!--
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
-->
<property name="eclipselink.logging.level" value="FINE" />
</properties>
</persistence-unit>
</persistence>
[/XML]
Über Google finde ich zu dieser Meldung immer nur Lösungsansätze zu JNDI in Verbindung mit einer korrekten Tomcat-Konfiguration, was aber wie gesagt nicht Gegenstand des Problems sein kann. Kann mir jemand vielleicht sagen was da nicht stimmt??
Gruß
Mario
Hier noch der Inhalt der web.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
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_2_5.xsd">
<display-name>Online Banking</display-name>
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
<!--
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
-->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
[/XML]
ich schlage mich seit zwei Tagen mit einer Fehlermeldung rum, mit der ich absolut nichts anfangen kann. Arbeite mich zur Zeit in JSF ein und möchte das Beispiel aus einem Buch zum Laufen bringen. Wenn ich das Projekt im Tomcat (6.0.20) deploye, erhalte ich während der Server startet folgenden Fehler:
Code:
...
16.12.2010 11:27:35 org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
SCHWERWIEGEND: An error occured while initializing MyFaces: javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
javax.faces.FacesException: javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:232)
at org.apache.myfaces.webapp.AbstractFacesInitializer._createEagerBeans(AbstractFacesInitializer.java:213)
at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:130)
at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.apache.myfaces.config.annotation.ResourceAnnotationLifecycleProvider.lookupFieldResource(ResourceAnnotationLifecycleProvider.java:127)
at org.apache.myfaces.config.annotation.AllAnnotationLifecycleProvider.checkFieldAnnotation(AllAnnotationLifecycleProvider.java:93)
at org.apache.myfaces.config.annotation.ResourceAnnotationLifecycleProvider.checkAnnotation(ResourceAnnotationLifecycleProvider.java:78)
at org.apache.myfaces.config.annotation.ResourceAnnotationLifecycleProvider.processAnnotations(ResourceAnnotationLifecycleProvider.java:55)
at org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider.newInstance(NoInjectionAnnotationLifecycleProvider.java:46)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:162)
... 18 more
16.12.2010 11:27:35 org.apache.catalina.startup.HostConfig deployWAR
...
"java:comp" lässt auf JNDI zurückschließen, es wird aber nirgends im Code JNDI benutzt, also in der Art
Java:
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
props.put(Context.PROVIDER_URL, "file:///");
Context initialContext = new InitialContext(props);
Object obj = initialContext.lookup(name);
Im Hintergrund wird der Inhalt einiger JSF-Seiten mit Informationen gefüllt, die mittels JPA aus einer MySQL-Datenbank geholt werden. Der Datenbankzugriff erfolgt direkt, also ohne JNDI, so daß die Verbindungsdaten in der persistence.xml stehen. Hier der Inhalt:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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">
<persistence-unit name="OnlineBankingJSF" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>de.jsfpraxis.entity.Kunde</class>
<class>de.jsfpraxis.entity.Kontokorrent</class>
<class>de.jsfpraxis.entity.Konto</class>
<class>de.jsfpraxis.entity.Festgeld</class>
<class>de.jsfpraxis.entity.Buchung</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/onlinebanking" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="password" />
<!--
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
-->
<property name="eclipselink.logging.level" value="FINE" />
</properties>
</persistence-unit>
</persistence>
[/XML]
Über Google finde ich zu dieser Meldung immer nur Lösungsansätze zu JNDI in Verbindung mit einer korrekten Tomcat-Konfiguration, was aber wie gesagt nicht Gegenstand des Problems sein kann. Kann mir jemand vielleicht sagen was da nicht stimmt??
Gruß
Mario
Hier noch der Inhalt der web.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
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_2_5.xsd">
<display-name>Online Banking</display-name>
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
<!--
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
-->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
[/XML]