JAX-WS中的复杂对象创建为空

时间:2009-06-08 15:34:37

标签: web-services jax-ws

我正在测试JAX-WS以访问Oracle IRM Web服务。我可以使用AXIS使其正常工作,因此这不是Oracle问题。

发生的事情是我在拨打电话时收到以下错误:

Expected xsd:anyType - unknown type provided

如果我看一下发送的SOAP数据包,我看到JAX-WS下的所有者标记是空白的:

<ns1:browseAccounts>
    <owner/>
    <accountType>All</accountType>
</ns1:browseAccounts>

AXIS下的同一篇文章就是:

<owner xsi:type="ns1:LicenseServer" 
       xmlns="" 
       xmlns:ns1="http://www.sealedmedia.com/ls/server/schema">
    <serverKey>#############</serverKey>
</owner>

显然,所有者标签没有正确创建,这就是我用来创建它:

AccountServicesPort AA = ORI.getAccountServices();
LicenseServer LicSer = new LicenseServer();
LicSer.setServerKey("#######################");
List<Account> Acts = AA.browseAccounts(LicSer,AccountAccountType.ALL);

我是否需要通过其他方法正确创建对象?

修改

我认为通过ObjectFactory运行LicenseServer会有所帮助。不幸的是,它没有。

1 个答案:

答案 0 :(得分:0)

尽管Oracle IRM文档声明BrowseAccounts接受LicenseServer对象或owner参数的Context对象,但它实际上接受了LicenseServer_ref。

修改的 此外,我在JDK 1.6.0下运行JAX-WS,它是比JDK 1.6.0_14更低的版本。新版本支持XMLSeeAlso注释,允许JAX-WS使用适当的类进行序列化。