Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向gs rest服务示例项目添加spring数据rest后的依赖关系问题_Java_Maven_Spring Mvc_Spring Boot_Spring Data Rest - Fatal编程技术网

Java 向gs rest服务示例项目添加spring数据rest后的依赖关系问题

Java 向gs rest服务示例项目添加spring数据rest后的依赖关系问题,java,maven,spring-mvc,spring-boot,spring-data-rest,Java,Maven,Spring Mvc,Spring Boot,Spring Data Rest,我正在用Spring试验RESTfulWeb服务,我的起始项目是Spring的。当我点击http://localhost:8080/greeting我得到{“id”:1,“content”:“你好,世界!”} 问题是,当我在我的pom.xml中将依赖项添加到spring data rest core和spring data rest webmvc时,应用程序不再工作。当我点击http://localhost:8080/greeting我发现以下错误: Whitelabel Error Page

我正在用Spring试验RESTfulWeb服务,我的起始项目是Spring的。当我点击
http://localhost:8080/greeting
我得到{“id”:1,“content”:“你好,世界!”}

问题是,当我在我的
pom.xml
中将依赖项添加到
spring data rest core
spring data rest webmvc
时,应用程序不再工作。当我点击
http://localhost:8080/greeting
我发现以下错误:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Aug 12 12:27:28 CEST 2014
There was an unexpected error (type=Not Acceptable, status=406).
Could not find acceptable representation
当我删除Dependencies时,应用程序再次正常工作,是什么导致此问题? 这是我的
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>org.springframework</groupId>
<artifactId>gs-rest-service</artifactId>
<version>0.1.0</version>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.5.RELEASE</version>
</parent>

<packaging>war</packaging>

<properties>
    <spring.version>4.0.5.RELEASE</spring.version>
    <spring.boot.version>1.1.4.RELEASE</spring.boot.version>
    <jdk.version>1.7</jdk.version>
    <jetty.version>8.1.8.v20121106</jetty.version>
    <spring.data.rest.version>2.1.2.RELEASE</spring.data.rest.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-core</artifactId>
        <version>${spring.data.rest.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-webmvc</artifactId>
        <version>${spring.data.rest.version}</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>

        <plugin>                
            <groupId>org.mortbay.jetty</groupId>                
            <artifactId>jetty-maven-plugin</artifactId>             
            <version>${jetty.version}</version>             
        </plugin>
    </plugins>
</build>
</project>

4.0.0
org.springframework
gs休息服务
0.1.0
org.springframework.boot
spring启动程序父级
1.1.5.1发布
战争
4.0.5.1发布
1.1.4.1发布
1.7
8.1.8.v20121106
2.1.2.1发布
org.springframework.boot
SpringBootStarterWeb
${spring.boot.version}
org.springframework.data
spring数据rest内核
${spring.data.rest.version}
org.springframework.data
spring数据rest webmvc
${spring.data.rest.version}
朱尼特
朱尼特
3.8.1
测试
org.apache.maven.plugins
maven编译器插件
3
${jdk.version}
${jdk.version}
org.mortbay.jetty
jetty maven插件
${jetty.version}

事实证明,我必须向Jackson添加依赖项:

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

org.codehaus.jackson
:



然后,使用
@ImportResource(“beans.xml”)
将beans.xml添加到应用程序.java,结果是我必须向Jackson添加依赖项:

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

org.codehaus.jackson
:



然后,使用
@ImportResource(“beans.xml”)
将beans.xml添加到应用程序.java,Spring Boot为Spring数据REST提供了一个专用的启动器:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

org.springframework.boot
弹簧启动启动器数据rest

Spring Boot为Spring Data REST提供了专用启动器:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

org.springframework.boot
弹簧启动启动器数据rest

您正在使依赖项和配置变得复杂。正如@OliverGierke已经提到的,使用以下启动程序而不是单个依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
这将创建一个可执行jar,您可以使用
java-jar.jar
运行它。它还应该具有您需要的所有依赖项,包括JSON(un)编组的jackson,这是spring boot starter web的依赖项


带有
@EnableAutoConfiguration
的Spring引导将检测Spring MVC和Jackson,并对其进行正确配置。Spring数据REST也是如此。您不需要自己处理xml(或战争档案)


我删除了Jetty,如果你想使用它,请检查Spring Boot如何做到这一点。

你正在使依赖项和配置变得复杂。正如@OliverGierke已经提到的,使用以下启动程序而不是单个依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
这将创建一个可执行jar,您可以使用
java-jar.jar
运行它。它还应该具有您需要的所有依赖项,包括JSON(un)编组的jackson,这是spring boot starter web的依赖项


带有
@EnableAutoConfiguration
的Spring引导将检测Spring MVC和Jackson,并对其进行正确配置。Spring数据REST也是如此。您不需要自己处理xml(或战争档案)


如果您想使用Jetty,我将其拆下。请检查弹簧靴,了解如何执行此操作。

我建议按照第一个答案提出的建议进行操作。添加启动程序并使用spring boots自动配置功能来检测spring数据REST,并让它自行配置。
@EnableAutoConfiguration
已经像在原始项目中一样添加。这样,您就不需要
注释方法HandlerAdapter
,它也有点不推荐使用,并被替换为
RequestMethodHandlerAdapter
@EnableWebMvc
自动注册,如果spring boot检测到Sprnig MVC,则默认情况下启用。如果检测到,Jackson是自动配置的,所以基本上不需要您所做的一切。(您可能还想使用jackson2,Spring Boot已经为其配置了依赖项)。添加启动程序并使用spring boots自动配置功能来检测spring数据REST,并让它自行配置。
@EnableAutoConfiguration
已经像在原始项目中一样添加。这样,您就不需要
注释方法HandlerAdapter
,它也有点不推荐使用,并被替换为
RequestMethodHandlerAdapter
@EnableWebMvc
自动注册,如果spring boot检测到Sprnig MVC,则默认情况下启用。如果检测到,Jackson是自动配置的,所以基本上不需要您所做的一切。(您可能还想使用jackson2,Spring Boot已经为其配置了依赖项)。添加此依赖项时,我有一个
无法自动连接字段:private final java.util.List org.springframework.Boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration.converters;嵌套异常是java.lang.NoClassDefFoundError:org/codehaus/jackson/JsonProcessingException
。听起来我仍然需要像下面那样为Jackson添加依赖项!看起来您有一些不匹配的版本,因为您提到的类只依赖于