将外部xsd类添加到Apache cxf生成的服务端点接口

时间:2018-10-03 12:27:54

标签: java soap jaxb cxf microservices

我有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文件添加注释,但是似乎没有将指定的类添加到现有注释中。如果可以的话,我可以将@XMLSeeAlsopom.xml文件放在这里。

有什么想法可以实现吗?

1 个答案:

答案 0 :(得分:0)

唯一的解决方案是下载并修改wsdl文件供我使用。 我只是使用标签导入了外部xsd,就解决了该问题。

相关问题