gpt4 book ai didi

java - 由 : javax. xml.bind.JAXBException 引起:此上下文已知类或其任何父类(super class)

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:18 27 4
gpt4 key购买 nike

我有以下来自 xsd 自动生成的类。

<xs:element name="Add" type="tns:AddType"/>

<xs:complexType name="AddCatalogDataItem">
<xs:complexContent>
<xs:restriction base="tns:AddType">
<xs:sequence>
<xs:element ref="tns:Code"/>
<xs:element ref="tns:Value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="LoadDataRequest">
<xs:complexContent>
<xs:restriction base="AppDataType">
<xs:sequence>
<xs:element ref="tns:Code"/>
<xs:element ref="tns:RegCode" minOccurs="0"/>
<xs:element ref="tns:Add" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>

在编码阶段创建请求时,我收到此错误:

由以下原因引起:javax.xml.bind.JAXBException:此上下文已知类 com.ats.vis.services.concentrator.AddCatalogDataItem 及其任何父类(super class)。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "LoadDataRequest")
public class LoadDataRequest
extends AppDataType {}


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AddType", propOrder = {
"any"
})
@XmlSeeAlso({
AddCatalogDataItem.class,
AddCatalogDataResult.class
})
public class AddType {}

这是创建的代码片段。

LoadDataRequest appdt = new LoadDataRequest();
AddCatalogDataItem add = new AddCatalogDataItem();
add.getAny().add(new JAXBElement<String>(new QName(NS_CONC, "Code"),String.class, updateOper.code));
аppdt.getAny().add(add);

以及编码器代码。

private SOAPMessage createSOAPRequest(LoadDataRequest request) throws SOAPException, JAXBException {
SOAPMessage message = MessageFactory.newInstance().createMessage();
Marshaller marshaller = JAXBContext.newInstance(request.getClass()).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
JAXBElement<LoadDataRequest> jaxbElement = new JAXBElement<>(new QName(NS_CONC, "LoadDataRequest"), LoadDataRequest.class, request);

marshaller.marshal(jaxbElement, message.getSOAPBody());

return message;
}

我已经不知道这段代码有什么问题了。请帮忙。

最佳答案

我通过使用以下方法创建 jaxb 上下文解决了该问题:

JAXBContext jaxb = JAXBContext.newInstance("com.ats.vis.services.concentrator", com.ats.vis.services.concentrator.LoadDataRequest.class.getClassLoader());
Marshaller marshaller = jaxb.createMarshaller();

关于java - 由 : javax. xml.bind.JAXBException 引起:此上下文已知类或其任何父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com