相关疑难解决方法(0)

javax.xml.bind.JAXBException:此类上下文中已知类***或其任何超类

我正在尝试通过REST Web服务传递对象.以下是我的课程使用一些示例代码解释了我需要的功能.

Rest Web Service Class方法

@POST
@Path("/find")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces({MediaType.APPLICATION_JSON})
public Response getDepartments(){
    Response response = new Response();

    try {

        response.setCode(MessageCode.SUCCESS);
        response.setMessage("Department Names");
        Department dept = new Department("12", "Financial");
        response.setPayload(dept);

    } catch (Exception e) {
        response.setCode(MessageCode.ERROR);
        response.setMessage(e.getMessage());
        e.printStackTrace();
    }       
    return response;
}
Run Code Online (Sandbox Code Playgroud)

响应类

import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Response implements Serializable{

    private static final long serialVersionUID = 1L;

    public enum MessageCode {
        SUCCESS, ERROR, UNKNOWN
    }

    private MessageCode code;
    private String message;
    private Object payload;

    public MessageCode getCode() …
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs jaxb

45
推荐指数
3
解决办法
14万
查看次数

JAXB编组一个具有java.lang.Object字段的对象

我正在尝试使用Object字段封送Object(可以是多种类型的类).然后我将使用套接字发送生成的XML.我的代码如下;

我要上课的班级

public class Message {

    private String metadata;

    private Object payload;


    public Message(String metadata,Object payload)
    {
        this.metadata=metadata;
        this.payload=payload;
    }

    public Message() {

    }

    public String getMetadata() {
        return metadata;
    }

    public void setMetadata(String metadata) {
        this.metadata = metadata;
    }

    public Object getPayload() {
        return payload;
    }

    public void setPayload(Object payload) {
        this.payload = payload;
    }

}
Run Code Online (Sandbox Code Playgroud)

我如何试图编组它的片段.

 private Message sendData; 
    ...
    JAXBContext jc = JAXBContext.newInstance(sendData.getClass());      
    Marshaller m = jc.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    JAXBElement<Message> rootElement = new JAXBElement<Message>(
                            new QName(sendData.getClass().getSimpleName()), dataClass, …
Run Code Online (Sandbox Code Playgroud)

java jaxb

3
推荐指数
1
解决办法
3926
查看次数

标签 统计

java ×2

jaxb ×2

jax-rs ×1

rest ×1