【问题标题】:nor any of its super class is known to this context in jaxb在 jaxb 的上下文中也不知道它的任何超类
【发布时间】:2017-10-11 16:17:45
【问题描述】:

尝试通过存根发送soap请求时遇到异常。

    [com.sun.istack.internal.SAXException2: class com.domain.Test nor any of its super class is known to this context.
    javax.xml.bind.JAXBException: class com.domain.Test nor any of its super class is known to this context.]
at com.sun.xml.internal.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:408)
    at com.sun.xml.internal.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:173)
    at com.sun.xml.internal.ws.api.message.MessageWrapper.writeTo(MessageWrapper.java:206)
    at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:129)
    at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:227)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:210)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:130)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95)

我执行这个的方式是

NmsRtEvent event = new NmsRtEvent(); // WebServiceClient
RtEventMethodsSoap methodsSoap = event.getRtEventMethodsSoap(); //WebService
Element element = new Element();
element.setAny(new Test());
plId = methodsSoap.pushEvent(token,element);

测试类

@XmlType(namespace = "http://www.test.com/test")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Test implements Serializable{

    private int id;

}

谢谢

【问题讨论】:

    标签: java web-services soap jaxb


    【解决方案1】:

    Java doc 谈到@XmlSeeAlso -

    指示 JAXB 在绑定此类时也绑定其他类。

    您将注释 @XmlSeeAlso 与 Test.class 值一起使用,它不正确。应该是绑定Test类时需要绑定的其他类。

    【讨论】:

    • 感谢您的回复。我从那里删除了注释。测试类绑定到生成的元素类(存根类)。
    猜你喜欢
    • 2011-06-25
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2014-08-16
    相关资源
    最近更新 更多