Spring boot java.lang.IllegalStateException

时间:2018-04-22 03:59:55

标签: java maven spring-boot jpa

我正在制作一个Spring Boot应用程序来从Oracle Db获取数据并显示为String。这是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

<groupId>com.mygit.boot</groupId>
<artifactId>sampleBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>sampleBoot</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.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</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
     </dependency>
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
     </dependency>

    <!-- HTTP Core -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        </dependency>

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

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

有人可以帮忙吗? ServerConfig是我的Entity类,我的Controller只调用getAllConfigurationData()方法并将返回的列表打印为String。

package com.mygit.boot.dao.impl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.mygit.boot.dao.IFetchDao;
import com.mygit.boot.entity.ServerConfig;

@Repository
@Transactional
public class FetchDaoImpl implements IFetchDao {

@PersistenceContext
private EntityManager entityManger;

@Override
public List<ServerConfig> getAllConfigurationData() {
    try {
        return entityManger.createQuery("select c from ServerConfig c", ServerConfig.class).getResultList();

    } catch (Exception e) {
        System.out.println("Exception while fetching server config !!!");
    }
    return null;
}
}

这是我的错误:

java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration.pageableCustomizer


Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

控制器:

package com.mygit.boot.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.mygit.boot.dao.IFetchDao;
import com.mygit.boot.entity.ServerConfig;

@RestController
public class TestController {

@Autowired
private IFetchDao fetchDao;

@RequestMapping("/test")
public String print() {

    List<ServerConfig> l=fetchDao.getAllConfigurationData();
    return l.toString();
}
}

实体类:      包com.mygit.boot.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.NamedNativeQueries;
import org.hibernate.annotations.NamedNativeQuery;


@Entity
@Table(name = "serverconfig")
@NamedNativeQueries({ @NamedNativeQuery(name = "getMaxLoginAttemptsQuery", query = "SELECT * FROM serverconfig sconfig where sconfig.confKey=? and sconfig.configuration=?", resultClass = ServerConfig.class),
                  @NamedNativeQuery(name = "getPwdConfigProperties", query = "SELECT * FROM serverconfig sconfig WHERE sconfig.confKey IN ('"+Constants.NO_OF_UPPERCASES+"','"+Constants.NO_OF_LOWERCASES+"','"+Constants.NO_OF_DIGIT+"','"+Constants.NO_OF_SPECIALCHARS+"','"+Constants.PWD_MIN_LENGTH+"','"+Constants.PWD_MAX_LENGTH+"')", resultClass = ServerConfig.class)})

public class ServerConfig implements java.io.Serializable {

private static final long serialVersionUID = 1L;

@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_SERVERCONFIG")
@SequenceGenerator(name = "SEQ_SERVERCONFIG", sequenceName = "SEQ_SERVERCONFIG")
private Long id;

@Column(name = "CONFIGURATION", length = 45)
private String configuration;

@Column(name = "CONFKEY", length = 128)
private String confKey;

@Column(name = "CONFVALUE", length = 4000)
private String confValue;

public ServerConfig() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getConfiguration() {
    return configuration;
}

public void setConfiguration(String configuration) {
    this.configuration = configuration;
}

public String getConfKey() {
    return confKey;
}

public void setConfKey(String confKey) {
    this.confKey = confKey;
}

public String getConfValue() {
    return confValue;
}

public void setConfValue(String confValue) {
    this.confValue = confValue;
}

}

主要应用类:

package com.mygit.boot.main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan({"com.mygit.boot.controller", "com.mygit.boot.dao", "com.mygit.boot.dao.impl", "com.mygit.boot.entity"})
public class SampleBootApplication {

public static void main(String[] args) {
    SpringApplication.run(SampleBootApplication.class, args);
}
}

1 个答案:

答案 0 :(得分:0)

您可以尝试添加以下

的正确版本
 <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.4</version>
    </dependency>

    <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.7.4</version>
    </dependency>

    <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.7.4</version>