# Wartezeit nach Tomcat start wegen Servlets zu hoch



## andyx1975 (24. Dez 2012)

Hallo,

ich habe mit meiner Webanwendung ein paar kleine Probleme was die Servlets angeht. Beim Tomcatstart starte ich die folgenden Servlets als Listener:

[XML]
<!-- Cleans all locks on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletCleanLocks</listener-class>
	</listener>

	<!-- Cleans dead files on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletCleanFiles</listener-class>
	</listener>

	<!-- Sends all new contracts and riders via email to the promoters on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletSendContractsAndRiders</listener-class>
	</listener>
[/XML] 

Soweit funktioniert dies auch. Mein Problem ist jetzt, dass Meine Application Jersey/Restful zum starten braucht. Die Servlets werden aber zuerst abgearbeitet und erst nachdem diese fertig sind, wird Jersey gestartet. Die Application ist dann ein paar Minuten für den Benutzer tot. Kann ich das so steuern, dass die Listener als Thread abgearbeitet werden und Jersey direkt startet? Jemand eine Idee? 


*Meine vollständige 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:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- Default page to serve -->
	<welcome-file-list>
		<welcome-file>GBookingAdmin.html</welcome-file>
	</welcome-file-list>

	<display-name>BookingService</display-name>

	<!-- RestWebservices -->
	<servlet>
		<servlet-name>Jersey Web Application</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>Jersey Web Application</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>

	<!-- Security -->
		<security-constraint>
		<web-resource-collection>
			<web-resource-name>EmailService</web-resource-name>
			<description>accessible by authenticated users of the user role</description>
			<url-pattern>/rest/*</url-pattern>
			<http-method>GET</http-method>
			<http-method>POST</http-method>
			<http-method>PUT</http-method>
			<http-method>DELETE</http-method>
		</web-resource-collection>
		 <user-data-constraint> 
                        <transport-guarantee>NONE</transport-guarantee> 
                </user-data-constraint> 
	</security-constraint>

	<!-- FileUpload and FileDownload from / to application server -->
	<servlet>
     	<servlet-name>FileHandler</servlet-name>
     	<servlet-class>com.uds.webadmin.server.CServletFile</servlet-class>
	</servlet>
	<servlet-mapping>
     	<servlet-name>FileHandler</servlet-name>
     	<url-pattern>/upload</url-pattern>
	</servlet-mapping>	

	<!-- Cleans all locks on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletCleanLocks</listener-class>
	</listener>

	<!-- Cleans dead files on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletCleanFiles</listener-class>
	</listener>

	<!-- Sends all new contracts and riders via email to the promoters on Tomcat start -->
	<listener>
		<listener-class>com.uds.webadmin.server.CServletSendContractsAndRiders</listener-class>
	</listener>

</web-app>
[/XML]

Danke und Gruß
Andy


----------



## andyx1975 (7. Jan 2013)

Hat sich erledigt... habe einen Swingworker um die Methode gebaut. Funktioniert mit diesem Workaround.


----------



## maki (7. Jan 2013)

andyx1975 hat gesagt.:


> Hat sich erledigt... habe einen Swingworker um die Methode gebaut. Funktioniert mit diesem Workaround.


Swingworker in Servlets?


----------

