Generieren Von Wsdl/Client-Stubs Für Die Web-Service
Ich habe ein wenig Lesen auf web services-Programmierung mit Java, Eclipse, etc. und ich fand ein spezielles Beispiel, wo die person erstellt den web service und client, indem Sie Folgendes tun:
- definieren die web service-java-Klasse (interface + impl)
- bereitstellen des web service mit Endpunkt.veröffentlichen
- greifen die wsdl von der url des web-service (z.B. localhost://Gruß?wsdl)
- verwenden wsimport zum generieren von stubs
- erstellen Sie eine client-Klasse mit generierten stubs
Gibt es einen anderen Weg zu erzeugen, die wsdl die zimmerreserviereung, ohne das veröffentlichen des web-service, und download es? Vielleicht ein maven-plugin zur automatischen Generierung von wsdl und client-stubs?
Update: Anstatt eine neue Frage, ich bin gerade dabei, Huckepack auf dieses.
Ich habe meine web-service durch die Definition einer Schnittstelle:
@WebService
public interface HelloWorldWs {
@WebMethod
public String sayHello(String name);
}
und ein impl-Klasse:
@WebService(endpointInterface = "com.me.helloworldws.HelloWorldWs")
public class HelloWorldWsImpl implements HelloWorldWs {
@Override
@WebMethod
public String sayHello(String name) {
return "Hello World Ws, " + name;
}
}
Wenn ich wsgen bekomme ich die folgende Fehlermeldung:
The @javax.jws.WebMethod annotation cannot be used in with @javax.jws.WebService.endpointInterface element.
Eclipse scheint in Ordnung zu sein mit ihm.
Ahnung warum?
Hinweis, ich habe ursprünglich nicht die Anmerkung, aber wenn ich versuchte zu rufen, mein webservice bekam ich die folgende Fehlermeldung:
com.me.helloworldws.HelloWorldWsImpl is not an interface
where the person created the web .. bla bla
. Können Sie mir link von diesem Beispiel, es wäre für mich sehr hilfreich, zu verstehen, die Web-Services
InformationsquelleAutor Jan Tacci | 2013-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den JSR 224 sagt in Abschnitt 3.1:
Wenn die Umsetzung Klasse gehören die
javax.jws.WebMethod
, dann können Sie nicht setzen@WebMethod(exclude=true)
und dass in nicht möglich ist, nach Spezifikation.Hängt von benutzerdefinierten version von Eclipse, zeigt eine Warnung für diese. z.B. Rational Application Developer for Websphere zeigt:
Neugierig.. ich habe ein interface geschaffen für mein webservice und dann eine impl-Klasse und kommentiert die impl-Klasse mit @WebService(endpointInterface = "com.cookmv.helloworldws.HelloWorldWs"). Wsgen beschwert sich über die Verwendung enpointInterface. Irgendeine Idee warum?
Siehe meine aktualisierte Frage oben.
Die JAX-WS-runtime verwenden o nicht verwenden, werden die Anmerkungen, wie Axis2 in Websphere nicht den Namen.
Können Sie etwas näher bitte? Wenn es keine Anmerkungen, was tut es?
InformationsquelleAutor Paul Vargas
Während der Programmierung/erstellen eines Projekts (mit einigen erweiterten IDE) normalerweise sollten Sie in der Lage, es zu finden, zwischen automatisch generierten Zeug - der IDE generieren soll. Nur überprüfen Sie es sorgfältig auf.
Wenn Sie es nicht finden (was unwahrscheinlich ist) versuchen Sie, erstellen Sie einen test-web-service-client, IDE normalerweise lassen Sie es Tat. Es sollte dort (zwischen-test-client-Dateien)
InformationsquelleAutor Alex Kreutznaer