2010-09-20 3 views
0

Я использую resteasy и имею некоторые проблемы.Отображение xml-атрибута с помощью resteasy

Существует несколько услуг на удаленном сервере. Например, когда я иду по адр

сервис "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) 
... 

Вопрос: как я могу отобразить XML-пространство имен с помощью Resteasy? Пожалуйста помоги. Благодарю.

ответ

0

Я решил проблему. Необходимо использовать пространство имен для каждого элемента, и все теги чувствительны к регистру!

 Смежные вопросы

  • Нет связанных вопросов^_^