Java Projekt goes Webservice

Decrayer

Mitglied
Hallo,

Ich habe jede Menge Java-Klassen, die bisher in einem eigenständigen Java-Programm verpackt waren. Jetzt geht es allerdings darum, dass ganze zu einem hübschen Paket zu verschnüren, dass dann als Webservice bereit gestellt werden soll (also als .war Datei um es z.B. auf einem JBoss deployen zu können).

Wie geht man da am besten vor? Ich habe das Projekt bisher nur in meinem normalen Java (nicht ee) Eclipse.

Woran ich bisher gescheitert bin:
Ich habe mir Java EE Eclipse heruntergeladen und auch erfolgreich ein Test-Dynamic Web Project erstellt und auf einen JBoss deployed. Allerdings weis ich nicht, wie ich mein bisheriges Java Projekt sauber in Java EE Eclipse hinein bekomme, denn immer wenn ich es versuche, gibt es ein riesiges Chaos, weil wir viele referenced libraries verwenden und diese in einem EE Projekt nicht gruppiert werden. Und im normalen Java Eclipse fehlt die Option, ein "Dynamic Web Project" zu erstellen und ich weis nicht, welche Pakete ich von welchen Quellen installieren muss, um das zu ermöglichen.

Wenn ich versuche, es mit diesem Tutorial hinzubekommen, erhalte ich nacher keine .war Datei, denn der Server wird ja automatisch lokal erstellt.

Gibt es irgendwelche guten Vorgehensweisen um aus einem Java-Projekt einen Webservice zu machen?
 
Zuletzt bearbeitet:

Spitfire777

Bekanntes Mitglied
Hi,

falls einfach nur deine referenzierten Libs fehlen, müsstest du sie sauber über src/main/webapp/WEB-INF/lib hinzufügen können. Habs aber noch nie über den Weg gemacht und ich empfehle es dir auch nicht.

Mit Maven ists eigentlich einfacher (wenn du die aktuellen JBoss Tools hast sollte Maven fertig konfiguriert sein) und ohne Maven fasse ich eigentlich kein J2EE-Projekt an.
Da musst du nur in der pom.xml in deinem Eclipse-Projekt nur ein bisschen XML hinterlegen und Maven lädt dir die Libs automatisch runter, bindet alles für dich ein und mit dem Deployment sollte es auch keine Probleme geben (dank installiertem Maven-Plugin für JBoss).

Hier findest du die passenden Bezeichner und Versionen für deine Libs, falls diese allgemein zugänglich sind: Maven Repository: Search/Browse/Explore

Schreib, obs hingehauen hat.
 
Zuletzt bearbeitet:

Decrayer

Mitglied
Vielen Dank für die Antwort, leider hat sie mir noch nicht wirklich weiter geholfen. Mir fehlt einfach noch etwas mehr Verständnis. Also in erster Linie: Wie mach ich aus einem normalen Java-Projekt einen Webservice?

Im normalen Java Eclipse gibt es ja noch nicht einmal Dynamic Web Projects in der Auswahl. Aber mit dem Tutorial von oben hab ich es trotzdem geschafft, irgendwie eine Webservice Schnittstelle zu erstellen, eben leider nur lokal.

Bedeutet das, dass ich mein Projekt jetzt erstmal auf Maven umstellen muss und dann automatisch Webservices möglich werden? Oder muss ich mein Projekt erst aus der normalen Java Eclipse version exportieren und dann in Java EE Eclipse importieren? Oder wie geht das am besten? Soweit ich weis, ist in der Java EE Eclipse Version Maven schon integriert, oder? Ein anderer Ansatz der mir eingefallen ist, wäre, dass ich die Dynamic Web Project funktionalität in das normale Java Eclipse nachrüste, aber da habe ich nicht die richtigen Pakete für gefunden. Vielleicht schmeisse ich hier aber auch zu vieles durcheinander, ich habe einfach noch keinen wirklichen Durchblick.

Eine detaillierte Anleitung wäre sehr hilfreich, bin mit den Imports/Referenzierungen von Libs/Webservices etc. noch nicht so vertraut.
 

Decrayer

Mitglied
Zusatz: Mein Problem hat sich etwas gewandelt.

Ich habe festgestellt, das mein Test-Webservice gar nicht richtig gestartet wird. Wenn ich ein .war Paket erstelle und es auf den JBoss hochlade und starte, dann bekomme ich folgende Fehlermeldung in Eclipse:

Code:
Optionale Komponente iprod.webservice.LDCJBossWebService wird aufgrund von Ausnahme nicht installiert: java.lang.ClassNotFoundException: iprod.webservice.LDCJBossWebService from [Module "deployment.LDCJBossWebService.war:main" from Service Module Loader]

Wenn ich aber die .war Datei mal mit 7Zip öffne, dann existiert die angeblich fehlende Klasse aber unter:

WEB-INF\classes\iprod\webservice\LDCWebservice.class
 

mjustin

Aktives Mitglied
Ist das ein Tippfehler? In der Fehlermeldung wird iprod.webservice.LDCJBossWebService nicht gefunden, und in web-inf ist eine LDCWebservice.class - da fehlt das "JBoss".
 

Spitfire777

Bekanntes Mitglied
Vielen Dank für die Antwort, leider hat sie mir noch nicht wirklich weiter geholfen. Mir fehlt einfach noch etwas mehr Verständnis. Also in erster Linie: Wie mach ich aus einem normalen Java-Projekt einen Webservice?

Indem du deinen Sourcecode in dein Webservice-Projekt kopierst und die fehlenden Abhängigkeiten in das Projekt integrierst, also deine Libraries (.jar-Dateien) die du verwendest, falls du welche verwendest. Ich gehe mal davon aus, du hast ein paar Klassen und willst einen Webservice drum rum bauen.
Dann musst du den Web Service eben noch dazu programmieren. Wie das geht, ist dann eine andere Geschichte.

Im normalen Java Eclipse gibt es ja noch nicht einmal Dynamic Web Projects in der Auswahl. Aber mit dem Tutorial von oben hab ich es trotzdem geschafft, irgendwie eine Webservice Schnittstelle zu erstellen, eben leider nur lokal.
Im Java EE Eclipse sollte es das aber zur Auswahl geben. Allerdings empfehle ich dir, die JBoss Tools in dein Java EE Eclipse zu installieren. Das machts für dich um Längen einfacher.

Bedeutet das, dass ich mein Projekt jetzt erstmal auf Maven umstellen muss und dann automatisch Webservices möglich werden?
Nein, das hast du wohl falsch verstanden, falls ich dich jetzt richtig verstehe :). Maven ist ein Programm, welches dafür entwickelt wurde, komplexe Projekte (und Java EE ist komplex!!) zu zusammenbauen. Das bedeutet konkret: Abhängigkeiten verwalten, kompilieren, verpacken, etc. Das hat mit Web Services noch nichts zu tun.

Du kannst alles ohne Maven von Hand machen, aber damit wirst du 2 Meter weit auf deinem Weg zum Web Service kommen. Dabei musst du Maven selbst ja eigentlich fast gar nicht anfassen, da Eclipse das für dich abnimmt. Wenn du in Java-EE-Eclipse mit den JBoss Tools ein neues Projekt machst, schenkt dir Eclipse schon ein fertig konfiguriertes Maven-Projekt, sichtbar ist das an der pom.xml die sich in einem Projektordner befinden sollte.

Oder muss ich mein Projekt erst aus der normalen Java Eclipse version exportieren und dann in Java EE Eclipse importieren?
Ja, so würde ich es auch machen.

Soweit ich weis, ist in der Java EE Eclipse Version Maven schon integriert, oder?
Korrekt. Maven 3 ist mit dabei.

Ein anderer Ansatz der mir eingefallen ist, wäre, dass ich die Dynamic Web Project funktionalität in das normale Java Eclipse nachrüste, aber da habe ich nicht die richtigen Pakete für gefunden.
In der Praxis hat man immer ein Eclipse für jeden Einsatzzweck. Zwar lässt sich in einem Eclipse in der Theorie alles beliebig nachinstallieren, aber Eclipse ist nicht gerade ein gutes Beispiel, was Performance angeht.
Am besten du machst dir ein Eclipse für Java EE und installierst dir da noch die JBoss Tools nach und das "normale" Eclipse nimmst du für deine Standard-Projekte.

Vielleicht schmeisse ich hier aber auch zu vieles durcheinander, ich habe einfach noch keinen wirklichen Durchblick.
Willkommen in der wildgewachsenen Java-Welt :) *duckundwegrenn*

Eine detaillierte Anleitung wäre sehr hilfreich, bin mit den Imports/Referenzierungen von Libs/Webservices etc. noch nicht so vertraut.

Beispiel: Du hast nun den Code von deinem alten Projekt ins neue Projekt kopiert und dir fehlt jetzt noch eine Library, die du noch vorher hattest. Nehmen wir mal die SSH-Bibliothek JSch als Beispiel.

Wenn du möchtest, dass sich Maven um die Einrichtung von dieser Library kümmert, musst du folgendes tun:
1. z.B. auf mvnrepository.com gehen und deine Bibliothek in deiner passenden Version suchen. Hier im Beispiel Maven Repository: com.jcraft » jsch » 0.1.50
2. Den XML-Code kopieren. Hier im Beispiel:
[XML]<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.50</version>
</dependency>[/XML]
3. In deine pom.xml unter dem Tag
[XML]<dependencies>[/XML]
einfügen. Achtung! NICHT unter
[XML]
<dependencyManagement>
<dependencies>...[/XML]
4. Rechtsklick aufs Projekt, Maven, Update Project und dann müsste Maven automatisch diese Java-Bibliothek für dich herunterladen und einbinden.
 
Zuletzt bearbeitet:

Decrayer

Mitglied
Ok, jetzt hat's geklappt und klick gemacht. Beide Antworten sind sehr gut und haben wir enorm weiter geholfen, vielen Dank dafür! "Danke Button drück".

Das "JBoss" in der web.xml war wirklich falsch ohne das läuft es jetzt genau so wie es sollte.

Mit Maven hatte ich früher schon mal gearbeitet, ich weis also was es ist. Nur nachträglich so ein Projekt darauf umzustellen ist dann doch etwas doof und lohnt sich nur, wenn man das Projekt noch sehr lange fortführen muss (was hier nicht der Fall ist).

Ich habe ja bisher zwei seperate Eclipse-Installationen genutzt und den Weg fast genau so gemacht, wie Spitfire es vorgeschlagen hat. Ich war mir nur nicht sicher, ob das in diesem Fall der richtige Weg war. Ich hab jetzt einfach ein neues "Projekt" angelegt in dem ich den Webservice implementiere und habe in den ProjectProperties und Java Build Path das andere Projekt das ich in EE importiert habe als Dependency angelegt.

Vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Einfaches Java Projekt funktioniert nicht Allgemeines EE 3
T Größeres Java EE Beispiel Projekt Allgemeines EE 4
N erstes Java EE Projekt - Server/ EJB-Verbindung-Anfängerfage Allgemeines EE 17
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
B Java Mail und idle() mit zig Emailadressen? Allgemeines EE 59
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
B Java mail API - möchte nur eine gewisse Anzahl von Emails in die Liste holen Allgemeines EE 3
M Rest mit Java 11 Allgemeines EE 6
M java.lang.SecurityException: class "javax.persistence.TupleElement"'s signer information does not match ... Allgemeines EE 1
F Java Programmierer Allgemeines EE 13
R Wie viel DevOps sollte ein Java-Entwickler kennen, der sich in Microservices spezialisiert? Allgemeines EE 5
Dimax JSP Probleme mit Java in JSP Allgemeines EE 21
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
B Logging (log4j) in JAVA EE application - WildFly Allgemeines EE 15
A Java EE (am Cleint) und websocket Allgemeines EE 8
J Ich kann Java JDK nicht downloaden Allgemeines EE 6
R Aufbau zum Java EE Entwickler - Schulungen Allgemeines EE 0
G Java EE Hosting ? Allgemeines EE 6
P Java EE Videotutorials Allgemeines EE 1
R Java Enterpise entwickeln mit Virtualbox Allgemeines EE 6
A OutOfMemoryError: Java heap space Allgemeines EE 7
I Start Word from Java Allgemeines EE 1
T Java Jersey Interceptor Allgemeines EE 7
R Post Variable in Java Allgemeines EE 8
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
K Wie habt ihr Java EE gelernt? Allgemeines EE 11
hjpsoft JSF Lösung einer Aufgabe im "Workshop Java EE7" Allgemeines EE 5
S Welcher Java EE Applikationserver für RESTful Webservice? Allgemeines EE 2
T Java Login Allgemeines EE 1
L Certified Master Java Enterprise Architect Java EE Allgemeines EE 3
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
W Authentifizierung und Sessions in Java EE7 Allgemeines EE 0
OnDemand Task in Java ee Allgemeines EE 7
OnDemand JSF - java File Verständnisfrage Allgemeines EE 5
OnDemand Deployen ohne .java Files Allgemeines EE 0
E Wie kann ich über einen Suchfeld in Java Server Pages nach Datenbankinhalten suchen? Allgemeines EE 11
V Java EE 7 CDI, annotations und beans Allgemeines EE 1
G Bachelorthesis: Java oder PHP (CMS) Allgemeines EE 7
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1
T Fertiges html javascrip css template in java EE application Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
L Button Handling in JSP mit Java-Backend Allgemeines EE 2
Shams Frage zu Dowload von JAVA SDK Allgemeines EE 5
N JavaScript schickt und Java empfängt? Allgemeines EE 4
O Java EE in Netbeans + allgemeine Fragen Allgemeines EE 5
H java selenium spezis? Allgemeines EE 4
H java selenium test connection refused Allgemeines EE 6
M Java EE-Technologie-Lern-Wahl Allgemeines EE 5
B [EJB] javax.inject.DefinitionException: bean not a Java type Allgemeines EE 5
J Java Dependencies auslesen Allgemeines EE 19
2 installation java EE Allgemeines EE 12
J PHP oder Java? Allgemeines EE 12
L Webseiten Formulare über Java Oberfläche ausfüllen? Allgemeines EE 2
T Java CMS Entwicklung : Welcher Weg ist besser? Allgemeines EE 9
F Gesucht: Gratis Server für Java Entwickler Allgemeines EE 4
J Einstieg in Java EE Allgemeines EE 5
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
D Grundüberlegung Java Webprojekt Allgemeines EE 10
F Einstieg in Java EE - Beispielanwendungen Allgemeines EE 52
R JAVA EE - eigene Klassen aus EJB übernehmen Allgemeines EE 2
T "normales" Java Programm auf einen Server laufen lassen Allgemeines EE 3
M EE6+EJB+JavaLib: Error in annotation processing: java.lang.NoClassDefFoundError Allgemeines EE 4
G java ResourceLocator Allgemeines EE 12
M Was ist mit Java möglich? Allgemeines EE 13
T Komponenten zusammenhänge Java EE Allgemeines EE 7
A Java CMS Allgemeines EE 2
P Architektur Java EE <-> HTML5 Allgemeines EE 3
A Java Tomcat findet Website nicht Allgemeines EE 8
F Java EE Server nutzung kostenlos an Schule? (zB. mit Glassfish) Allgemeines EE 6
B Java EE, kickstart my heart Allgemeines EE 10
P Frage zu Java EE Design Patterns Allgemeines EE 3
G EJB und Java EE - No Persistence provider Allgemeines EE 5
zilti Java EE Hosting, worauf muss ich achten? Allgemeines EE 5
M Java EE6: Wie Login-Vorgang durchführen? Allgemeines EE 2
MQue Java Web- Application -> MVC Allgemeines EE 4
G Java <-> Flex Allgemeines EE 2
Spin Ant - Java Beans umsetzen Allgemeines EE 4
V "null" durch NICHTS ersetzen jsp und java beans Allgemeines EE 3
M Serialisierung und Klonen in Java Allgemeines EE 5
W JAVA Optionen auslesen Allgemeines EE 3
D Spring 3 vs. Java EE 6 Allgemeines EE 33
MQue CMS in Verbindung mit Java Allgemeines EE 16
X3TitanCore Java Servertechnologie Allgemeines EE 7
C WebStart Fehler nach update auf Java 1.6 Allgemeines EE 2
R Variablen statt Java-Methoden in EL's Allgemeines EE 4
T Suche Buch für: Large Scale Web-Apps | Clustering | Scaling in Java ? Allgemeines EE 4
G Vergleich zwischen Java Spirng und Ruby on Rails Allgemeines EE 9
K EJB Enterprise Java Beans Allgemeines EE 32
F Ich will mit Java Internetseiten bauen, aber wo hosten? Allgemeines EE 14
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
R Java EE Anfänger will mehr. Allgemeines EE 7
A Fragen zum Einstieg in Java EE Allgemeines EE 11
M Evolution der Web-Entwicklung im Java-Bereich Allgemeines EE 15
G Von Java SE nach JavaEE umsteigen Allgemeines EE 31
K Java Application Server + ganttproject *.jar Anwendung Allgemeines EE 6

Ähnliche Java Themen

Neue Themen


Oben