Java RestController autowire接口无此定义
我使用SpringBoot1.5.10版本编写了一个应用程序。我需要自动连接接口,我将作为Web服务使用。 我有一个配置类: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
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创建了一个新类,并将我的接口添加为参数