web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:com.fasterxml.jackson.core.JsonProcessingException

templateRestを使用してUserオブジェクトをRest Serverに投稿していますが、次のエラーが発生しました:

スレッド「メイン」での例外Java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/JsonProcessingException at edu.Java.spring.service.client.RestClientTest.main(RestClientTest.Java:33)原因:Java.lang.ClassNotFoundException :com.fasterxml.jackson.core.JsonProcessingException at Java.net.URLClassLoader.findClass(Unknown Source)at Java.lang.ClassLoader.loadClass(Unknown Source)at Sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)at Java .lang.ClassLoader.loadClass(Unknown Source)... 1つ以上

これがファイルRestClientTest.Javaです

public class RestClientTest {

    public static void main(String[] args) throws IOException{
        RestTemplate rt = new RestTemplate();
//      System.out.println("Rest Response" + loadUser("quypham"));
//      URL url = new URL("http://localhost:8080/rest/user/create");
        rt.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        rt.getMessageConverters().add(new StringHttpMessageConverter());
//      Map<String,String> vars = new HashMap<String,String>();

        User user = new User();
        user.setUserName("datpham");
        user.setPassWord("12345");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR,1960);
        user.setBirthDay(calendar.getTime());
        user.setAge(12);
        String uri = new String("http://localhost:8080/rest/user/create");
        User returns = rt.postForObject(uri, user,User.class);

//      createUser(user);
        System.out.println("Rest Response" + loadUser("datpham"));
    }

これがファイルUserRestServiceController.Javaです

@Controller
public class UserRestServiceController {
    @Autowired
    public  UserDao userDao;
    @RequestMapping(value = "/rest/user/create",method = RequestMethod.POST)
    @ResponseStatus(HttpStatus.CREATED)
    public void addUser(@RequestBody User user){
        userDao.save(user);
    }

これはpom.xmlファイルです

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>edu.Java.spring.service</groupId>
  <artifactId>springDAT-service</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>springDAT-service Maven Webapp</name>
  <url>http://maven.Apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>org.Apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>10.12.1.1</version>
    </dependency>

    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

    <dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>


  </dependencies>
  <build>
    <finalName>springMOTHER-service</finalName>
    <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skipTests>true</skipTests>
                    <argLine>-Xmx2524m</argLine>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <fork>true</fork>
                    <compilerArgs>
                        <arg>-XDignore.symbol.file</arg>
                    </compilerArgs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.Eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.3.0.M1</version>
                <configuration>
                    <jvmArgs>-Xmx1048m -Xms536m
                        -XX:PermSize=128m -XX:MaxPermSize=512m</jvmArgs>
                    <reload>manual</reload>
                    <systemProperties>
                        <systemProperty>
                            <name>lib</name>
                            <value>${basedir}/target/spring-mvc/WEB-INF/lib</value>
                        </systemProperty>
                    </systemProperties>
                    <scanIntervalSeconds>3</scanIntervalSeconds>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>8080</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                    <contextPath>/</contextPath>
                    <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
                    <webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml>
                    <classesDirectory>${basedir}/target/classes</classesDirectory>
                </configuration>
            </plugin>

        </plugins>

  </build>
</project>

私はグーグルで情報を閲覧しましたが、その後pom.xmlにjackson 2.4を追加しようとしましたが、機能していないようです:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.0-rc3</version>
</dependency>
6
Dat Pham

これを追加 :

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>${jackson.version}</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>${jackson.version}</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>${jackson.version}</version>
</dependency>

${jackson.version}を任意のバージョンに置き換えるか、pom.xmlの先頭に<jackson.version>2.x.x</jackson.version>を追加することができます。

p/s:私のバージョンは2.7.3です

9
FreezY