2009-06-15 6 views
3

Wie schwer ist das Hinzufügen einer grundlegenden Web-Services-Schnittstelle zu einer bestehenden Java-Server-Anwendung, ohne es in ein WAR zu verwandeln, oder einen kleinen Webserver wie Jetty einbetten?Java: grundlegende Web-Service-Schnittstelle ohne einen Webserver

sagen, Xml-RPC statt moderner Ansätze, wenn es hilft.

Wenn nicht zu schwer, können Sie einen Ausgangspunkt vorschlagen?

danken Ihnen im Voraus :)

Antwort

2

Es klingt, als würden Sie nach dem Unmöglichen fragen: Setzen Sie einen HTTP-Dienst frei, ohne einen HTTP-Server einzubinden oder einzubetten!

Sofern Sie nicht neu implementieren möchten, was Jetty bereits tut, würde ich empfehlen, Jetty als eine Bibliothek zu verwenden. Auf diese Weise müssen Sie den komplizierteren Aspekten der Servlet-Spezifikation nicht folgen. Z.B. Ihre Servlets können echte Konstruktoren mit Parametern haben.

Es gibt auch eine einfache HTTP-Server-Implementierung in JDK 6, aber es ist im com.sun-Namespace, so dass ich es für den Produktionscode vermeiden würde.

+0

am Ende werden wir die Architektur umgestalten, um die Anwendung eine .war-Stil Webapp, es ist bereits modular genug , Embedded Jetty bleibt ein Sicherheitsplan und ich hoffe, damit so schnell wie möglich zu spielen, es scheint viel einfacher, sobald die Grundlagen gelernt sind. danke Ihnen allen. – user120747

0

Ich weiß nicht, was Sie tun, aber was ist rmi?

RMI @ stackoverflow

+0

das war in der Tat unser erster Versuch, aber leider aus unbekannten Gründen eine zurückblickende Server-zu-Client-Verbindung (zum Client Random Port, sozusagen) zum Zeitpunkt des Aufrufs erstellt (wir verwenden keine Rückrufe, daher vermuten wir Es ist alles rmi Low-Level-Zeug, vielleicht DGC ??), Verbindung, die wir nicht loswerden können. es ist wirklich schade, aber was zum ..., was ist mit dieser Verbindung, waren TCP-Verbindungen nicht bereits bidirektional? :( – user120747

+0

Ja, RMI erstellt zwei Verbindungen. Wenn Sie Firewall-Probleme haben, können Sie wählen, welche Ports zu verwenden. – Macarse

0

Spring-WS has the facility für JRE 1.6 des integrierten Web-Server verwenden, wenn das eine Option für Sie ist. Mit Spring-WS erhalten Sie eine sehr gute SOAP-Server-Ebene, wenn Sie danach suchen.

Wenn nicht, dann ist eine eingebettete Jetty-Instanz wahrscheinlich die beste Idee.

2

Schauen Sie sich die Restlet API an, die eine mühelose Methode zur Implementierung von RESTful-Webdiensten bietet, die in einem Webcontainer oder eigenständig ausgeführt werden können.

+0

Was ich von dieser API verwenden kann sieht gut aus, aber die Dokumentation braucht Hilfe. – Tim