2

How i use Jackson:

    public class XmlJacksonParser {

    URL url;
    public void test() throws IOException {
        try {
            url  = new URL("https://www.onliner.by/feed");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        JacksonXmlModule module = new JacksonXmlModule();
        module.setDefaultUseWrapper(false);
        XmlMapper xmlMapper = new XmlMapper(module);

        OpenCredentials openCredentials = xmlMapper.readValue(url, OpenCredentials.class);
        xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        Log.e("LogTas", "getItemsSize: " + openCredentials.getCredentials().toString());
        System.out.println(openCredentials);
    }
    @JacksonXmlRootElement(localName = "channel")
    class OpenCredentials {

        @JacksonXmlProperty(localName = "item")
        @JacksonXmlElementWrapper(useWrapping = false)
        private Credentials[] credentials;

        public Credentials[] getCredentials() {
            return credentials;
        }

        public void setCredentials(Credentials[] credentials) {
            this.credentials = credentials;
        }

        //getters, setters, toString
    }


    class Credentials {

        @JacksonXmlProperty(isAttribute = true)
        private String priv;

        @JacksonXmlProperty(isAttribute = true)
        private String type;

        private String user;

        @JacksonXmlProperty(localName = "title")
        private String clientToken;

        @JacksonXmlProperty(localName = "description")
        private String clientSecret;

    }
}

And call

 XmlJacksonParser s = new XmlJacksonParser();
    try {
        s.test();
    } catch (IOException e) {
        e.printStackTrace();
    }

edu.usf.cutr.javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found

at edu.usf.cutr.javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72) at edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176) at edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92) at edu.usf.cutr.javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136) at com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:97) at com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:85) at com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:82) at com.fasterxml.jackson.dataformat.xml.XmlMapper.(XmlMapper.java:46) at com.example.onexeor.rssreader.XmlJacksonParser.qweqwe(XmlJacksonParser.java:29) at com.example.onexeor.rssreader.MainReader.onCreate(MainReader.java:74) at android.app.Activity.performCreate(Activity.java:5977) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2415) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524) at android.app.ActivityThread.access$800(ActivityThread.java:167) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1419) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

Dependencies reagard Jackson

    compile 'com.fasterxml.jackson.core:jackson-core:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.1.2'
// Repackaged XML-specific libraries
compile 'edu.usf.cutr.android.xml:jackson-dataformat-xml-android:2.1.2'
compile 'edu.usf.cutr.android.xml:stax2-api-android:3.1.1'
compile 'edu.usf.cutr.android.xml:stax-api-android:1.0-2'
compile 'edu.usf.cutr.android.xml:aalto-xml-android:0.9.8'
OneXeor
  • 21
  • 4
  • Show dependencies from build.gradle – anber Apr 04 '16 at 14:34
  • Possible duplicate of [JAXB marshalling exception javax.xml.stream.FactoryConfigurationError running with Java 5](http://stackoverflow.com/questions/9371670/jaxb-marshalling-exception-javax-xml-stream-factoryconfigurationerror-running-wi) – Alexander Apr 05 '16 at 08:04
  • I also faced in the same error, but can't fix it, and decided don't use Jackson XML parsing in Android. There some steps to fix this issue, you can try - http://stackoverflow.com/a/31393015/1159507 – anber Apr 06 '16 at 08:15
  • I did it, but didn't work, and now i use a Retrofit – OneXeor Apr 06 '16 at 08:51

0 Answers0