我有WSDL和XSD文件描述了一些文档。
我使用apache axis 1.4从WSDL架构生成Java代理类。这些类已成功生成,但它们不包含@XmlRootElement
,@XmlAttribute
等注释。生成的类根本不包含任何注释。
然后我有从IMS队列中提取的xml文件。我删除标题并尝试反序列化(unmarshall)xml以更正Java代理类。
JAXBContext jc = JAXBContext.newInstance(SalesOrder.class);
StreamSource xml = new StreamSource("D:\\Sources\\NSJavaClientCRM2014-1\\data\\jms&SL_IN---salesorder2014_1.xml");
Unmarshaller unmarshaller = jc.createUnmarshaller();
JAXBElement<SalesOrder> je1 = unmarshaller.unmarshal(xml, SalesOrder.class);
SalesOrder salesOrder = je1.getValue();
因此我得到了很多像这样的IllegalAnnotationsException:
com.netsuite.webservices.platform.core_2014_1.types.RecordType does not have a no-arg default constructor.
com.netsuite.webservices.platform.common_2014_1.types.AvsMatchCode does not have a no-arg default constructor.
我无法手动添加注释,因为生成的Java类非常庞大。这是我被困的地方。所以从我的观点来看,问题是Java代理类中没有XML注释,我不知道如何在从wsdl模式生成类时自动添加它们。
问题很复杂:
我们有WSDL和XSD架构,我们有很多根据架构创建的XML文件。 如何创建正确的Java代理类(使用XML注释或不使用)并轻松地对普通XML文件进行编组/解组?也许轴上有一些选项?