0

私はresteasyを使用していますが、問題があります。

リモートサーバーにいくつかのサービスがあります。たとえば、URLに移動すると

" http://some.site.com/Login/my_login/my_passowrd "サービスはxmlを返します:

< LoginToken>
  < success>true< /success>
  < token>23324473-897b-408b-b096-bf2cddad33< /token>
< /LoginToken>

私はマッピングのためのクラスを書きました:

@XmlRootElement(name = "LoginToken")
public class LoginToken {

  @XmlElement(name="success")
  private String success;

  @XmlElement(name="token")
  private String token;

  public String getSuccess() {
      return success;
    }

  public String getToken() {
      return token;
    }
}

..そしてテスト用の別のコード:

final String loginUrl "http://some.site.com/Login/{login}/{password}";
ResteasyProviderFactory instance = ResteasyProviderFactory.getInstance();
RegisterBuiltin.register(instance);

ClientRequestFactory client = new ClientRequestFactory();

LoginToken ct = client.get(loginUrl, LoginToken.class, "user", "123456");

System.out.println(ct.getSuccess() + " " + ct.getToken());

この例を実行した後、結果を受け取ります。

true 23324473-897b-408b-b096-bf2cddad33

ただし、サーバーは別のxmlを返すことができます。

< LoginToken xmlns="some.site.com/login/api/domain" mlns:i="http://www.w3.org/2001/XMLSchema-instance">
  < success>true< /success>
  < token>23324473-897b-408b-b096-bf2cddad33< /token>
< /LoginToken>

マーシャル解除エラーがあります:

Exception in thread "main" org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException: javax.xml.bind.UnmarshalException: unexpected element (uri:"some.site.com/login/api/domain", local:"LoginToken"). Expected elements are <{}LoginToken>
        at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.readFrom(AbstractJAXBProvider.java:86)
        at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105)
        at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:46)
        at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108)
...

質問:resteasyを使用してxml-namespaceをマップするにはどうすればよいですか?助けてください。ありがとう。

4

1 に答える 1

0

私は彼が問題を解決します。各要素に名前空間を使用する必要があり、すべてのタグは大文字と小文字が区別されます!

于 2010-09-20T09:51:32.180 に答える