Исключение среды Spring при разборе xml

У меня проблема при разборе XML в Asynctask в Android-приложении. я получаю ошибку не могу прочитать параметр. я использую простую фреймворк xml для сортировки объекта.

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root
public class SettingService {

@Element
String ID;
@Element
String FaceBook;
@Element
String Twitter;
@Element
String AndroidSplash;
@Element
String ContactUsAR;
@Element
String YouTube;
@Element
String SplashLink;  

public String getID() {
    return ID;
}

public void setID(String iD) {
    ID = iD;
}

public String getFaceBook() {
    return FaceBook;
}

public void setFaceBook(String faceBook) {
    FaceBook = faceBook;
}

public String getTwitter() {
    return Twitter;
}

public void setTwitter(String twitter) {
    Twitter = twitter;
}

public String getAndroidSplash() {
    return AndroidSplash;
}

public void setAndroidSplash(String androidSplash) {
    AndroidSplash = androidSplash;
}

public String getContactUsAR() {
    return ContactUsAR;
}

public void setContactUsAR(String contactUsAR) {
    ContactUsAR = contactUsAR;
}

public String getYouTube() {
    return YouTube;
}

public void setYouTube(String youTube) {
    YouTube = youTube;
}

public String getSplashLink() {
    return SplashLink;
}

public void setSplashLink(String splashLink) {
    SplashLink = splashLink;
}

}

а это класс обёртка

import java.util.ArrayList;

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

import com.blaaa.model.SettingService;

@Root (name = "settings")
public class SettingList {

@ElementList(inline = true)
private ArrayList<SettingService> mSettingList;

public ArrayList<SettingService> getSettingList() {
    return mSettingList;
}

public void setSettingList(ArrayList<SettingService> mSettingList) {
    this.mSettingList = mSettingList;
}

}

и это то, что я делаю в doInBackground в asynctask

   @Override
    protected ResponseEntity<SettingList> doInBackground(String... params) {
        try {
            if (isCancelled()) {
                return null;
            }
            HttpHeaders requestHeaders = new HttpHeaders();
            requestHeaders.setAccept(Collections
                    .singletonList(new MediaType("application",       "xml")));
            HttpEntity<?> requestEntity = new HttpEntity<Object>(
                    requestHeaders);
            RestTemplate mRestTemplate = new RestTemplate();
            mRestTemplate.getMessageConverters().add(
                    new SimpleXmlHttpMessageConverter());
            ResponseEntity<SettingList> mResponseEntity = mRestTemplate
                    .exchange(params[0], HttpMethod.GET, requestEntity,
                            SettingList.class);
            responseStatus = mResponseEntity.getStatusCode();
        } catch (Exception e) {
            Log.e(TAG, e.getMessage(), e);
        }
        return null;
    }

Это то, что я разбираю

<SettingService xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://blaaaa.com/">
<ID>1</ID>
<FaceBook>FaceBook</FaceBook>
<Twitter>Twitter</Twitter>
<IPhoneSplash>
http://saudigate.blaaaa.info/Files/Splash/Thumb/dabbd187-3ea1-4c95-a8a2-debd9736d53e.jpg
</IPhoneSplash>
<AndroidSplash>
http://saudigate.blaaaa.info/Files/Splash/dabbd187-3ea1-4c95-a8a2-debd9736d53e.jpg
</AndroidSplash>
<ContactUsAR>
<div><span style="color: red;">Contact Us </span></div><div><img alt="" src="/uploads/Lighthouse.jpg" height="150" width="201" />&nbsp;</div>
</ContactUsAR>
<ContactUsEN/>
<YouTube>YouTube</YouTube>
<SplashLink>http://www.blaaaa.com</SplashLink>
</SettingService>

1 ответ

Решение

Похоже, что ваш XML, который вы анализируете, содержит только один SettingService. Он должен содержать список из них, с внешним тегом, содержащим кучу

Он пытается проанализировать XML в предоставленном объекте, но класс Setting не содержит идентификатора, а только SettingService.

Другие вопросы по тегам