JAX-WS erreur sur le fichier WSDL: “Erreur lors de la résolution de la composante 's:schema”

L'Erreur

Je suis en utilisant wsimport dans un projet Java pour générer des sources pour les trois services web SOAP. Les deux premiers fonctionnent très bien: j'utilise le JAX-WS plugin Maven pour attraper le fichier WSDL et de générer des correspondants fichiers source Java.

D'échec pour un service web; j'obtiens l'erreur suivante:

[jaxws:wsimport]
Processing: /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
jaxws:wsimport args: [-s, /home/me/NetBeansProjects/Admin/AdminWeb/target/generated-sources/jaxws-wsimport, -d, /home/me/NetBeansProjects/Admin/AdminWeb/target/classes, -verbose, -catalog, /home/me/NetBeansProjects/Admin/AdminWeb/src/jax-ws-catalog.xml, -wsdllocation, http://erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx?WSDL, -target, 2.0, -extension, -Xnocompile, /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl]
parsing WSDL...
src-resolve.4.2: Error resolving component 's:schema'. It was detected that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl#types?schema1'. If this is the incorrect namespace, perhaps the prefix of 's:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl#types?schema1'.
line 80 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl#types?schema1
undefined element declaration 's:schema'
line 80 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
undefined element declaration 's:schema'
line 127 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
undefined element declaration 's:schema'
line 142 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl


Le Coupable

La différence entre ce fichier WSDL et ceux que le travail est ce qui est dans les lignes indiquées dans le message d'erreur, lignes 80, 127, 142:

<s:element ref="s:schema" />

Remarque: l'élément racine du fichier wsdl définit le "s" de l'espace de noms ainsi:

xmlns:s="http://www.w3.org/2001/XMLSchema" 


Ce que j'ai Essayé

J'ai fait mes recherches. Il ressemble à d'autres personnes ont eu des problèmes similaires, avec des solutions d' "il suffit de ne pas utiliser <s:element ref="s:schema" />", "utiliser une importation tag", pour certains inconnaissable solution qui était apparemment sur le vieux java.net forum (avant il a été pris vers le bas, un incendie criminel de la Bibliothèque d'Alexandrie de Java).

  • J'ai essayé de mettre l'instruction importer juste à l'intérieur de l'élément qui contient le problème tags: <s:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2001/XMLSchema.xsd" />. wsimport me donne une nouvelle erreur:

    [jaxws:wsimport]
    Processing: /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    jaxws:wsimport args: [-s, /home/me/NetBeansProjects/Admin/AdminWeb/target/generated-sources/jaxws-wsimport, -d, /home/me/NetBeansProjects/Admin/AdminWeb/target/classes, -verbose, -catalog, /home/me/NetBeansProjects/Admin/AdminWeb/src/jax-ws-catalog.xml, -wsdllocation, http://erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx?WSDL, -target, 2.0, -extension, -Xnocompile, /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl]
    parsing WSDL...
    Element "{http://www.w3.org/2001/XMLSchema}annotation" shows up in more than one properties.
    line 248 of http://www.w3.org/2001/XMLSchema.xsd
    The following location is relevant to the above error
    line 242 of http://www.w3.org/2001/XMLSchema.xsd
    Property "Any" is already defined. Use &lt;jaxb:property> to resolve this conflict.
    line 108 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    The following location is relevant to the above error
    line 109 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    Property "Any" is already defined. Use &lt;jaxb:property> to resolve this conflict.
    line 184 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    The following location is relevant to the above error
    line 185 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    Property "Any" is already defined. Use &lt;jaxb:property> to resolve this conflict.
    line 199 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
    The following location is relevant to the above error
    line 200 of file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl

    Lignes 108 et 109 référencées dans cette erreur sont les suivantes: (lignes 184-5, 199-200 sont similaires)

    <s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
    <s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
  • J'ai essayé la mise à niveau de jaxws-maven-plugin de 1,10 à 2.2. Même problème.

  • Voici une solution possible -- J'en suis à essayer de comprendre comment mettre en œuvre cette aide JAX-WS plugin Maven. Un indice?

Conclusion

Des idées? Tout complément d'information dont vous avez besoin? J'ai omis de le pom.xml et de Service.asmx.fichiers wsdl pour des raisons de concision, mais pourrait inclure s'il y a de plus en plus important d'informations en eux.

Merci!


Addenda

Voici une autre personne ayant le même problème, si c'est utile pour tout le potentiel de answerers.
Voici encore un autre problème similaire.
Je ne comprends pas vraiment cet article, mais elle semble sous-entendre que je dois analyser le SOAP XML manuellement! Horreur!

  • Cela peut être dû à bug JAXP-14 ... toutes les solutions connues?
InformationsquelleAutor Nick | 2012-11-21