J'ai récemment travaillé sur un service web conforme à ACORD P&C et j'ai rencontré quelques problèmes avec des erreurs de wsimport disant qu'il est incapable d'analyser l'un des fichiers xsd. Le message d'erreur est le suivant :
[ERROR] Unable to parse "D:\projects\DICACORD\DicAcordQuoteRq.xsd" : Illegal character in opaque part at index 2: D:\projects\DICACORD\DicAcordQuoteRq.xsd
Le schéma que j'ai créé est basé sur le schéma ACORD P&C (plus de 23 000 lignes) et je n'ai inclus que les éléments requis que la société doit utiliser. J'ai créé les schémas à l'aide de XMLSpy et selon sa validation, les schémas sont valides mais lorsque j'essaie de créer le service Web dans Netbeans 6.8, j'obtiens le message d'erreur ci-dessus.
Les schémas sont sur ma machine de développement et d'après ce que j'ai pu trouver sur les forums de Netbeans, Netbeans copie le wsdl dans un répertoire à l'intérieur du projet de sorte que lorsque vous le déplacez du développement à la production, tout fonctionne toujours comme prévu.
Le wsdl est le suivant
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 -->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="discoveryinsurance.com/schemas" xmlns:ns="discoveryinsurance.com/schemas/acordRq" xmlns:ns1="discoveryinsurance.com/schemas/acordRs" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="discoveryinsurance.com/schemas">
<wsdl:import namespace="discoveryinsurance.com/schemas/acordRq" location="D:\projects\DICACORD\DicAcordQuoteRq.xsd"/>
<wsdl:import namespace="discoveryinsurance.com/schemas/acordRs" location="D:\projects\DICACORD\DicAcordQuoteRs.xsd"/>
<wsdl:types>
<xs:schema targetNamespace="discoveryinsurance.com/schemas" elementFormDefault="qualified"/>
</wsdl:types>
<wsdl:message name="NewMessageRequest">
<wsdl:part name="parameter" element="ns:ACORD"/>
</wsdl:message>
<wsdl:message name="NewMessageResponse">
<wsdl:part name="parameter" element="ns1:ACORD"/>
</wsdl:message>
<wsdl:portType name="QuotePort">
<wsdl:operation name="QuoteRequest">
<wsdl:input name="quoteInput" message="tns:NewMessageRequest"/>
<wsdl:output name="quoteOutput" message="tns:NewMessageResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AgencyQuoteSOAP" type="tns:QuotePort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="QuoteRequest">
<soap:operation soapAction="urn:QuoteRequest" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AgencyQuote">
<wsdl:port name="QuotePort" binding="tns:AgencyQuoteSOAP">
<soap:address location="http://localhost:8084/DicQuoteSvc/AgencyQuote"/>
</wsdl:port>
</wsdl:service>
J'ai l'impression que cela a quelque chose à voir avec les espaces de noms, mais je ne suis pas sûr. C'est également la première fois que j'essaie de créer un service Web de cette manière, car je pensais gagner du temps de développement.
J'ai essayé de googler le message d'erreur et tout ce que j'ai lu indique que l'URI est incorrect. Je pensais que la validation de XMLSpy détecterait une telle erreur, mais si c'est le cas, elle ne le fait pas.
Toute aide serait grandement appréciée et je serai heureux de fournir toute autre information nécessaire que je peux.