Próbuję zmienić schemaLocation
w moim pliku, aby nie używać zdalnego pliku za pomocą adresu URL, ale używać lokalnej kopii, która jest również pod kontrolą wersji..xsd nie należy do tej kompilacji. Czy jest to błąd dla .xjb
Tak na przykład mój plik xjb
ma coś podobnego do
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsd:ID="JaxbBindingsForWMiddleware"
version="2.0">
<jxb:bindings node="/xsd:schema"
schemaLocation="http://myserver:80/a/b/c/d/myxsd.xsd">
Kiedy zmienić na lokalnej kopii na przykład
schemaLocation="../../src/main/resources/myxsd.xsd">
mvn clean install
zakończy się niepowodzeniem z komunikatem podobnym do
[OSTRZEŻENIE] Spowodowane przez: com.sun.istack.SAXParseException2; systemId: file:/E: /somefolder/somefolder/myjavaproject/target/bindings/myxjb.xjb; numer linii: 33; columnNumber: 33; "file:/E: /somefolder/somefolder/myjavaproject/target/bindings/mywsdl.wsdl" nie należy do tej kompilacji. Czy jest to błąd dla pliku "file:/E: /somefolder/somefolder/myjavaproject/target/bindings/myxjb.xjb"?
Zauważyłem, że szuka mojego pliku wsdl w katalogu target
. Mogę manipulować schemaLocation
w taki sposób, aby wskazywał na katalog src
. Ścieżka istnieje, ale wiadomość pozostaje.
Mogę również umieścić wsdl w katalogu docelowym, gdzie java próbuje go znaleźć, ale w takim przypadku wiadomość pozostaje taka sama.
Wygląda więc na to, że stanie się częścią tej kompilacji. Co należy zrobić, aby skompilować to we właściwy sposób?