unregistering tutorial starter springboot que initializr exposed create beans java spring spring-boot

java - tutorial - ¿Por qué mi Spring Boot App siempre se apaga inmediatamente después de comenzar?



spring-boot-starter-web (8)

Aquí es cómo puedes solucionarlo:

  1. Compruebe si no tiene dependencia de spring-boot-starter-web en su archivo pom.xml. Para obtener el archivo pom.xml correcto, use este enlace start.spring.io

  2. Si tiene una dependencia anterior, pero aún enfrenta el problema, es muy posible que sus tarros de tomcat incorporados estén presentes. Para confirmar esto, ejecute maven build en modo de depuración -

mvn spring-boot:run --debug

y busca mensajes como -

[WARNING] error reading /Users/sparrowmac1/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.20/tomcat-embed-core-8.5.20.jar; invalid LOC header (bad signature) [WARNING] error reading /Users/sparrowmac1/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.10/jackson-core-2.8.10.jar; invalid LOC header (bad signature)

Si esos mensajes están presentes, purgue su repositorio local de maven e inténtelo de nuevo.

mvn dependency:purge-local-repository

Este es mi primer código de Spring Boot. Desafortunadamente, siempre se apaga. Esperaba que funcionara continuamente para que mi cliente web pudiera obtener algunos datos del navegador.

package hello; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } } [@localhost initial]$ java -jar build/libs/gs-spring-boot-0.1.0.jar . ____ _ __ _ _ /// / ___''_ __ _ _(_)_ __ __ _ / / / / ( ( )/___ | ''_ | ''_| | ''_ // _` | / / / / /// ___)| |_)| | | | | || (_| | ) ) ) ) '' |____| .__|_| |_|_| |_/__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.0.0.RC4) 2014-03-13 09:20:24.805 INFO 14650 --- [ main] hello.SampleController : Starting SampleController on localhost.localdomain with PID 14650 (/home/xxx/dev/gs-spring-boot/initial/build/libs/gs-spring-boot-0.1.0.jar started by xxx) 2014-03-13 09:20:25.002 INFO 14650 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@b9eec: startup date [Thu Mar 13 09:20:24 EDT 2014]; root of context hierarchy 2014-03-13 09:20:28.833 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Registering beans for JMX exposure on startup 2014-03-13 09:20:30.148 INFO 14650 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 2014-03-13 09:20:30.154 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''requestMappingEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=requestMappingEndpoint] 2014-03-13 09:20:30.316 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''environmentEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=environmentEndpoint] 2014-03-13 09:20:30.335 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''healthEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=healthEndpoint] 2014-03-13 09:20:30.351 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''beansEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=beansEndpoint] 2014-03-13 09:20:30.376 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''infoEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=infoEndpoint] 2014-03-13 09:20:30.400 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''metricsEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=metricsEndpoint] 2014-03-13 09:20:30.413 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''traceEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=traceEndpoint] 2014-03-13 09:20:30.428 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''dumpEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=dumpEndpoint] 2014-03-13 09:20:30.450 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''autoConfigurationAuditEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=autoConfigurationAuditEndpoint] 2014-03-13 09:20:30.465 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''shutdownEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=shutdownEndpoint] 2014-03-13 09:20:30.548 INFO 14650 --- [ main] o.s.b.a.e.jmx.EndpointMBeanExporter : Located managed bean ''configurationPropertiesReportEndpoint'': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=configurationPropertiesReportEndpoint] 2014-03-13 09:20:30.589 INFO 14650 --- [ main] hello.SampleController : Started SampleController in 7.396 seconds (JVM running for 9.569) 2014-03-13 09:20:30.608 INFO 14650 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@b9eec: startup date [Thu Mar 13 09:20:24 EDT 2014]; root of context hierarchy 2014-03-13 09:20:30.610 INFO 14650 --- [ Thread-2] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 0 2014-03-13 09:20:30.624 INFO 14650 --- [ Thread-2] o.s.b.a.e.jmx.EndpointMBeanExporter : Unregistering JMX-exposed beans on shutdown

Por favor avise.

Gracias

PS build.gradle es la culpa.

dependencies { // tag::jetty[] compile("org.springframework.boot:spring-boot-starter-web") { **exclude module: "spring-boot-starter-tomcat"** }

Una vez que quité la línea anterior en negrita, todo funciona. El contexto de mi aplicación ahora es correcto. Gracias Dave

. ____ _ __ _ _ /// / ___''_ __ _ _(_)_ __ __ _ / / / / ( ( )/___ | ''_ | ''_| | ''_ // _` | / / / / /// ___)| |_)| | | | | || (_| | ) ) ) ) '' |____| .__|_| |_|_| |_/__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.0.0.RC4) 2014-03-13 13:58:08.965 INFO 7307 --- [ main] hello.Application : Starting Application on with PID 7307 (/ladev/home/xxx/dev/gs-spring-boot/initial/build/libs/gs-spring-boo t-0.1.0.jar started by xxx) 2014-03-13 13:58:09.021 INFO 7307 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshi ng org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@45490eb5: startup date [Thu Mar 13 13:58:09 MDT 2014]; root of context hierarchy 2014-03-13 13:58:09.653 INFO 7307 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overridi ng bean definition for bean ''beanNameViewResolver'': replacing [Root bean: class [null]; scope=; abstract=fal se; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanNam e=org.springframework.boot.actuate.autoconfigure.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/actuate/autoconfigure/ErrorMvcAutoConfiguration$WhitelabelErrorView Configuration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconf igure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; in itMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/au toconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]



En mi caso, el problema se presentó cuando solucioné un error de análisis estático que indicaba que no se usaba el valor de retorno de un método.

El código de trabajo anterior en mi Application.java era:

public static void main(String[] args) { SpringApplication.run(Application.class, args); }

El nuevo código que introdujo el problema fue:

public static void main(String[] args) { try (ConfigurableApplicationContext context = SpringApplication.run(Application.class, args)) { LOG.trace("context: " + context); } }

Obviamente, la prueba con el bloque de recursos cerrará el contexto después de iniciar la aplicación, lo que dará como resultado que la aplicación salga con el estado 0. Este fue un caso donde el error de fuga de recursos reportado por el análisis estático de snarqube debe ignorarse.


En mi caso, resolví este problema como a continuación:

  1. Primero C:/Users/myuserId/.m2/repository/org/apache (apache) C:/Users/myuserId/.m2/repository/org/apache

  2. pom.xml dependencias a continuación en mi archivo pom.xml

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

  3. He cambiado el socket predeterminado agregando las líneas siguientes en el archivo de recursos ../yourprojectfolder/src/main/resourcesand/application.properties (creé este archivo manualmente)

    server.port=8099 [email protected]@

    para eso he agregado el bloque de abajo en mi pom.xml en la sección <build> .

    <build> . . <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> . . </build>

Mi último archivo pom.xml parece

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bhaiti</groupId> <artifactId>spring-boot-rest</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-rest</name> <description>Welcome project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </project>


Resolución: la aplicación no es una aplicación web porque no tiene un contenedor incrustado (por ejemplo, Tomcat) en el classpath. Agregar uno lo arregló. Si está usando Maven , luego agregue esto en pom.xml :

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

Para Gradle ( build.gradle ) parece

dependencies { compile ''org.springframework.boot:spring-boot-starter-web'' }


Tal vez no se ajuste a su código pero descubrí si tiene un fragmento de código como este:

@SpringBootApplication public class SpringBootApacheKafkaApplication { public static void main(String[] args) { SpringApplication.run(SpringBootApacheKafkaApplication.class,args).close(); } }

luego simplemente elimine el método close (). ¡Eso solucionó mi problema! Tal vez pueda ayudar a alguien con eso


Tuve el mismo problema pero cuando lo eliminé

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>

comenzó a funcionar de nuevo.


este trabajo con arranque de primavera 2.0.0

reemplazar

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>

con

<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>9.0.6</version> </dependency>