我有CXF从WSDL生成的SEI“ MessageSubmitServicePortType”,用于调用SOAP服务。
在调用WSDL操作方法时,它接受请求类的实例,即“ MessageSubmitRequestType”。因此,通话看起来如下
date : NumericString : value:2018-10-03
reference : NumericString : value:abc
client : Client : value:John, New York
payment : Payment_method: value:cash
在请求类中,WSDL中带有endPointObject.submitMessage(requestTypeObject);
的字段被生成为Java中的Object属性。
我正在上述对象类型属性中设置从外部xsd生成的类的实例。
所以,简而言之,
Anytype
此JAXBElement是使用从外部XSD生成的ObjectFatory类创建的。
但是,在执行过程中,我收到一个requestTypeObject.setAnytype(JAXBElelment<ExternalXSD.someclass>)
错误。
我知道可以通过在端点类中添加javax.xml.bind.JAXBException externalxsd.someclass is not known in this context
来解决此问题,但是我不想这样做,因为这些类是在运行时生成的。
我也尝试过使用binding.xjb文件添加注释,但是似乎没有将指定的类添加到现有注释中。如果可以的话,我可以将@XMLSeeAlso
和pom.xml
文件放在这里。
有什么想法可以实现吗?
答案 0 :(得分:0)
唯一的解决方案是下载并修改wsdl文件供我使用。 我只是使用标签导入了外部xsd,就解决了该问题。