ось wsdl2java не может прочитать схему со специальными символами - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь сгенерировать 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 не помогло.

1 Ответ

1 голос
/ 05 января 2012

В настоящее время это невозможно без изменения WSDL. Для этого без изменения WSDL (кстати, почему вы не хотите этого делать?) Потребуется поддержка каталогов XML, как описано в AXIS-1984 .

...