2017-05-30 4 views
-1

Verwendung von STS, erstelle ich eine einfache Feder Starter-Projekt, und versuchen dependy für Jackson XML-UnterstützungFrühling boot: Hinzufügen von XML-Unterstützung

Siehe unten: https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring

Was auch immer Twist Ich versuche (Wechsel feder Starter Release-Version) ich bekomme immer den gleichen Fehler

Caused by: java.lang.ClassNotFoundException: org.codehaus.stax2.XMLInputFactory2 
    at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_91] 
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_91] 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_91] 
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_91] 
    ... 73 common frames omitted 

In STS, whem bei aufgelöst Abhängigkeit suchen, ich sehe deutlich, dass org.codehaus.woodstox/stax2-api ist vorhanden.

: resolved dependencies

pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.text</groupId> 
    <artifactId>HelloJackson</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>HelloJackson</name> 
    <description>HelloWorld</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.6.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 
+0

** Ich kann deutlich sehen, dass org.codehaus.woodstox/stax2-api vorhanden ist. ** Warum kann ich es nicht finden? – Salman

+0

siehe Bild hinzugefügt – Filip

+0

Ja, aber fügen Sie bitte eine Abhängigkeit in Ihrem Pom zu. Ich habe eine Antwort für dich geschrieben. – Salman

Antwort

0

dies bedeutet, dass die Klasse nicht bei der Kompilierung erforderlich, aber es wird zur Laufzeit erforderlich ist, (kann andere Abhängigkeit es verwenden). versuchen, auf die pom-Datei

<!-- https://mvnrepository.com/artifact/org.codehaus.woodstox/stax2-api --> 
<dependency> 
    <groupId>org.codehaus.woodstox</groupId> 
    <artifactId>stax2-api</artifactId> 
    <version>3.0.1</version> 
</dependency> 
+0

Es hat funktioniert, aber ich bin mir nicht sicher, warum es neu hinzugefügt werden muss. Es ist bereits eine Abhängigkeit (und eine Abhängigkeit einer Abhängigkeit) – Filip

+0

wie ich aus dem Bild sehen kann, ja es ist bereits in der Abhängigkeitsliste vorhanden, aber Sie können sehen, es ist Compile-Bereich (das Kompilierwort zwischen eckigen Klammern [compile]) bedeutet, dass es nur beim Kompilieren und nicht bei der Laufzeit verwendet wird. Sie können also den Bereich der bereits hinzugefügten Abhängigkeit ändern und es wird ausgeführt. –

+0

Nun, es ist mein Verständnis, dass Compile-Bereich ist in der Laufzeit Classpath enthalten: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope – Filip

0

Scheint, wie das Problem war, dass der JAR beschädigt wurde hinzuzufügen. Das Hinzufügen einer anderen Version behebt das Problem, da es gezwungen wurde, ein weiteres JAR herunterzuladen. Ich löschte das lokale Repo, und alles funktionierte, wie es sollte

Verwandte Themen