xsd:include Ausnahme in soapUI:org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: Fehler: Unerwartetes Ende der Datei nach null
Ich habe ein problem beim erstellen eines neuen Projekts in soapUI und importieren der wsdl-Datei von URL.Es gibt mir die unten Ausnahme
Error loading [http://localhost:8080/WS/PersonalDetails.xsd]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: Fehler: Unerwartetes Ende der Datei nach null
Mein xsd include
<xsd:include schemaLocation="PersonalDetails.xsd" />
<xsd:include schemaLocation="PersonalRequest.xsd" />
Tatsächliche Lage der xsd -
WS/src/main/webapp/schemas/PersonalDetails.xsd
WS/src/main/webapp/schemas/PersonalRequest.xsd
Meine spring-ws.xml
<bean id="MyWSService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
<property name="schemaCollection">
<bean class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="inline" value="false" />
<property name="xsds">
<list>
<value>schemas/PersonalDetailsServiceOperations.xsd</value>
</list>
</property>
</bean>
</property>
<property name="portTypeName" value="MyWSEndpoint"/>
<property name="serviceName" value="MyWS" />
<property name="locationUri" value="/"/>
</bean>
Meine PersonalDetailsServiceOperations.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:person="http://MyWS.com/"
targetNamespace="http://MyWS.com/"
elementFormDefault="qualified">
<xsd:include schemaLocation="PersonalDetails.xsd" />
<xsd:include schemaLocation="PersonalRequest.xsd" />
</xsd:schema>
Ich bin mit spring+Maven+xsd+jaxb
Bitte helfen
Vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oft dies geschieht, weil Sie nicht einfügen in den richtigen Speicherort der WSDL in SOAP-UI. Wenn Sie durchsuchen Sie Ihre WSDL-Datei in einem browser, spring-ws, servieren Sie es oben auf fast jede url, so lange, wie es endet in XYZService.wsdl (oder was auch immer Sie es konfiguriert werden). Der Nachteil dabei ist, wenn Sie XSD importiert die Verwendung relativer Pfade in Ihrem schema irgendwo, SOAP-UI versucht, zu beheben, der den relativen Pfad basierend auf dem Pfad, den Sie ihm gegeben, aber wie ich schon sagte, dass kann eigentlich nicht sein, dass der richtige Pfad zur WSDL.
Zum Beispiel in unserer Anwendung haben wir ein Spring-ws-web-service-Aufruf ProcessService. Es diente bis in http://localhost:11000/ws/service/process/ProcessService.wsdl und es enthält eine importierte XSD relative Pfade zu verwenden. Wenn Sie fügen Sie diese URL in SOAP-UI, und führen Sie es, es richtig löst den Pfad zur XSD. Sie können jedoch navigieren Sie zu http://localhost:11000/hello-world/ProcessService.wsdl und es wird noch dienen Sie der WSDL-obwohl die URL ist nicht korrekt. Nun, wenn Sie nehmen http://localhost:11000/hello-world/ProcessService.wsdl und fügen Sie ihn in SOAP-UI wird es nicht werden lösen können, relativer Pfad zu der importierten XSD korrekt, denn das ist nicht die eigentliche URL. In diesem Fall SOAP-UI gibt Ihnen den genauen Fehler.
Ich würde durchsuchen, um Ihre XSD-im browser und stellen Sie sicher, dass Sie es sehen können. Dann würde ich überprüfen Sie die URL, die Sie einfügen in SOAP-UI und sehen, ob aus den relativen URLs eigentlich richtig aufgelöst. Wenn nicht, müssen Sie den korrekten Pfad zu der SOAP-UI.