2016-10-28 3 views
4

Я новичок в Spring/Spring Boot, поэтому прошу прощения, если то, что я прошу, тривиально.Spring Boot - как включить конечную точку REST из зависимости?

Я создал приложение Spring загрузки, которое обнажает конечную точку REST:

package com.atomic.contentguard; 

... 
@Controller 
@RequestMapping("/rest") 
public class AcgController { 

@RequestMapping(value="/acg-status",method=RequestMethod.GET) 
@ResponseBody 
public String getStatus(){  
    return "Hi there!"; 
} 
} 

Это все прекрасно работает, когда вы запустите его как автономное приложение Spring загрузки, конечная точка является проверяемой, перейдя в http://localhost:8080/rest/acg-status.

Что я хочу достичь, так это «принести его» в другое приложение, которое будет включать мое приложение в качестве зависимости в pom.xml, ожидая появления этой конечной точки REST.

Что я сделал до сих пор входит в другой проекта pom.xml как:

</dependencies> 
    ... 
    <dependency> 
     <groupId>com.atomic</groupId> 
     <artifactId>contentguard</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
</dependencies> 

А потом включил его в том, что другое приложение @ComponentScan секции конфигурационного файла:

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = {"com.atomic.contentguard"}) 
public class EnvInfoWebConfig extends WebMvcConfigurerAdapter { 

} 

Это, однако, не появляется при запуске целевого приложения:

No mapping found for HTTP request with URI [/other-application-context/rest/acg-status] in DispatcherServlet with name 'envinfo-dispatcher' 

Что мне не хватает/не так?

+1

Что такое URL-адрес, который вы пытаетесь вызвать, и можете ли вы обновить трассировку ошибок – kuhajeyan

+0

@kuhajeyan Я открываю браузер и перехожу к: http: // localhost: 8080/[other-application-context]/rest/acg-status –

+0

Попробуйте использовать 'localhost: 8080/rest/acg-status'. –

ответ

0

Вы можете сделать это просто с помощью пружинной загрузки приложения Launcher класса в главном проекте, как показано ниже (Вам не нужен класс WebMvcConfigurerAdapter):

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.context.web.SpringBootServletInitializer; 
import org.springframework.context.annotation.ComponentScan; 

@SpringBootApplication 
@ComponentScan(basePackages = { "com.atomic.contentguard"}) 
public class AcgLauncher extends SpringBootServletInitializer { 

    //This method is required to launch the ACG application 
    public static void main(String[] args) { 

     // Launch Trainserv Application 
     SpringApplication.run(AcgLauncher.class, args); 
    } 
} 

Spring Загрузочный использует этот класс во время запуска сервера и сканирует указанные пакеты для всех пружинных компонентов (контроллеров, служб, компонентов).

Смежные вопросы