# Servletfehler - kleine Anwendung



## WoodyTD (24. Dez 2013)

Hallo liebes Forum,

ich versuche mich gerade an JavaEE. Erfahrung habe ich da noch nicht sehr viele. Nur ein paar Vorlesungen habe ich dazu bisher gehört.

Ich habe ein Servlet gebaut, dass über eine Methode "createCustomer" einen Customer anlegen soll. Dieser soll dann in eine DB geschrieben werden. Und anschließt sollen alle Customer, die sich in der DB befinden ausgegeben werden. Leider bekomme ich beim ersten Aufruf des Servlets diese Fehlermeldung: 
	
	
	
	





```
HTTP Status 500 - Error instantiating servlet class de.jofre.demo.TestServlet

type Exception report

message Error instantiating servlet class de.jofre.demo.TestServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class de.jofre.demo.TestServlet
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	java.lang.Thread.run(Thread.java:724)
root cause

javax.naming.NameNotFoundException: Name [de.jofre.demo.TestServlet/df] is not bound in this Context. Unable to find [de.jofre.demo.TestServlet].
	org.apache.naming.NamingContext.lookup(NamingContext.java:820)
	org.apache.naming.NamingContext.lookup(NamingContext.java:168)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	java.lang.Thread.run(Thread.java:724)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.

Apache Tomcat/7.0.47
```

Ich habe das jetzt so interpretiert, dass er keine richtige Verbindung aufbauen kann. Die Verbindungseigenschaften, stehen ja in der persistence.xml, die wie folgt aussieht:[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
	<persistence-unit name="OnlineShop" transaction-type="RESOURCE_LOCAL">
		<non-jta-data-source>jdbc:mysql://localhost:3306/shop</non-jta-data-source>
		<class>de.jofre.entties.Category</class>
		<class>de.jofre.entties.Customer</class>
		<class>de.jofre.entties.CustomerOrder</class>
		<class>de.jofre.entties.OrderedProduct</class>
		<class>de.jofre.entties.OrderedProductPK</class>
		<class>de.jofre.entties.Product</class>
		<properties>
			<property name="eclipselink.jdbc.batch-writing" value="None"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/shop"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value="root"/>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
		</properties>
	</persistence-unit>
</persistence>

[/XML]

Leider ist mir total schleierhaft, warum er keine Verbindung aufbauen kann. Mit den gleichen Daten kann ich in der DB- View von Eclipse eine Verbindung herstellen.
Oder liegt es nicht daran?
Allg. ich nutze TomEE 7, Mac OSX, Eclipse Kepler.

Ich hoffe ihr könnt mir helfen.

VG und ein schönes Fest.
WoodyTD


----------



## turtle (25. Dez 2013)

Sieht für mich danach aus, als wenn de.jofre.demo.TestServlet nicht richtig die Ressourcen auflösen kann.

Daher solltest du mal den Quelltext dazu posten und auch sehr wichtig die web.xml dazu.


----------

