Я пытаюсь сгенерировать Java-клиент с осью, используя wsdl2java
(в оболочке maven axistools).
Я загрузил wsdl и соответствующую схему.
wsdlимеет следующие определения схемы:
<wsdl:types>
<xsd:schema
targetNamespace="http://example.com/CM_IntegrationService/"
xmlns:pref="http://example.com/CM_IntegrationService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com//CM_IntegrationService"
schemaLocation="CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd"/>
Короче:
schemaLocation = "CM_IntegrationService? xsd = ServiceModel_CM_IntegrationService.xsd"
Появляется ошибкаas:
[ERROR] Не удалось выполнить цель org.codehaus.mojo: axistools-maven-plugin: 1.4: wsdl2java (по умолчанию) в проекте wsclient-cm: Ошибка при создании кода Java из WSDL.ошибка при запуске файла: / C: /workspace/ws/wsclient-reactor/wsclient-wsdl/src/main/wsdl/CM_IntegrationService.wsdl:
WSDLException (в / wsdl: определения / wsdl: типы / xsd:схема): faultCode = OTHER_ERROR: Произошла ошибка при попытке разрешить схему, указанную в «CM_IntegrationService? xsd = ServiceModel_CM_IntegrationService.xsd», относительно «файла: / C: / workspace / ws / wsclient-реактор / магазин-wsclient-wsdl / wsdl/main/wsdl/CM_IntegrationService.wsdl'.:
Этот файл не найден: файл: / C: / workspace / ws / wsclient-реактор / wsclient-wsdl / src / main / wsdl / CM_IntegrationService? xsd= ServiceModel_CM_IntegrationService.xsd -> [Help 1]
Короткий файл не найден для:
/ C: / workspace / ws / wsclient-реактор / wsclient-wsdl/src/main/wsdl/CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd
Есть ли способ указать, какую схему использовать?Я сохранил схему как ServiceModel_CM_IntegrationService.xsd
.Однако он ищет полный путь, включая =
и ?
, который я не могу эмулировать в файловой системе.
Я не хочу изменять wsdl, как предложено в: WSDL для Java -ошибка создания клиента
Почему axistools-maven-plugin пытается получить доступ к этому относительному расположению схемы? выглядит аналогично, но использование опции useEmitter=true
не помогло.