2015-06-29 3 views
2

Документация весной загрузки утверждает, что setting server.port=-1 disables http endpoint, но для меня это ведет себя так же, как если бы я использовал порт = 0. Что я хочу достичь - это приложение загрузки весенней загрузки, которое начинается, делает некоторые вещи и закрывается. Прямо сейчас он сидит там, пока я не убью его.Как отключить HTTP-сервер весной?

Как предотвратить запуск HTTP-сервера? Или вместо этого - как изящно закрыть приложение загрузки Spring из кода?

Я использую версию 1.2.4.RELEASE. я следующие аннотации на основной класс:

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
@EnableCaching 

Edit - мои зависимостей:

compile(
    'redis.clients:sharded-jedis-sentinel-pool:0.2.10.08e7bbe', 
    'org.springframework.boot:spring-boot-starter-jdbc', 
    'org.springframework.boot:spring-boot-starter-web', 
    'mysql:mysql-connector-java:5.1.33', 
    'org.flywaydb:flyway-core:3.2.1', 
) 

без пружинного загрузки стартера веб-весной бросает:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.GzipFilterAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.GzipFilterProperties org.springframework.boot.autoconfigure.web.GzipFilterAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.gzip.CONFIGURATION_PROPERTIES': Initialization of bean failed; nested exception is java.lang.TypeNotPresentException: Type org.springframework.http.HttpMethod not present 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946) 
    at my.Application.main(Application.java:19) 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.GzipFilterProperties org.springframework.boot.autoconfigure.web.GzipFilterAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.gzip.CONFIGURATION_PROPERTIES': Initialization of bean failed; nested exception is java.lang.TypeNotPresentException: Type org.springframework.http.HttpMethod not present 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
    ... 15 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.http.gzip.CONFIGURATION_PROPERTIES': Initialization of bean failed; nested exception is java.lang.TypeNotPresentException: Type org.springframework.http.HttpMethod not present 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1120) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1044) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) 
    ... 17 more 
Caused by: java.lang.TypeNotPresentException: Type org.springframework.http.HttpMethod not present 
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 
    at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 
    at sun.reflect.generics.repository.ConstructorRepository.getParameterTypes(ConstructorRepository.java:94) 
    at java.lang.reflect.Executable.getGenericParameterTypes(Executable.java:279) 
    at java.lang.reflect.Method.getGenericParameterTypes(Method.java:268) 
    at java.beans.FeatureDescriptor.getParameterTypes(FeatureDescriptor.java:387) 
    at java.beans.MethodDescriptor.setMethod(MethodDescriptor.java:116) 
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:72) 
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:56) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1163) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:426) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:173) 
    at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:279) 
    at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:189) 
    at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:328) 
    at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptors(BeanWrapperImpl.java:336) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1364) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1343) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1205) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 
    ... 26 more 
Caused by: java.lang.ClassNotFoundException: org.springframework.http.HttpMethod 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:344) 
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) 
    ... 49 more 
+0

afaik port = 0 - случайный порт. – sodik

+0

Возможно, у вас есть ненужные библиотеки на вашем пути к классу? Удалите зависимости. – Vaelyr

+1

Пожалуйста, покажите свой pom.xml. Если вам не нужен HTTP-сервер, и у вас есть Spring-boot-starter-web в вашем POM, удалите его. – dunni

ответ

2

Чтобы отключить веб-среду, добавьте эту строку в файл application.properties:

spring.main.web-environment=false 
Смежные вопросы