Java EE, Tomcat & Eclipse

Wenn verwöhnte Netbeans User für Java EE Eclipse benutzen müssen, wirds kurz haarig 😉

catalina.base

Die Variable catalina.base in den Run Configuration des Tomcats setzen weil die Tomcat Datei catalina.properties sie zum Laden der libs benötigt.

Automatisch macht Eclipse z.B.:

-Dcatalina.base="/home/allapow/workspace-neon/.metadata/.plugins/org.eclipse.wst.server.core/tmp0" -Dcatalina.home="/home/allapow/Apps/Apache-Tomcat-8/apache-tomcat-8.0.52" -Dwtp.deploy="/home/allapow/workspace-neon/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps" -Djava.endorsed.dirs="/home/allapow/Apps/Apache-Tomcat-8/apache-tomcat-8.0.52/endorsed"

CATALINA_HOME

Falls man seinem Linux in /etc/profile (oder sonst wo) gesagt hat, wo CATALINA_HOME ist und man verschiedene Tomkatzen benutzt, dann kann man in Eclipse, in der Run Configuration jedes Tomcats, unter dem Tab „Environment“, CATALINA_HOME und eventuell auch CATALINA_BASE angeben.

Tomcat libs für REST

catalina-ws.jar kann man passend zum Tomcat auf der Apache Seite runter laden. Laut schlauen Leuten im Netz muss diese lib in den Tomcat lib/ Ordner. Bis jetzt funzt mein REST Service auch ohne …mal sehen wozu die gut ist.

Auch das ganze Jersey Zeug muss nicht in den lib/ Ordner des Tomcat. Denke, wenn es in der war Datei ist muss es nicht erneut im Tomcat lib/ Ordner. Im Projekt muss man die meisten haben, sonst werden Klassen nicht gefunden.

JAX-RS

Entgegen anderen Meinungen im Web müssen alle (Ordner: api/, ext/ & lib/) Lib-Jars aus Jersey in das Verzeichnis [ProjectName]/WebContent/WEB-INF/lib.

Und die web.xml sieht so aus

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>LearnEclipseEE02</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>Jersey REST Service</servlet-name>
		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
		<!-- Register resources and providers under com.vogella.jersey.first package. -->
		<init-param>
			<param-name>jersey.config.server.provider.packages</param-name>
			<param-value>de.bitkorn.jersey.resource</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey REST Service</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>
</web-app>