Java RestController autowire接口无此定义

Java RestController autowire接口无此定义,java,spring,spring-boot,spring-restcontroller,Java,Spring,Spring Boot,Spring Restcontroller,我使用SpringBoot1.5.10版本编写了一个应用程序。我需要自动连接接口,我将作为Web服务使用。 我有一个配置类: package com.app.packA; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.Spr

我使用SpringBoot1.5.10版本编写了一个应用程序。我需要自动连接接口,我将作为Web服务使用。 我有一个配置类:

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”中没有定义“CalculatorWs”

您需要将包com.app.packB添加到您的spring boot应用程序中

@SpringBootApplication(scanBasePackages = "com.app")
或者,您可能想添加特定的软件包进行扫描

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

使用
@Service
而不是
@WebService

我看不到任何
@CalculatorWs
@Component
的实现。有两件事你需要实现
CalculatorWs
,而且它需要在
com.app.package
包下。我无法在另一个包中移动它Spring不会自动运行检测此类,因为它位于不同的包中。将您的
@SpringBootApplication
注释类移动到
com.app
而不是现在的位置。其次,它是一个JAX-WSWebService,在没有额外库的情况下,它将不会被检测或实例化。您将需要一个
@Bean
来引导JAX-WSWebService代理。我尝试过这样做,但是我从Browser那里得到了404页。您检查日志了吗?启用logger.level.org.springframework.web=debugThank,我用了另一种方法。我用annotation@Service创建了一个新类,并将我的接口添加为参数