NetBeans mit Glassfish
Willemers Informatik-Ecke

Installation von NetBeans

Vorbereitung: JDK installieren

Vor dem Start muss allerdings gewährleistet sein, dass ein Java-JDK installiert ist, weil die Installationsprogramm von Netbeans bereits ein JDK voraussetzt.

Wird Glassfish (auch in der aktuellen Version 6.0) verlangt die Installation einer JDK Version 8 bzw. 1.8. Beide Versionen sind identlisch, nur in unterschiedlicher Schreibweise.

Vorbereitung: Glassfish herunterladen und einrichten

https://projects.eclipse.org/projects/ee4j.glassfish/downloads

Dort wird für eine Full Profile-Version und eine abgemagertes Web Profile ein Link angeboten. Auf der Folgeseite finden Sie einen Download-Button. Sie laden daraufhin eine ZIP-Datei namens glassfish-x.y.z.zip herunter. x, y und z stehen für die Versionsnummern.

In der ZIP-Datei befindet sich ein Verzeichnis glassfish6, das durch Entpacken der Datei an einer warmen und trockenen Stelle der Festplatte abgelegt wird. Merken Sie sich den Pfad, er wird noch benötigt.

Sie können den Server über die URL http://localhost:4848 administrieren.

Installation NetBeans aus dem Internet

Netbeans wird auf der Website https://netbeans.apache.org/download zum Download angeboten. Diese Version sollte neben der Basisausstattung auch das Plugin für JEE enthalten.

Dort wählen Sie die Version und werden auf eine Seite weitergeleitet, auf der Sie die Plattform wählen können. Aktuell ist dies die Version 12.

Dort gibt es auch eine Version speziell für Linux, die in Form eines Shell-Skripts daherkommt.

Die Datei trägt die Endung .sh und wird durch Aufruf von einer Kommandozeile aus installiert. Dazu benötigt die Installationsprogramm root-Rechte. Darum der vorangestellte Befehl sudo. Sie wechseln in das Downloadverzeichnis und geben dort folgende Befehle (x.y stehen für die Versionsnummer):

sudo bash Apache-NetBeans-x.y-bin-linux-x64.sh 

Es erscheint ein grafisches Installationsprogramm.

NetBeans wird bei Linux automatisch in das Hauptmenü unter Entwicklung eingetragen. Von hier kann es nun gestartet werden.

Nach dem Start wird eine Start Page zum Kennenlernen vorgeblendet, die durch das x an der Lasche geschlossen werden kann.

Einbindung des Glassfish-Servers in NetBeans

Wechseln Sie im linken Explorer des NetBeans von Projects zu Services. Dort Server aufklappen. Glassfish erscheint.

Glassfish einrichten

Falls er nicht erscheint, muss er noch installiert werden. Dazu mit der rechten Maustaste auf Servers klicken und Add Server auswählen. Dort Glassfish auswählen.

Next. Einen (langen) Augenblick warten bis der nächste Dialog erscheint.

Meldet NetBeans, dass der Support für Java Web und EE muss erst aktiviert werden muss, sollte man Activate klicken.

nb-javac library

In manchen Fällen wird NetBeans erklären, dass keine unterstützte nb-javac library verfügbar sei. Es empfielt diese nun herunterzuladen zu installieren. Dem sollte man nachkommen. Dabei wird noch einmal eine Lizenz bestätigt und schließlich ein Restart der IDE eingefordert, die aber auch auf später verschoben werden kann.

Next anklicken.

Auswahl des Glassfish

Unter Server Location wird der Button Browse angeklickt. In der Auswahlbox, wird das (hoffentlich schon) installierte Glassfish-Verzeichnis ausgewählt.

Next anklicken.

Hier werden Domain und weitere Details eingegeben. In der Regel reicht die Grundeinstellung. Finish

Start des Glassfish-Servers

Mit rechter Maustaste Start anklicken. Nun könnte NetBeans meckern, dass Glassfish JDK 8 benötigt. Denn wechseln Sie zu Manage Platforms.

Im Java Platform Manager über Button Add Platform die JDK 8 auswählen. Java Standard Edition. Next. Per Browse eine JDK 8 auswählen. Finish. Zurück im Dialog. Dort Close. Im Platform-Dialog steht nun JDK 1.8. OK.



Zurück in die Source. Grünes Dreick klicken. Server auswählen über Klappbox und der Server sollte durchstarten. Letzeres kann ein wenig dauern.

Testen des Servers mit curl:

curl -v --header "Content-Type: application/xml"  http://localhost:8080/Rest/app/service

Anlegen eines REST-Projekts

Aus dem Menü von NetBeans wird der Punkt File | New Project.. aufgerufen. Im Dialog wird in der linken Spalte Java with Maven gewählt, in der rechten Spalte Web Application

Im darunterliegenden Feld erscheint die Meldung: This feature is not yet enabled. Press Next to activate it, sofern die Dienste nicht bereits bei Start des Servers aktiviert worden sind.

Auf den Klick von Next erscheint ein zunächst leerer Dialog, der sich erst nach einer Weile füllt. Es erscheit dann auch der Button Activate, der nun zu drücken ist, um ein neues Progressbar-Kino zu starten.

Jetzt erscheint der Dialog mit dem Projektnamen. Hier habe ich rest und unter Group Id de.willemer eingegeben. Nach dem Klicken auf Next erscheint die Server-Auswahl.

Sofern nicht bereits zuvor wie oben beschrieben, ein Glassfish-Server angelegt wurde, muss das jetzt passieren. Dazu auf den Button Add klicken. Hier erscheint eine Liste aller möglichen Server. Glassfish auswählen und Next klicken. (siehe oben)

Im nächsten Dialog wird nach dem Pfad der Glassfish-Installation gefragt, den Sie sich hoffentlich gemerkt haben. Mit Browse können Sie diesen auswählen.

Nun klicken Sie Next, dann Finish und landen im Eltern-Dialog. Dort klicken Sie auch Finish.

Nun wird Maven aktiv und baut die ganze Entwicklungsumgebung zusammen. Das passiert im Hintergrund und dauert eine Weile. Dann erscheint das Projekt und Application und Ressource sind erzeugt.

Frage nach CVS

Bei Anlegen des Projekts fragt NetBeans, ob ein dafür ein CVS eingerichtet werden soll. Dafür sei kein Client angelegt.

Die Service-Klasse

NetBeans legt im Rest-1.0-SNAPSHOT und Source-Packages im Package de.willemer.rest.resources eine Service-Klasse an. Hier ändern Sie die Methode in der unten beschriebenen Weise, um einen String statt einer Exception zu erhalten.

Auch ändern Sie den Pfad auf service, oder was immer Ihnen besser gefällt.

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Response;


@Path("service")
public class JakartaEE9Resource {
    
    @GET
    @Produces("application/xml")
    public String getXml() {
        // TODO return proper representation object
        return "Huhu";
    }
}

Die Application-Klasse

Auch die Application-Klasse wird angelegt, allerdings unter de.willemer.rest.

import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;

@ApplicationPath("app")
public class JakartaRestConfiguration extends Application {
}

SOAP

SOAP ist die Realisierung eines Remote Procedute Calls, also eines Funktionsaufrufs auf einen Rechner über das Netzwerk. Voraussetzung für NetBeans ist natürlich ein eingerichteter Application Server wie hier dem Glassfish.

Die folgenden Schritte erzeugen ein Server-Projekt:

  1. New Projekt
  2. Auf der linken Seite Java with Ant aufklappen, dort Java Web auswählen
  3. Auf der rechten Seite Web Application anwählen.
  4. Next
  5. Projektname festlegen Next
  6. Server und Settings belassen. Next
  7. Frameworks. Hier kann Spring, JSF und/oder Struts gewählt werden.
  8. Finish
Das Projekt ist nun angelegt. Anschließend müssen die Methoden definiert werden, die aus der Ferne aufgerufen werden können. Diese werden von NetBeans Web Service genannt. Sie erstellen einen solchen Dienst in folgenden Schritten:
  1. Das Projekt mit rechter Maustaste anklicken.
  2. New | Web Service
  3. Web Service Name eingeben und Package-Namen, dann
  4. Finish
Für das Projekt wurde die Dienstklasse MyWebService angelegt. NetBeans erzeugt automatisch den folgenden Code.
package myservice;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;

@WebService(serviceName = "MyWebService")
@Stateless()
public class MyWebService {

    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        return "Hello " + txt + " !";
    }
}

Testen des SOAP-Webdienstes

Der neue Dienst kann getestet werden, indem das Projekt im Application Server gestartet wird, also deployed wird. Nach dem Start kann die Java-Datei des Webdienstes getestet werden. Dazu wird die Datei mit der rechten Maustaste angeklickt und aus dem Menü Test Web Service ausgewählt werden.

Es erscheint ein Webbrowser, in dem eine Testumgebung für den Service mit passenden Eingabefeldern angeboten wird. Für den Test geben Sie hier die Parameter ein und erhalten nach dem Absenden auf einer weiteren Webseite das Ergebnis.

Erzeugen einer WSDL-Datei

Für die WSDL-Dateien muss ein Verzeichnis geschaffen werden. Im Projektordner Web-Pages/WEB-INF wird ein Verzeichnis wsdl angelegt. Dazu wird der WEB-INF mit der rechten Maustaste angeklickt und New | Folder ausgewählt und der Name auf wsdl geändert. Hier sollen die WSDL-Dateien liegen.

Nun muss die WSDL-Datei noch erzeugt werden. Dazu werden die fertigen Web-Service-Klassen, die im Projektordner Web Services stehen, mit der rechten Maustaste angeklickt und Generate and Copy ausgewählt. Im Folgedialog wird das neu geschaffene Verzeichnis ausgewählt.

Wird eine Java-Version ab 11 verwendet, kann es sein, dass bei dem Erzeugen einer WSDL-Datei ein Fehler auftritt, dass eine JAR-Datei fehlt. Diese Website empfiehl die JAR jax-api herunterzuladen.

Verbindung ohne WSDL-Datei

Für Erzeugung von Client und Server in SOAP ist unter NetBeans die WSDL-Datei aber gar nicht erforderlich. Es genügt, den Client mit dem Serverprojekt zu verbinden.
  1. Aus dem Hauptmenü File | New Project anklicken
  2. Im Dialog wird auf der linken Seite Java with Ant und auf der rechten Seite Java Application ausgewählt.
  3. Next
  4. Im Folgedialog wird der Namen der Applikation eingegeben.
  5. Finish
Als nächstes wird der aufzurufende Dienst ausgewählt. Dazu wird das Projekt mit der rechten Maustaste angeklickt.
  1. Aus dem Kontextmenü New | Web Service Client anklicken
  2. Der Radio-Button Project sollte anwählt sein und den Button Browse dahinter anklicken.
  3. Es erscheint eine Liste der SOAP-Server-Projekte. Klappen Sie das gewünschte auf und wählen Sie daraus den Web Service aus.
  4. OK
  5. Finish