Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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 使用gradle设置rest服务_Java_Rest_Gradle - Fatal编程技术网

Java 使用gradle设置rest服务

Java 使用gradle设置rest服务,java,rest,gradle,Java,Rest,Gradle,我第一次尝试使用gradle,但是在创建一个简单的项目框架时遇到了困难 这是我的build.gradle内容 buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE") } } apply plugin: '

我第一次尝试使用gradle,但是在创建一个简单的项目框架时遇到了困难

这是我的build.gradle内容

    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

bootJar {
    baseName = 'backend'
    version '1.0-SNAPSHOT'
}
war{
    baseName = 'api'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
使用以下命令,一切都可以正常构建和运行

gradle clean build

但是,我看不到任何可以使用的上下文路径

2018-05-27 20:32:27.107  INFO 8049 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-05-27 20:32:27.108  INFO 8049 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-05-27 20:32:27.129  INFO 8049 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:32:27.129  INFO 8049 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:32:27.231  INFO 8049 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-05-27 20:32:27.271  INFO 8049 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-05-27 20:32:27.275  INFO 8049 --- [           main] com.initiator.Application                : Started Application in 1.976 seconds (JVM running for 2.342)
2018-05-27 20:32:41.119  INFO 8049 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-05-27 20:32:41.119  INFO 8049 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2018-05-27 20:32:41.133  INFO 8049 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms
他们没有一个人工作,我也没有

    Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

知道我做错了什么吗?

Spring Boot默认情况下会扫描应用程序类及其子包中的包以查找注释。在代码结构概述中,应用程序似乎位于com.initiator中,实体和控制器位于com.controller或com.entity中。当您仅使用@SpringBootApplication注释主类时,这两个包中的实体或控制器将不会以默认行为扫描

您有两种可能:

将实体和控制器包作为应用程序类的子包。 指定scanBasePackages属性以包括不属于应用程序类的子包的控制器和实体包,例如@SpringBootApplicationscanBasePackages={com.entity,com.controller}。
我建议您坚持第一个选项,并坚持默认的行为—对您来说不太管用,为其他人清除在何处搜索您的注释类。

您必须指定SpringBootApplication注释的base scan packages参数,以使用不在应用程序包下面的包。更多信息:我这样做了,我遵循了这个指南应用程序类有SpringBootApplication注释,控制器有RestController注释谢谢!我使用了第一个选项,将Application.java类向上移动到一个目录,然后进行扫描。我在gradle.build文件中添加了api作为上下文路径,但它不起作用。我如何更改我的url以便可以使用localhost:8080/api/greeting?谢谢!将server.servlet.contextPath=/api添加到src>main>resources>application.properties文件中,如果您只想在/api上提供Spring REST,请使用Spring.data.REST.basePath=/api。我尝试了Spring.data.REST-basePath,但没有成功。必须使用server.servlet.contextPath。不知道为什么
http://localhost:8080/
http://localhost:8080/api
http://localhost:8080/api/greeting
    Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.