wsimport: hinzufügen Verbindlich, wenn die XSD ist eingebettet in WSDL?
Ich versuche zu erzeugen java-code aus dem folgenden WSDL: http://www.ebi.ac.uk/Tools/services/soap/emboss_needle?wsdl
$ wsimport -keep "http://www.ebi.ac.uk/Tools/services/soap/emboss_needle?wsdl"
aber es erzeugt einige JAXBElement<String>
statt String
. Also habe ich versucht, zu verwenden xjb verbindlich, wie es hier beschrieben wird: Loswerden von JAXBElement in Klassen generiert wsimport Aufruf von ant
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0">
<jxb:bindings>
<jxb:globalbindings generateelementproperty="false">
<jxb:javatype name="java.lang.String" xmltype="xs:string"/>
</jxb:globalbindings>
</jxb:bindings>
</jxb:bindings>
aber wsimport wirft eine Ausnahme:
$ wsimport -keep -b binding.xjb "http://www.ebi.ac.uk/Tools/services/soap/emboss_needle?wsdl"
[ERROR] The "jxb:globalbindings" customization is not associated with any schema element.
line 6 of file:/home/lindenb/tmp/WS/biostar14996.xjb
XSD-schema ist eingebettet in das WSDL-Dokument. Welche URI sollte ich ihm für die jxb:schemaLocation ? Wie kann ich das problem beheben ?
Dank,
P.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Irgendwann landete ich mit:
Den EMBL-EBI EMBOSS needle service (http://www.ebi.ac.uk/Tools/services/soap/emboss_needle?wsdl), und die meisten Ihrer anderen Analyse-tool services (siehe http://www.ebi.ac.uk/Tools/webservices/) ermöglichen, die für die Einreichung von Parametern zu drei Staaten:
Dieser sorgt für die Kompatibilität mit einer breiten Palette von SOAP-tool-kits, von denen einige davon aus, dass nur eine oder zwei von diesen drei Verhaltensweisen.
Eine unglückliche Nebenwirkung von diesem ist, dass tool-kits, wie JAX-WS, die verstehen, dass es drei Staaten, müssen Sie eine komplexere Darstellung, um diese zu bewältigen. So ist die JAXBElement Klassen erforderlich sind. EMBL-EBI bietet Beispiele für clients mit source-code mithilfe von JAX-WS für Ihre InterProScan (SOAP) und NCBI-BLAST (SOAP) Dienste, die das gleiche Muster verwenden für Ihre Parameter (siehe http://www.ebi.ac.uk/Tools/webservices/tutorials/06_programming/java/soap/jax-ws).
Ich glaube, dein problem ist ähnlich dieser Beitrag; es gibt links, die Sie in der Dokumentation, als auch die Lösung; im Grunde, wenn Sie binden anhand von WSDL-Dateien benötigen Sie eine andere top-level-element; die akzeptierte Antwort gibt Ihnen der Befehlszeile.