2


ObjectRequest.javaクラスのリクエストを送信するSpringWSがありますが、jaxbクラスの値をハードコーディングすれば問題ありません(ただし、これは問題ありません)。SoapUIでテストするsoapリクエスト:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cas="http://jakisadres.com/caservice">
   <soapenv:Header/>
   <soapenv:Body>
      <cas:Request>
         <cas:atr1>some value</cas:machineName>
      </cas:Request>
   </soapenv:Body>
</soapenv:Envelope>

そして私が得るものは:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <ns3:Response xmlns:ns3="http://jakisadres.com/caservice">
         <responseValue>response: null</responseValue>
      </ns3:CARevokeCertResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

私のエンドポイント:

    @PayloadRoot(localPart = "Request", namespace = "http://jakisadres.com/caservice")
    @ResponsePayload
    public Response revokeCert(@RequestPayload Request param) {
        String request= param.getAtr1();
        Resoponse response_ = new Response();
        response.setResponseValue("response: "+request);
        return response;
    }

と私のjaxbマーシャラークラス:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "atr1"
})
@XmlRootElement(name = "Request")
public class Request{

    protected String atr1;


    public String getAtr1() {
        return atr1;
    }

    public void setAtr1(String value) {
        this.atr1 = value;
    }

}

私が欠けている手がかりはありますか?

4

1 に答える 1

3

おそらく、atr1要素はデフォルトの名前空間にあり、名前空間にはありません。http://jakisadres.com/caserviceリクエストは次のいずれかになります。

  <cas:Request>
     <atr1>some value</atr1>
  </cas:Request>

atr1または、フィールドの名前空間を明示的に指定できます

于 2012-11-30T21:01:50.843 に答える