2017-01-01 46 views
1

我正在使用jhipster,並且想要在我的webapp中整合彈簧批量管理控制檯。 (http://localhost:8080/batch-console例如)如何整合彈簧批次管理控制檯

我試圖融入我的jhipster的webapp Is there a way to integrate spring-batch-admin and spring-boot properly?以下響應,但我得到以下錯誤(屬性似乎沒有加載)

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loggingConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.application.name' in string value "${spring.application.name}" 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:355) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 
    at com.mycompany.myapp.JhipsterApp.main(JhipsterApp.java:64) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) 

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.application.name' in string value "${spring.application.name}" 
    at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) 
    at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) 
    at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer$PlaceholderResolvingStringValueResolver.resolveStringValue(PropertyPlaceholderConfigurer.java:258) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:813) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1076) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349) 
    ... 20 common frames omitted 

如果我硬編碼這些特性進行測試我jhipster應用程序啓動,但我得到:

請求URL:http://localhost:8080/ 請求方法:GET 狀態代碼:403禁止

我需要做些什麼才能在我的Jhipster應用中整合spring batch admin?

我是否需要將以下依賴項添加到我的pom中?

 <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-batch</artifactId> 
    </dependency> 

春天引導版本:1.4.1.RELEASE Jhipster版本:3.8.0

感謝

回答

0

您不必添加春季啓動。 JHipster是一款春季啓動應用程序。至於我在文檔中看到的spring-batch-admin是一個使用Spring MVC的Web UI,它實際上也是JHipster堆棧的一部分,但JHipster正在使用一個單獨的頁面應用程序與AngularJS,這將消耗REST服務,也就是說,您可以集成你的批量管理應用程序時遇到一些問題。

請求URL:http://localhost:8080/請求方法:GET狀態代碼:403禁止則表明有因爲 http://localhost:8080/你授權一些改變是在JHipster應用正常的入口點。我想推薦使用micro service approach。 spring-batch-admin的文檔表明有RESTful(JSON)API。這將完全符合微服務應用程序。

+0

謝謝duderoot – Vincent

+0

我正在考慮使用微服務架構我的jhipster應用程序(我的客戶的jhipster應用程序)是一個單一的應用程序。以下https://github.com/codecentric/spring-batch-admin-spring-boot我能夠使用彈簧批量管理與春季啓動應用程序,所以我認爲它是可以用jarchter在單體建築,但我得到上面提到的錯誤。你有什麼想法/建議嗎? – Vincent

+0

查看sugested expample項目後,我可以說與spring-boot的集成主要是使用嵌入式Tomcat。我看到的spring-batch-admin是一個用於spring-batch的UI。這個UI不使用AngularJS,而JHipster UI使用AngularJS。因此,您需要了解REST API是什麼使Spring-batch-admin變得流行起來,並嘗試在JHipster UI中使用它們。另外,您需要查看spring-batch-admin以不超過配置,例如授權,JHipster的應用程序入口點。也許你可以開始與JHipster作爲一個插件的整合。 – duderoot