0

応答からDatejava.util.Date)オブジェクトを取り戻す際に問題が発生しています。ksoap2応答XMLは次のとおりです。

  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header></s:Header>
    <s:Body>
      <UpdateLocationResponse xmlns="http://tempuri.org/">
        <UpdateLocationResult>2012-05-07T13:34:34.7693883-04:00</UpdateLocationResult>
      </UpdateLocationResponse>
    </s:Body>
  </s:Envelope>

エンベロープとリクエストを初期化するために使用しているコードは次のとおりです(セキュリティ上の理由から、実際の名前の代わりに* *が使用されています)。

static final String NAMESPACE = "http://tempuri.org/";
static final String URL = "http://****************.svc";

envelope.addMapping(NAMESPACE, "UpdateLocationResult", Date.class,
        new MarshalDate());
MarshalDate mdate = new MarshalDate();
mdate.register(envelope);
envelope.implicitTypes = true;

HttpTransportSE trans = new HttpTransportSE(URL);
trans.debug = true;

trans.call(SOAP_ACTION, envelope);
Object r = envelope.getResponse(); // r is always SoapPrimitive!!!
                                   // I want it to be a java.util.Date

名前空間、プロパティ名、マーシャラーのすべての組み合わせを試しましたが、役に立ちませんでした。私はいつもSoapPrimitiveから戻ってきますenvelope.getResponse()

私は何が間違っているのですか?

4

1 に答える 1

0

それも文字列ではないですか?SimpleDateFormatを使用してみてください

そして、これはあなたに役立つかもしれません:

SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
String strDate = response.toString();
于 2012-05-08T11:29:35.700 に答える