我正在使用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);
答案 0 :(得分:0)
我通过更改为使用cxf插件来解决
然后添加了wsdlOption
<extendedSoapHeaders>true</extendedSoapHeaders>
将隐式的参数(在wsdl:binding中,而不在wsdl:port中)放入生成的API类中。