设置CventSessionHeader CVENT API WSDL

时间:2019-01-15 09:35:41

标签: java wsdl

我正在使用maven插件从CVENT WSDL文件生成Java类(请参阅下面的示例,来自我的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 :(得分:0)

我通过更改为使用cxf插件来解决

然后添加了wsdlOption

<extendedSoapHeaders>true</extendedSoapHeaders>

将隐式的参数(在wsdl:binding中,而不在wsdl:port中)放入生成的API类中。