Hallo zusammen,
ich habe ein Problem und zwar habe ich einen Service in einem Tomcat 7 deployed. Nach dem Re-Deploy meldet der Tomcat immer Speicherprobleme. Wie ich in bereits durch googeln erfahren habe, besteht das Problem darin, dass noch alte Instanzen des Services nach einem Re-Deploy vorhanden sind. Das nehme ich jetzt einfach mal hin, obwohl der Tomcat 7 Besserung versprochen hatte.
Allerdings habe ich noch ein Problem und zwar brechen meine Services alle 1-2 Tage immer mal ab, bzw. wenn ich sie über die URL aufrufe, dann kommt nach ein paar Tagen keine Antwort mehr, sondern der Ladekreis dreht sich einfach nur noch. Anfangs läuft noch alles wunderbar.
Folgenden Code benutzt ich:
(Zu Präsentationszwecken habe ich alles in Test genannt)
Servlet:
Meine Zwischenschicht:
In der Logik wird dann nur der testString über eine Datenbankabfrage gefüllt.
Erkennt ihr irgendwas an dem Code was das Problem auslösen könnte?
Vielen Dank.
Mit freundlichem Gruß,
Thomas.
ich habe ein Problem und zwar habe ich einen Service in einem Tomcat 7 deployed. Nach dem Re-Deploy meldet der Tomcat immer Speicherprobleme. Wie ich in bereits durch googeln erfahren habe, besteht das Problem darin, dass noch alte Instanzen des Services nach einem Re-Deploy vorhanden sind. Das nehme ich jetzt einfach mal hin, obwohl der Tomcat 7 Besserung versprochen hatte.
Allerdings habe ich noch ein Problem und zwar brechen meine Services alle 1-2 Tage immer mal ab, bzw. wenn ich sie über die URL aufrufe, dann kommt nach ein paar Tagen keine Antwort mehr, sondern der Ladekreis dreht sich einfach nur noch. Anfangs läuft noch alles wunderbar.
Folgenden Code benutzt ich:
(Zu Präsentationszwecken habe ich alles in Test genannt)
Servlet:
Java:
package de.test.servlets.get;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import de.test.servlets.help.TestServlet;
import de.testrest.datalogic.Manager;
/**
* Servlet implementation class AllCategories
*/
public class AllCategoriesGetServlet extends TestServlet {
private static final long serialVersionUID = 1L;
private de.test.get.AllCategoriesGet ref;
private String answer;
/**
* @see HttpServlet#HttpServlet()
*/
public AllCategoriesGetServlet() {
super();
}
public void init() throws ServletException {
ref = new de.test.get.AllCategoriesGet();
}
public void destroy() {
ref = null;
answer = null;
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/xml;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=AllCategories.xml");
answer = ref.loadAllCategories();
PrintWriter out = response.getWriter();
out.println(answer);
}
}
Meine Zwischenschicht:
Java:
package de.test.get;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import de.testrest.datalogic.ParameterItem;
import de.testrest.datalogic.Manager;
@Path("/GET/AllCategories")
public class AllCategoriesGet {
// This method is called if XML is request
@GET
@Produces(MediaType.TEXT_XML)
public String loadAllCategories(){
String testString = Manager.getInstance().loadAllCategories();
Manager.getInstance().getDb_handle().close();
return testString;
}
}
In der Logik wird dann nur der testString über eine Datenbankabfrage gefüllt.
Erkennt ihr irgendwas an dem Code was das Problem auslösen könnte?
Vielen Dank.
Mit freundlichem Gruß,
Thomas.