Настройка CventSessionHeader CVENT API WSDL - PullRequest
0 голосов
/ 15 января 2019

Я генерирую классы Java из файла CVENT WSDL с помощью плагина maven (см. Пример ниже из моего файла POM). Код генерируется успешно.

Затем я вызываю код (см. Ниже) (даты начала и окончания, переданные в вызов getUpdated, являются параметрами моего метода)

Когда я запускаю / отлаживаю, он успешно соединяется, но вызов getUpdated завершается неудачно:

Ошибка сервера: INVALID_CVENT_HEADER_VALUE

В примерах в Интернете я вижу, что мне нужно установить заголовок в сеансе, но я не вижу в V200611Soap какого-либо метода, который бы позволял мне его устанавливать.

Кто-нибудь с таким опытом или с любым примером кода?

Заранее спасибо.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>1.12</version>
    <configuration>
      <wsdlUrls>
        <wsdlUrl>https://api.cvent.com/soap/V200611.ASMX?WSDL</wsdlUrl>
      </wsdlUrls>
      <keep>true</keep>
      <sourceDestDir>${basedir}/target/generated/src/main/java</sourceDestDir>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>wsimport</goal>
        </goals>
      </execution>
    </executions>
  </plugin>






V200611 aV200611 = new V200611();

V200611Soap soap = aV200611.getV200611Soap();

String accountNumber = "xxxxxx";

String userName = "xxxxxx";

String password = "xxxxxx";

LoginResult logingResult = soap.login(accountNumber, userName, password);

CventSessionHeader header = new CventSessionHeader();
header.setCventSessionValue(logingResult.getCventSessionHeader());

GetUpdatedResult getUpdatedResult = soap.getUpdated(CvObjectType.TRAVEL, startDateXMLGregorianCalendar, endDateXmlGregorianCalendar);

1 Ответ

0 голосов
/ 17 января 2019

Я исправил, изменив использование плагина cxf

Затем добавил wsdlOption

<extendedSoapHeaders>true</extendedSoapHeaders>

Который помещает неявные аргументы (в wsdl: binding, но не в wsdl: port) в сгенерированные классы API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...