2017-01-01 2 views
1

Я использую jhipster, и я хочу интегрировать консоль администратора весны в моем webapp. (http://localhost:8080/batch-console, например)Как интегрировать пульт администратора весеннего пакета

Я пытался интегрировать следующий ответ на мой jhipster веб-приложение 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 Forbidden

Что мне нужно делать, чтобы интегрировать администратор Spring batch в моем приложении Jhipster?

Нужно ли добавить следующую зависимость для моего пом?

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

Spring версия загрузчика: 1.4.1.RELEASE Jhipster версия: 3.8.0

Благодаря

ответ

0

Вам не нужно добавить пружинный ботинок. JHipster - приложение для весенних загрузок. Что касается spring-batch-admin, то то, что я вижу в документации, - это веб-интерфейс с использованием Spring MVC, который также является частью стека JHipster, но JHipster использует в качестве клиента одностраничное приложение с AngularJS, которое потребляет услуги REST, то есть вы можете есть некоторые проблемы при интеграции вашего приложения batch-admin.

Ваш

Запрос URL: http://localhost:8080/ Запрос Метод: GET Код состояния: 403 Forbidden это указывает на то, что некоторые изменения в вашем разрешении, так как http://localhost:8080/ нормальная точка входа в приложение JHipster.

В качестве решения я рекомендую использовать micro service approach. Документация spring-batch-admin указывает на наличие API RESTful (JSON). Это прекрасно вписывается в приложение для микросервисов.

+0

Спасибо duderoot – Vincent

+0

Я думал об использовании архитектуры микросервиса. Bu my jhipster app (приложение jhipster моего клиента) является монолитным приложением. Следуя https://github.com/codecentric/spring-batch-admin-spring-boot, я могу использовать весенний пакетный администратор с весенним загрузочным приложением, поэтому я подумал, что можно использовать его с jhipster в монолитной архитектуре, но я получить упоминавшиеся выше ошибки. У вас есть идеи/рекомендации? – Vincent

+0

После того, как вы посмотрели на проект с предварительным расширением, я могу сказать, что интеграция с весенней загрузкой была в основном для использования встроенного Tomcat. Spring-batch-admin из того, что я вижу, является ui для весенней партии. Этот ui не использует AngularJS, а JHipster ui использует AngularJS. Таким образом, вам нужно будет посмотреть, что REST API выполняет перетаскивание spring-batch-admin и пытается использовать их в JHipster ui. Также вам нужно взглянуть на spring-batch-admin, чтобы не переопределять конфигурацию, например. авторизация, точка входа в приложение, JHipster. Возможно, вы можете начать интеграцию с JHipster в качестве плагина. – duderoot