Programm als Webservice laufen lassen

Kizuna

Neues Mitglied
Hallo zusammen,

ich hoffe ersteinmal, dass ich hier im richtigem Forum gelandet bin.

Nachdem ich den ganzen Tag nach Informationen gesucht habe, bin ich jetzt hoffnungslos verwirrt, aber nicht wirklich schlauer...

Zur Zeit habe ich ein Java-Programm geschrieben, was lokal auf meinem Rechner läuft und Eingaben über die Konsole bekommt. Dies läuft auch alles einwandfrei, allerdings möchte ich diese Funktionalität nun über einen Webservice zur Verfgüng stellen.

Da das Initialisieren des Programmes sehr lange dauert, wäre es gut, den Service 1x zu starten und zu initialisieren und dann nur Abfragen an den Service zu stellen. Dabei wäre es mir am liebsten, wenn man die Parameter über die URL übertragen kann, also z.B.

http://localhost:8080/Project/search?string=test

Bisher bin ich jetzt soweit gekommen, dass ich einen Tomcat-Server aufgesetzt habe. Allerdings scheitere ich irgendwie daran, Java-Programme aufzurufen, wenn sie noch weitere jars verwenden).

Kennt jemand vieleicht eine gute Schritt-für-Schritt Anleitung, wie ich vorgehen sollte oder kann mir ein paar Tips geben?

Vielen Dank schon einmal
 
G

Gast2

Gast
Zuletzt bearbeitet von einem Moderator:

JayGabriel

Aktives Mitglied
Mich hat dieses Tutorial (in Deutsch) schnell weiter gebracht.

Wie du aber Parameter per URL übergeben willst bei einem WebService, ist mir nicht ganz klar. Da müsstest du dann eben googlen, wenn dir hier kein anderer weiter helfen kann.

Auch denk ich, dass du dich erst auch noch in das Thema WebService mehr einlesen solltest, damit du auch verstehst, was gerade passiert.

mfg
Jay
 

Kizuna

Neues Mitglied
Danke ersteinmal für die Tutorials, sie waren sehr hilfreich.

Da ich das Problem hatte, dass das Intiliatisieren meines Programmes sehr lange dauert, bin ich jetzt davon abgegangen, es direkt als Webservice laufen zu lassen, sondern ich habe einen RMI_Server erstellt, der die Initialisierung übernimmt.

Das Ganze sieht etwa so aus:

public class Server {
public static void main(String[] args) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
System.getSecurityManager().checkListen(1099);
try {
String name = "Compute";
Finder f = new Finder();
I_Finder stub = (I_Finder) UnicastRemoteObject.exportObject(f, 0);
Registry registry = LocateRegistry.createRegistry(1099);
registry.bind(name, stub);
} catch (Exception e) {
System.err.println("starting CellFinder server caused exception:");
e.printStackTrace();
}
}
}

public interface I_Finder extends Remote {
public String search(String arg) throws RemoteException;
}

public class Finder implements I_Finder {
static int count = 0;
public String search(String arg) {
count++;
return count + "," + arg;
}
}

Zum testen habe ich einen kleinen Client erstellt, der sich über die Konsole starten lässt und auf den Server zugreift:

public class Client {
public static void main(String args[]) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
try {
String name = "Compute";
Registry registry = LocateRegistry.getRegistry("localhost",1099);
I_Finder f = (I_Finder) registry.lookup(name);
String test = f.search("hello world");
System.out.println(test);
} catch (Exception e) {
System.err.println("ComputePi exception:");
e.printStackTrace();
}
}
}

Nun möchte ich den Client aber gerne als Webservice laufen lassen. Dabei ergibt sich für mich das Problem, dass ich zum starten des Clients von der Konsole immer noch die Referenz auf ein server.policy -file mit übergebe (java -Djava.security.policy=/Users/server_workspace/Dummy/server.policy Client).

Ich habe den Client folgendermaßen abgeändert:
@Path("/hello")
public class Client {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return test();}

public String test(){
String test = "test";
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}

try {
String name = "Compute";
Registry registry = LocateRegistry.getRegistry("localhost",1099);
I_Finder f = (I_Finder) registry.lookup(name);
test = f.search("hello world");
}
return test;
}
}

Wenn ich diese Applikation auf dem Server laufen lassen, kriege ich folgende Fehlermeldungen:
SCHWERWIEGEND: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)

SCHWERWIEGEND: Servlet.service() for servlet Jersey REST Service threw exception
java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)

SCHWERWIEGEND: An exception or error occurred in the container during the request processing
java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)

Ich vermute, dass ich irgendwo im Quellcode den Verweis auf server.policy einbauen muss, bisher konnte ich aber leider nichts finden.

Hat jemand einen Vorschlag für mich oder bin ich mit meiner Implementierung vieleicht komplett uaf dem Holzweg?

Kizuna
 
G

Gast2

Gast
He? Warum brauchst du einen RMI Server?

Ich glaub du hast die Tutorials nicht gelesen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
G Programm unter anderer IP ausführen Netzwerkprogrammierung 6
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
A Classpath Tomcat, Start von Programm aus Tomcat Container Netzwerkprogrammierung 1
M Java-Programm aus dem Web laden Netzwerkprogrammierung 3
E Eingabe (auf Internetseite) durch ein Programm machen lassen Netzwerkprogrammierung 19
T UDP Pakete empfangen ohne Programm zu blockieren Netzwerkprogrammierung 3
S HTTP Servlet als Instanzen im Programm starten Netzwerkprogrammierung 3
M Paktete abfangen und zu eigenem Programm umleiten - wie? Netzwerkprogrammierung 5
C Programm per Hompage ansprechen Netzwerkprogrammierung 4
T Download Programm - Download endet vorzeitig (bricht ab) Netzwerkprogrammierung 11
G ObjectInputStream hängt ganzes Programm auf... Netzwerkprogrammierung 7
C Vom Server Programm auf Client starten Netzwerkprogrammierung 2
J net send Popups abfangen und in eigenem Programm ausgeben. Netzwerkprogrammierung 12
M Befehle an externes Java-Programm senden Netzwerkprogrammierung 8
D client programm, passwortverschlüsselung Netzwerkprogrammierung 16
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
M Java-Programm als Webserver erzeugt HTML Netzwerkprogrammierung 8
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
N Datenaustausch zwischen Java-GUI und PHP-Programm über SOAP Netzwerkprogrammierung 19
1 Kommunikation mit externem Programm über TCP Netzwerkprogrammierung 2
B Server-Programm wird durch "read" beendet Netzwerkprogrammierung 8
P Wie gibt man einem GUI Programm ein Web interface? Netzwerkprogrammierung 5
A Programm umschreiben von Pipes auf Sockets Netzwerkprogrammierung 12
P Java Programm als Dienst auf Server Netzwerkprogrammierung 11
T Theoriefrage : Programm-zugriffsrechte auf Netzlaufwerk Netzwerkprogrammierung 14
J Mit Java Anwendung ein (externes) Programm auf einem AIX Rechner starten Netzwerkprogrammierung 6
S Commons Net 2.0 und FTP in meinem Programm Netzwerkprogrammierung 4
lordcarlos Erstes TCP programm - output stream problem Netzwerkprogrammierung 2
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
J programm zum autom. ausdruck einer webseite Netzwerkprogrammierung 2
A Probleme mit kleinem Messenger-Programm Netzwerkprogrammierung 4
L Programm in der RMIRegistry anmelden und benutzen (RMI) Netzwerkprogrammierung 4
H Webserver mit PHP als Java-Programm, gibt es schon so etwas? Netzwerkprogrammierung 12
A Java-Programm auf einem Server laufen lassen Netzwerkprogrammierung 9
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
P Probleme bei Chat programm Netzwerkprogrammierung 2
M Log In Programm für Seiten Netzwerkprogrammierung 2
A download programm Netzwerkprogrammierung 2
G Einfaches Client-Server Programm (verbindungslos) Netzwerkprogrammierung 2
L RMI-Programm ausführen Netzwerkprogrammierung 6
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
J Server soll Zugriff auf Java Programm ermöglichen Netzwerkprogrammierung 3
A JSP->Servlet->Programm (Ausführung) -> Servlet -&gt Netzwerkprogrammierung 2
L einfaches Programm zum herunterladen von Bildern Netzwerkprogrammierung 2
V probleme mit dem chat programm Netzwerkprogrammierung 4
N Hexcode an ein Programm senden. Netzwerkprogrammierung 4
R Mein FileTransfer Programm Netzwerkprogrammierung 12
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
B Wie Router einstellen für CLient-Server-Programm? Netzwerkprogrammierung 4
B Client-Server-Programm! Netzwerkprogrammierung 9
S P2P Programm Netzwerkprogrammierung 2
H E-Mail Programm Netzwerkprogrammierung 3
G Chat Programm - was ist los? Netzwerkprogrammierung 9
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
R per Webservice mit GLS kommunizieren Netzwerkprogrammierung 2
L HTTP Restful Webservice Respone mit Null Body Netzwerkprogrammierung 3
H HTTP Rest Webservice mit Swagger Netzwerkprogrammierung 3
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
T HTTP Eintragen in Webservice Netzwerkprogrammierung 1
S Webservice - Server Netzwerkprogrammierung 0
O Webservice: Telefonbuch (DB) Netzwerkprogrammierung 10
M Einfaches REST Webservice Beispiel Netzwerkprogrammierung 5
C Android: Json-POST Request zu REST Webservice Netzwerkprogrammierung 2
R Webservice und Bilder Netzwerkprogrammierung 29
C Webservice Frage Netzwerkprogrammierung 2
T Webservice als Client aufrufen Netzwerkprogrammierung 2
R Threads mit einem WebService Netzwerkprogrammierung 4
M Map über Webservice übertragen Netzwerkprogrammierung 3
S WebService, 4-stelliger String (Jahr) als Calendar Netzwerkprogrammierung 5
K Webservice: JAX-WS mit Tomcat5.x Netzwerkprogrammierung 2
K Webservice (Annotation) Netzwerkprogrammierung 2
H ArrayList via WebService übertragen Netzwerkprogrammierung 3
R Java webservice Serverpush Netzwerkprogrammierung 4
N NullPointerException in WebService Netzwerkprogrammierung 4
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
O Webservice ohne Eclipse laufen lassen Netzwerkprogrammierung 3
C Webservice, ArrayList übergeben Netzwerkprogrammierung 3
5 Webservice max. mit 5 Clients möglich Netzwerkprogrammierung 10
G .Net Webservice in Java ansprechen Netzwerkprogrammierung 3
N Von WebService auf anderen WebService zugreifen? Netzwerkprogrammierung 8
K Axis2 Webservice Netzwerkprogrammierung 7
G Problem mit Webservice Netzwerkprogrammierung 5
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
C Webservice von Java-Application aufrufen Netzwerkprogrammierung 3
G Webservice: Xml-Rpc: problem mit 2 webservices Netzwerkprogrammierung 3
G Webservice gibt das falsche aus - Wieso Netzwerkprogrammierung 5
N Applet/Applikation auf Xport laufen lassen Netzwerkprogrammierung 10
T Laufen Objekte, die vom Cajo-Server geliefert werden, lokal auf dem Client? Netzwerkprogrammierung 4
O Server laufen lassen Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben