使用SAP Cloud SDK与基于VDM Generator的自定义后端服务(ODATA)集成



我遵循了亚历山大·杜蒙特(Alexander Duemont(的博客,试图实现一个消耗云铸造厂目的地的Java Spring Boot应用程序。该目的地在其后面有一个自定义的ODATA V2,来自本地ERP系统。对于本地开发人员,当我执行Maven构建时,集成检验模块寄存器由于依赖注入而导致的失败

这是我的控制器的一部分

@RestController
@RequestMapping("/resources")
public class ClassificationsController {
    private static final Logger logger =    CloudLoggerFactory.getLogger(ClassificationsController.class);

    private final  ClassificationService service;

    public ClassificationsController(@Nonnull final ClassificationService service) {
        this.service = service;
    }
….. 
}

@nonnull最终分类服务服务导致org.springframework.beans.factory.unsatistieddependendendencyException我无法在生成的服务类(流利(上使用春季刻板印象注释来创建豆!

这个问题更可能与春季启动配置有关。

我假设ClassificationService是一个接口,并且在同一软件包中存在实现类。

请确保...

  • ...将ClassificationService的实现类添加到组件扫描/测试运行时。随意共享集成测试代码以设置测试环境。也许缺少其他类参考。

  • ...正确注释Spring Boot项目的相应应用程序类。例如,假设您的ClassificationService位于org.example.services.classification中,而应用程序的其余部分则使用org.example.app。您的基本应用程序类看起来像这样,遵循 cloud SDK 指南:

    @SpringBootApplication
    @ComponentScan({"com.sap.cloud.sdk", "org.example.services.classification", "org.example.app"})
    @ServletComponentScan({"com.sap.cloud.sdk", "org.example.app"})
    public class Application extends SpringBootServletInitializer
    {
        @Override
        protected SpringApplicationBuilder configure( final SpringApplicationBuilder application )
        {
            return application.sources(Application.class);
        }
        public static void main( final String[] args )
        {
            SpringApplication.run(Application.class, args);
        }
    }
    
  • ...用javax.inject.Named注释ClassificationService的实现类。如果您具有相同界面的多个实现,请确保为@Named注释提供未使用的类(唯一(值。

  • ...要在启动期间的应用程序日志中寻找异常( class (。

最新更新