RSS

Schlagwort-Archive: WAR

JSON Provider erstellen. Part 1: Apache Tomcat – Installation auf Ubuntu

JSON Provider erstellen. Part 1: Apache Tomcat – Installation auf Ubuntu

Motivation

Ich befasse mich derzeit mit OData und JSON. Die meisten Beispiele, die man hierzu im Internet findet, sind Microsoft-lastig. Ich will versuchen mit Tomcat und AXIS2 einen JSON Server aufzubauen. AXIS2 soll nicht standalone, sondern auf einem Tomcat Server laufen. Die einzelnen Schritte, die dazu nötig sind, will ich in meinem Blog, in einer mehrteiligen Reihe beschreiben, wobei ich noch nicht weiß, ob das alles so funktioniert, wie ich mir das gedacht habe.

In den ersten Teilen will ich beschreiben, wie die Voraussetzungen erfüllt werden:

  • Installation Tomcat
  • Installation Axis2 auf Tomcat

In den darauf folgenden Teilen geht es darum, JSON als Server auf Axis2 bereitzustellen und von einem Cient zu konsumieren.

Tomcat – Quick Start…

Apache Tomcat ist Servlet Container mit JSP Compiler und einem (eingeschränkten) HTTP Server. Er eignet sich hervorragend, um JSP- und Servlet-Anwendungen zu schreiben und zu testen, aber auch, um beispielsweise AXIS2-Webservices anzubieten. Aufgrund seiner weiten Verbreitung ist der Tomcat Server sehr stabil, zudem ist er schlank und schnell und, meiner Meinung nach, falls man keine EJBs oder Portale etc. entwickeln will, einem „schweren“ Applikationsserver vorzuziehen.

Alles, was ich im Folgenden beschreibe, wurde auf Ubuntu Linux 11.10 ausgeführt.

Installation:

1) Download der Binary Distribution (tar.gz)  von hier

2) Entpacken der Distribution

3) Starten:

juergen@vostrou64:/opt/<strong>apache-tomcat-6.0.35/bin$ sudo ./startup.sh</strong>
Using CATALINA_BASE:   /opt/apache-tomcat-6.0.35
Using CATALINA_HOME:   /opt/apache-tomcat-6.0.35
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.35/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/apache-tomcat-6.0.35/bin/bootstrap.jar

4) Testen:

Mit der URL: http://localhost:8080/ können Sie die Installation überprüfen.

Konfiguration:

Die generelle Konfiguration wird in der Datei conf/server.xml festgelegt. Änderungen werden erst nach einem Neustart wirksam.

juergen@vostrou64:/opt/apach.../conf$ sudo vi server.xml

Im  Abschnitt „Connector“ wird u.a. festgelegt, auf welchem Port der Server läuft:

    &lt;!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking &amp; non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    --&gt;
    &lt;Connector <strong>port="8080"</strong> protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /&gt;
    &lt;!-- A "Connector" using the shared thread pool--&gt;
    &lt;!--
    &lt;Connector executor="tomcatThreadPool"
               <strong>port="8080"</strong> protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /&gt;
    --&gt;

Im Abschnitt „GlobalNamingRessources/UserDatabase“ wird festgelegt, wo die Benutzer konfiguriert werden:

  &lt;GlobalNamingResources&gt;
    &lt;!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    --&gt;
    &lt;Resource name="<strong>UserDatabase</strong>" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="<strong>conf/tomcat-users.xml</strong>" /&gt;
  &lt;/GlobalNamingResources&gt;

Diese Datei sieht defaultmäßig wiefolgt aus:

<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->

Es gibt Rollen und User mit Username, Password und Rolle. Im Standard sind diese Rollen und Benutzer auskommentiert („<!–“ und „–>“). Die Kommentierung muss entfernt werden, falls man Änderungen vornehmen will!

Der Manager-User ist quasi der Administrator, seit Tomcat 6.0.30 wurde die Managerrolle in vier Teilrollen aufgeteilt:

  • manager-gui – allows access to the HTML GUI and the status pages
  • manager-script – allows access to the text interface and the status pages
  • manager-jmx – allows access to the JMX proxy and the status pages
  • manager-status – allows access to the status pages only

Um nun die Rolle manager-gui dem User tomcat mit dem Passwort s3cret zuzuweisen,  müssen folgende Zeilen zu conf/tomcat-users.xml hinzugefügt werden:

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>

Zum Aktivieren ist ein Neustart des Tomcat Servers notwendig (shutdown.sh und dann startup.sh)! Anschließend auf http://localhost:8080/ den Link „Tomcat Manager“ (http://localhost:8080/manager/html) aufrufen und den oben konfigurierten User eingeben.

 

 

Deployment:

Auf Tomcat werden sog. Web-Applikation deployed. Seit der Servlet API Specification, Version 2 werden hierfür sog. Web Application Archives (WAR) Dateien verwendet. Die WAR Dateien haben eine festgelegte Verzeichnisstruktur und dienen als „Transportformat“ für das Deployment, also dem Verteilen bzw. Installieren einer Web-Applikation auf einem Server.

Die Verzeichnisstruktur ist wie folgt:

Verzeichnis Inhalt
/ Wurzelverzeichnis, enthält html, jsp, js etc. Dateien
/WEB-INF/web.xml der sog. Web Application Deployment Descriptor, welcher die Servlets etc. der Web-Applikation beschreibt
/WEB-INF/classes Klassendateien (class), aber keine JAR Dateien. Reflektiert die Struktur bei Packages in Form von Unterverzeichnissen
/WEB-INF/lib JAR Dateien

Weitere Informationen sind hier zu finden.

Um WAR-Dateien auf Tomcat zu deployen, kann man sie direkt in das „webapps“ Verzeichnis der Tomcat-Installation kopieren, oder man verwendet die Manager-GUI. Mit der Manager-GUI kann man die WAR-Datei lokal auswählen und deployen:

Falls die deployte Applikation anschließend nicht in der Liste erscheint, sollte man sich die Tomcat Logdateien anschauen.

Eigene Applikationen erstellen

Wie man eigene Applikationen für Tomcat erstellt, wird hier erklärt.

 
Hinterlasse einen Kommentar

Verfasst von - Dezember 22, 2011 in Linux, WebServices

 

Schlagwörter: ,

Dateiformate für Web-Applikationen (EAR, JAR, WAR etc.)


Eine EAR (Enterprise Archive) Datei ist ein Container für Java Enterprise Applikationen. Es handelt sich dabei um eine (umbenannte) JAR Datei, welche wiederum eine umbenannte ZIP Datei ist.

Der EAR Container kann eines oder mehrere Module einer Web-Applikation beinhalten:

  • POJOs (Plain Old Java Objects), also herkömmliche Java-Klassen in Form von JAR Files
  • Libraries in Form von JAR Files (z.B. JDBC Bibliotheken etc.)
  • EJBs (Enterprise Java Objects) beispielsweise in Form von JAR Files
  • Ressource Adapter in Form von RAR Files
  • Web Module bzw. Applikationen in Form von WAR Files (Web Application Archive: JavaServer PagesservletsJava classesXML files, tag libraries and static Web pages (HTML and related files))

Die IDE Eclipse bietet die Möglichkeit zunächst ein EAR Projekt zu erstellen, in das man anschließend andere Projekte (die separat erstellt wurden), einbindet.

Die folgende Abbildung zeigt ein EAR Projekt, bestehend aus einer EJB Projekt (JAR) und einem Web-Projekt (WAR). Das EAR Projekt bündelt beide Teilprojekte und die erzeugte EAR Datei kann direkt auf den Applikationsserver deployed werden :

 

 
Hinterlasse einen Kommentar

Verfasst von - April 20, 2011 in Java EE

 

Schlagwörter: , , ,

 
Erstelle eine Website wie diese mit WordPress.com
Jetzt starten