[ERROR] rpc/encoded wsdls are not supported in JAXWS 2.0.

Mappenz

Bekanntes Mitglied
Hi,

Ich gehe gerade meine ersten Schritte in Sachen Webservice und habe nur mäßig Java Erfahrung. Meine Aufgabe ist es ein Programm zu schreiben, dass mit einem Webservice kommuniziert. Den Code des Webservices kann ich nicht anfassen. Es gibt massenweise Anleitungen zu JAX WS 2.0, was mir als sehr angenehm erscheint. Leider ist das Format des Webservices nicht kompatibel zu JAX WS 2.0. Wenn ich wsimport -keep ausführen möchte erhalte ich die Fehlermeldung aus dem Titel.

Nach etwas Recherche glaube ich nun zu wissen, dass das Format veraltet ist und habe versucht das Problem so zu lösen wie man es früher gemacht hat. Mit JAX RPC. Dabei habe ich eine Anleitung von 2005 gefunden: Creating a Simple Web Service and Client with JAX-RPC.
Nun sind die tools die im tutorial verwendet werden nicht (mehr) in aktuellen Java Installationen dabei. Ansonsten käme ich schon mit der Anleitung klar.

Da ich in zwischen schon eine beachtliche Menge Zeit in diese Aufgabe gesteckt habe ohne weiter zu kommen erlaube ich mir zu Fragen wie man dieses Problem üblicher weise Löst. Ich kann ja nicht der Einzige sein der mit veralteten Webservice Formaten umgehen muss. Wäre es denn eine gute Idee die Tools irgendwo zu besorgen und mich an das tutorial zu halten?

Der Webservice tut im übrigen nicht viel, er nimmt 2 Zahlen an und gibt einen zufälligen Wert dazwischen zurück.

mit freundlichen Grüßen
Michi
 

Mappenz

Bekanntes Mitglied
Ich habe mich nocheinmal 4 Stunden rangesetzt. Kein realer Fortschritt. Ich habe die Vermutung, dass ich mit SoapUI meine Stubs erzeugen könnte. Leider ist Installation des Eclipse Plug-Ins nicht einfach, da irgendwelche Abhängigkeiten nicht aufgelöst werden können und die Standalone version auf meinem xubunutu nicht auf Eingaben reagiert. Kurze suche hat hier eine Hilfe gebracht. Nun habe ich noch Hoffnung dass Axis die Lösung bringt. Das werde ich mir aber morgen anschauen. Ansonsten konnte ich nicht herrausfinden woher ich asant bekomme.

Falls jemand weis wie das Problem gelöst wird möge er mir doch bitte bitte sagen wie. Am liebsten wäre mir eine Lösung mit Eclipse oder der Shell.
 

Mappenz

Bekanntes Mitglied
Ich habe glassfish nun installiert und auch schon damit rumexperimentiert. Leider weis ich nicht so recht was ich damit anfangen soll. Die Shell kennt die JAX-RCP Befehle nicht, aber wenn ich asadmin ausführe kann ich, so wie ich verstehe, die Befehle verwenden. Meine letzten versuche orrientierten sich hauptsächlich an Creating a Simple Web Service and Client with JAX-RPC.

Als Beispiel ein Ausschnitt der Shell:

Code:
asadmin> wscompile http://dienst.speicherweb.de/****.php5?wsdl
Remote server does not listen for requests on [localhost:4848]. Is the server up?
No such local command, wscompile. To run remote commands, start the application server (e.g. 'asadmin start-domain').
Command wscompile failed.

an http://dienst.speicherweb.de/****.php5?wsdl liegt der Webservice. Wie erzeuge ich schnell die Stubs damit ich endlich coden kann?

gruß
Michi
 

fax

Mitglied
Code:
set PATH=%PATH%;%GF_HOME%\bin

%GF_HOME% ersetzt du durch den tatsächlichen Installationspfad von GlassFish. Wenn GlassFish z.B. unter C:\glassfish3 installiert ist, dann tippst du:

Code:
set PATH=%PATH%;C:\glassfish3\glassfish\bin

(Ja, das zweite glassfish muss da sein.)
 

Mappenz

Bekanntes Mitglied
So langsam bin ich dem Ziel schon ganz nahe. Ich benutze Linux, aber nachdem ich die Pfadvariablen gesetzt habe kann kann ich zwar asant immer noch nich aufrufen, dafür aber wscompile. Das ist mehr ist meiner Meinung nach auch nicht nötig.

Nochmal zur Erinnerung: Ich orientiere mich an diesem Tutorial: Creating a Simple Web Service and Client with JAX-RPC.

Nach dem sich ein einige Ideen als Falsch herrausgestellt haben bin glaube ich nur noch einen Schritt von den stubs entfernt zu sein.

ich habe eine xml Datei mit dem namen configWeb.xml mit dem Inhalt geschrieben:

[XML]<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<wsdl location="http://dienst.speicherweb.de/*****.php5?wsdl" packageName="uebungarbeit.web"/>
</configuration> [/XML]

Nun rufe ich wscompile so auf:
Code:
wscompile -gen:client -d src/web configWeb.xml
und erhalte als Fehlermeldung:
Code:
Fehler: com.sun.tools.javac.Main ist im Klassenpfad nicht verfügbar..
Fehler: Kompilierung fehlgeschlagen, die Fehler wurden gemeldet

Wenn ich in der console javac eingebe startet javac. Es wundert mich nicht, dass der classpath nicht mehr stimmt, schließlich wurde aus allem was früher sun hieß oracle. Wie erfährt nun wscompile davon, falls das überhaupt zielführend ist? Schließlich will ich nur die stubs haben.

Nebenbei: http://java.sun.com/xml/ns/jax-rpc/ri/config wie in der xml verwendet gibt es auch nicht mehr, scheint aber nicht zu stören, versteh nicht warum das keine Probleme macht.

update
Code:
wscompile -gen:client -d src/web -classpath usr/lib/jvm/java-1.5.0-gcj-4.5/lib/ configWeb.xml
machst auch nicht besser, ich habe rausgefunden, dass ich tools.jar irgendwie verwenden muss.
 
Zuletzt bearbeitet:

fax

Mitglied
Wenn ich in der console javac eingebe startet javac. Es wundert mich nicht, dass der classpath nicht mehr stimmt, schließlich wurde aus allem was früher sun hieß oracle. Wie erfährt nun wscompile davon, falls das überhaupt zielführend ist? Schließlich will ich nur die stubs haben.
Setze JAVA_HOME.

Nebenbei: http://java.sun.com/xml/ns/jax-rpc/ri/config wie in der xml verwendet gibt es auch nicht mehr, scheint aber nicht zu stören, versteh nicht warum das keine Probleme macht.
Das ist nur der XML Namespace. Der sollte eindeutig sein, aber eine real existierende URL muss das nicht sein.
 

Ähnliche Java Themen

Neue Themen


Oben