RestController AutoWire Интерфейс nosuchbeandefinition - PullRequest
0 голосов
/ 16 октября 2019

Я написал приложение, используя Spring-boot 1.5.10 RELEASE. Мне нужно автоматически подключить интерфейс, который я буду использовать в качестве WebService. У меня есть класс конфигурации:

package com.app.packA;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class StartWebApplication extends SpringBootServletInitializer {

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

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(StartWebApplication.class);
}

}

Мой RestController:

package com.app.packA;

import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

@Autowired
CalculatorWs calcService;

}

и интерфейс из другого пакета

package com.app.packB;

@WebService(name="CalculatorService")
public interface CalculatorWs {

public int sum();

public int multiply();
}

Когда япопробуйте запустить это приложение на Tomcat 7, я получил сообщение, что в «GreetingController» NoSuchBeanDefinition «CalculatorWs»

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

используйте @Service вместо @WebService

0 голосов
/ 16 октября 2019

Вам необходимо добавить пакет com.app.packB в приложение весенней загрузки.

@SpringBootApplication(scanBasePackages = "com.app")

Или, может быть, вы хотите добавить определенные пакеты для сканирования.

@SpringBootApplication(scanBasePackages = {"com.app.packA", "com.app.packB"})
...