我正在测试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会有所帮助。不幸的是,它没有。
答案 0 :(得分:0)
尽管Oracle IRM文档声明BrowseAccounts接受LicenseServer对象或owner参数的Context对象,但它实际上接受了LicenseServer_ref。
修改的 此外,我在JDK 1.6.0下运行JAX-WS,它是比JDK 1.6.0_14更低的版本。新版本支持XMLSeeAlso注释,允许JAX-WS使用适当的类进行序列化。