Hat AXIS2 noch Zukunft und wie REST implementieren?

Status
Nicht offen für weitere Antworten.
Hallo WS Experten,

Ist AXIS2 noch ein Projekt in das es sich lohnt einzuarbeiten?: Denn es wurden doch mit den ganzen XML JCPs in Java 6 alle möglichen XML-Libraries/Interfaces aufgenommen, die eine Verarbeitung von XML direkt mit den "Standard Libraries" von Java 6 ermöglichen sollen, oder hab ich da was falsch in Erinnerung!? Braucht man heute überhaupt noch AXIS2, wenn ja was sind die Vorteile?

Ich möchte/muss ein paar "Services/Methoden" extern über das Web nutzbar machen. Am liebsten würde ich das so implementieren, dass diese Services sowohl per SOAP als auch parallel per REST angesprochen werden können.

Falls ihr mir da ein paar Stichworte nennen könntet, wie man das (REST+SOAP parallel) "am zukunftssichersten" implementieren könnte, und welche Libraries/Interfaces relevant sind, wäre super prima, dann kann ich das als Basis für eine Google und Tutorial-Suche verwenden. (ich weiss garnicht wo ich da anfangen soll die ganze WS-Terminologie ist so viel neues dabei...hab schon etwas recherchiert aber ausser axis2 und jersey nichts gefunden. ich würde das aber gerne, wenn möglich, mit den nativen java 6 interfaces machen bzw. eben mit den zukunftssichersten projekt...)

Vielen Dank!!!!
tim
 

Noctarius

Top Contributor
Prinzipiell kannst du weiterhin Axis benutzen, allerdings finde ich andere Frameworks wie Spring WS oder CXF angenehmer.

Um einen REST WebService zu entwickeln, muss man die grundlegende Philosophie hinter REST verstanden haben.

Ob es sich lohnt einen WebService über 2 Wege zu implementieren (bzw erreichbar zu machen) hängt sehr vom Einsatzzweck ab und ich würde in den meisten Fällen eher zu nein tendieren.

Um Tipps oder Stichpunkte zu nennen, wäre es hilftreich zu wissen wie weit du dich mit SOAP Techniken, REST und z.B. solchen Dingen wie Axis schon beschäftigt hast, ob du Spring kennst und vielleicht sogar schon verwendet hast und wie weit deine Java Kentnisse im Allgemeinen sind.
 
Hallo Noctarius,

vielen Dank für die schnelle Antwort!

Spring Nutzer bin ich derzeit noch nicht. Allgemein bin ich relativ gut mit den ganze Standard Java Interfaces und Programmierung vertraut und relativ wenig mit Java EE (bis auf Servlets...).

Aber ich arbeite mich gerne in neue Themen ein, deswegen auch die Frage, nur wäre es blöde wenn ich mich in ein bald veraltetes Framework einarbeite: Hatte etwas die Befürchtung dass Axis2 evtl. durch die ganzen neuen "Java Standards" JAXB JAX WS und wie die alle heissen bald nicht mehr benötigt wird und eben diese JAXB, JAXWS und die tausend anderen JAX-* Interfaces kenne ich alle derzeit noch nicht...

Danke für den Tipp mit CFX kannte ich noch nicht und hab mal gegooglt und auch einen guten Vergleich zwischen Axis2 und CFX gefunden. Axis2 ist wohl mehr für sehr komplexe Schemas am besten...

Eigentlich würde ich persönlich SOAP deutlich dem REST vorziehen, da ja über die WSDLs alles sauber definiert ist und man sehr schön die ganzen Client/Server Klassen generieren kann. Aber die Anwendung soll auch für LAien einfach nutzbar sein (im Sinne der Twitter-API, dass wirklich jeder die Schnittstelle nutzen kann) und da ist wohl REST besser. (Die Methoden sind alle "Statless" insofern spricht das auch nicht gegen REST).

Falls dir noch ein paar Stichworte oder Meinungen oder gute Frameworksd zum Thema "SOAP und REST" parallel einfallen, bin ich dir sehr dankbar. Auch falls du konkrete Bedenken gegen Axis2 hättest natürlich auch, aber so wie sich mir das jetzt darstellt, ist AXIS2 trotz den ganzen JAX-* Standards nicht davon bedroht, bald nicht mehr benötigt zu werden?

Vielen Dank!!
Tim
 

Noctarius

Top Contributor
REST ist nicht umbedingt XML. Daher meinte ich, mit dem REST Konzept muss man sich auseinandersetzen.

REST sagt in erster Linie, dass jedes Objekt seine eigene URL hat. Quasi wie eine Html-Seite auch. Dann nutzt REST auf diese URLs die Standard HTTP Methoden GET, PUT, POST, HEAD, DELETE, ... um die Inhalte abzufragen, zu ändern, zu löschen oder sonst wie zu verändern.

Wie diese Veränderungen übermittelt werden liegt an der Implementierung und ist nicht an XML gebunden (bei SOAP übrigens auch nicht, auch hier gibt es binäre Transports). Sicher kannst du z.B. wenn dein Objekt folgendermaßen heißt:
Code:
bar.foo.service.Bill[/code}
Könnte deine REST-URL so heißen:
[code]http://www.foo.bar/service/billing/Bill/100

Damit würde man die Rechnung mit der Rechnungsnummer 100 definieren. Wenn du nun ein HTTP-GET darauf ausführst, bekommst du die Daten der Rechnung übertragen, bei einem PUT würde die Rechnung angelegt und etwaige Daten eingetragen werden.

Jetzt könntest du alternativ zum WSDL das XSD Schema veröffentlichen, in dem du z.B. folgende URL macht:
Code:
http://www.foo.bar/service/billing/Bill/Schema

Antwort vom Server wäre die aktuelle XSD-Schema Definition.

---------
Allgemein ist Spring eine sehr gute Hilfe, da Spring viele Details der unterliegenden Transportschicht weg abstrahiert. Z.B. lassen sich sowohl CXF als auch AXIS und andere unterhalb von Spring nutzen und durch Konfiguration der Spring-Connectoren austauschen.
 

bronks

Top Contributor
... Ist AXIS2 noch ein Projekt in das es sich lohnt einzuarbeiten?: Denn es wurden doch mit den ganzen XML JCPs in Java 6 alle möglichen XML-Libraries/Interfaces aufgenommen, die eine Verarbeitung von XML direkt mit den "Standard Libraries" von Java 6 ermöglichen sollen, oder hab ich da was falsch in Erinnerung!? Braucht man heute überhaupt noch AXIS2, wenn ja was sind die Vorteile? ...
Vortei: AXIS kann NTLM. Die Standard Libs nicht.
 

Noctarius

Top Contributor
Normal brauche ich bei einem WebService aber kein NTLM, deswegen heißt es WebService ;-) *klugscheiss* *gg*
 
hallo,

vielen dank für Eure Antworten!

(Langfristig werde ich wohl nicht um Spring oder einer der verwandten Ansätze mit IoC/Dependency Injection rumkommen. Kurzfristig habe ich jetzt erstmal Axis2 direkt verwendet... Ist aber noch nicht ganz am Laufen...)

Nochmals vielen Dank für eure Tipps!

viele Grüße
Tim
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Axis2 Dateien lesen und schreiben - Pfade SOA 1
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
C SSL in Tomcat mit Axis2 SOA 4
K Axis2 SOAP Logging via Client SOA 2
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
S Axis2 Fault - Wie im Client auslesen? SOA 6
S Axis2 / Rampart - XML-Datei verschlüsseln & versenden SOA 14
J Axis2 und wiederverwenden der Serverobjekte SOA 3
B Axis2 Cipher Suite und Protocol einschränken SOA 2
H Axis2 dynamische URL zu WSDL SOA 2
H Axis2: XML<->DB SOA 2
T Axis2 Problem: leeres Array? SOA 1
S Axis2 MustUnderstand problem mit Boolean SOA 9
F Axis2 große Strings streamen SOA 3
A Axis2 oder 1 Ntlm Authentification SOA 5
J Axis2 und Tomcat SOA 4
R AXIS2 u. Eclipse (Galileo) Fehler bei Serverstart SOA 2
G Stub generieren (WSDL=Axis1.4) (WSDL2JAVA=Axis2) SOA 11
H Axis2 Deployment SOA 5
R SOAP Nachrichtenaustausch zwischen Axis2-WSs SOA 5
S Exception in axis2 java2wsdl ant Task SOA 1
N Request-XML-String -> AXIS2 -> WSDL-Check -> Respon SOA 2
G Axis2 Properties SOA 6
N Axis2: Binärdateien übertragen mit JWS/RPC SOA 2
M Axis2 vs XFire vs JAX-WS SOA 4
N Axis2 - hibernate.cfg.xml - wohin? SOA 6
K Axis2 Service / deploying to Tomcat 5.5.25 / web.xml SOA 5
F Axis2 und Listen SOA 3
I Axis2 mit SSL verschlüsseln SOA 4
N Axis2 - Cliententwicklung SOA 3
G axis2 rampart 1.3 SOA 1
K Webservices mit Axis2 SOA 2

Ähnliche Java Themen

Neue Themen


Oben