2

以下は、JAXBUnmarshallingプロセス中に使用しているJAXBBindingクラスです。

package com;

@XmlRootElement(name = "request")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustAcct {

    @XmlAttribute
    private String cust;

    @XmlAttribute
    private String acct;



    public CustAcct() {

        super();
    }

    public String getCust() {

        return cust;
    }

    public void setCust(String s) {

        cust = s;
    }

    public String getAcct() {

        return acct;
    }

    public void setAcct(String s) {

        acct = s;
    }

}

今私の質問は、上記のクラス内にアノテーション@ContextServletContextを含めることができないということです。

public class CustAcct {

    @XmlAttribute
    private String cust;


    @XmlAttribute
    private String acct;

                @Context
    ServletContext cont ; 

このメッセージで例外が発生します

javax.servlet.servletcontext is an interface and jaxb can't handle interfaces

JAXBBindingクラス内に組み込みのServletContextアノテーションを含めることが可能かどうか教えてください??

前もって感謝します 。

私はこのように試しました、

@XmlRootElement(name = "request")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustAcct {

    @XmlAttribute
    private String acct;

    @XmlTransient
    @Context
    ServletContext con;

    public CustAcct() {

        super();
    }

    public String getAcct() {
    return acct;
    }

    public void setAcct(String s) {
    acct = s;
    }

}

しかし、Jersey Service内でアクセスしようとすると、次の例外が発生します

SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NullPointerException
4

1 に答える 1

1

そのフィールドに。で注釈を付けることができます@XmlTransient。これにより、JAXB(JSR-222)実装がそれをマップされたデータとして扱うことができなくなります。

詳細については

于 2012-08-07T13:16:21.917 に答える