korrektes Vorgehen mit Jersey und SQLite?

wavefront6

Mitglied
Hallo,

ich bin mir generell nicht sicher ob das was ich mache korrekt ist :oops:

Und zwar habe ich eine Applikation geschrieben welche als normale Java-Application gestartet wird und mittels Jersey ein paar REST-Webservice-Methoden bereitstellt, die u.a. Daten aus einer SQLite-Datenbank ausgibt.
Das funktioniert auch alles super.

Jetzt musste diese Anwendung jedoch in einem Tomcat-Server zum Laufen gebracht werden.
Dazu habe ich das Projekt in Eclipse von einem "normalen" in ein "Dynamic Web Proj" konvertiert, anhand von ein paar Anleitungen im Netz.
Das ganze startet nun auch in Tomcat ohne weitere Probleme.
Aufrufe im Webservice, welche keine Daten aus der SQLite-Datenbank beziehen, funktionieren auch. Aber wenn ich einen Webservice-Aufruf starte, der etwas aus der SQLite-Datenbank ziehen möchte, erhalte ich einen Fehler.

Code:
Jan 16, 2012 12:17:49 AM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NullPointerException
	at backend.db.DatabaseRepository.getUsers(DatabaseRepository.java:359)
	...

Jan 16, 2012 12:17:49 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet backend threw exception
java.lang.NullPointerException
	at backend.db.DatabaseRepository.getUsers(DatabaseRepository.java:359)
	...

Die web.xml sieht wie folgt aus:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="2.5">
<servlet>
<servlet-name>backend</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>backend</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>[/XML]

Meine Frage ist nun, ist mein Vorgehen soweit korrekt, oder erfordert der Umgang mit Tomcat + Jersey + SQLite spezielle Dinge?
 
Zuletzt bearbeitet:

AlexSpritze

Bekanntes Mitglied
Ist
Code:
backend.db.DatabaseRepository.getUsers
deine Methode? Wenn ja, was passiert da in der Zeile 359?
 

wavefront6

Mitglied
Ist
Code:
backend.db.DatabaseRepository.getUsers
deine Methode? Wenn ja, was passiert da in der Zeile 359?

Ja, das ist meine Klasse:

Java:
	public Iterator<User> getUsers()
	{
		ArrayList<User> users = new ArrayList<User>();

		try
		{
			pstmt = con.prepareStatement("SELECT idUser, Name, Last_Name, Email, Phone_Number FROM User");
			rs = pstmt.executeQuery();
			while (rs.next())
			{
				int id = rs.getInt("idUser");
				String name = rs.getString("Name");
				String last_name = rs.getString("Last_Name");
				String email = rs.getString("Email");
				String phone_number = rs.getString("Phone_Number");
				User user = new User(id, name, last_name, email, phone_number);
				users.add(user);
			}
		}
		catch (SQLException e)
		{
			LOGGER.severe(e.getMessage());
		}

		return users.iterator();
	}
Zeile 359 ist
Java:
pstmt = con.prepareStatement("SELECT idUser, Name, Last_Name, Email, Phone_Number FROM User");

Irgendwie habe ich das Gefühl, das die Tomcat-Anwendung die Datenbank-File nicht finden kann. Muss man irgendwelche Pfade evtl. anpassen?
 

AlexSpritze

Bekanntes Mitglied
Zumindest solltest du erstmal schauen, wieso
Code:
con
in dieser Zeile
Code:
null
ist. Da scheint ja schon vorher ein Fehler geflogen zu sein, oder wird die Initialisierung nicht korrekt abgeschlossen/aufgerufen, damit diese Variable nicht null ist?
 

Ähnliche Java Themen

Neue Themen


Oben