Исключение среды 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" /> </div>
</ContactUsAR>
<ContactUsEN/>
<YouTube>YouTube</YouTube>
<SplashLink>http://www.blaaaa.com</SplashLink>
</SettingService>
1 ответ
Решение
Похоже, что ваш XML, который вы анализируете, содержит только один SettingService. Он должен содержать список из них, с внешним тегом, содержащим кучу
Он пытается проанализировать XML в предоставленном объекте, но класс Setting не содержит идентификатора, а только SettingService.