আমার স্প্রিং বুট অ্যাপটি কেন শুরু হওয়ার সাথে সাথে সর্বদা বন্ধ হয়ে যায়?


164

এটি আমার প্রথম স্প্রিং বুট কোড। দুর্ভাগ্যক্রমে, এটি সর্বদা বন্ধ হয়ে যায়। আমি আশা করছিলাম এটি অবিচ্ছিন্নভাবে চালিত হবে যাতে আমার ওয়েব ক্লায়েন্ট ব্রাউজার থেকে কিছু ডেটা পেতে পারে।

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

দয়া করে উপদেশ দাও.

ধন্যবাদ

পিএস বিল্ড.gradle এর ফল্ট।

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

আমি সাহসী হয়ে উপরের লাইনটি বন্ধ করে দিলে, সমস্ত কিছু কাজ করে। আমার আবেদনের প্রসঙ্গটি এখন সঠিক। ধন্যবাদ ডেভ

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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]]

আপনি কি মাভেন বা গ্রেডেল ব্যবহার করছেন?
রোমেন মোরেউ

1
আপনার ApplicationContextভুল টাইপ ( AnnotationConfigApplicationContext), সুতরাং এটি কোনও ওয়েবঅ্যাপ নয়। এটি আপনার শ্রেণিপথের উপর নির্ভর করে এমন কোনও মানকে ডিফল্ট করা উচিত, সুতরাং দেখে মনে হচ্ছে এটি ভুল উপায়ে সেট বা ডিফল্ট হয়েছে। হতে পারে আপনি একটি application.propertiesবা একটি ENV ভের আপনার প্রদর্শিত হচ্ছে না?
ডেভ সায়ার

তুমি ঠিক. আমার অ্যাপ্লিকেশন কনটেক্সটটি ভুল। আমার কাছে অ্যাপ্লিকেশন.প্রপার্টি ফাইল নেই। আমি কীভাবে এটি সঠিক অ্যাপ্লিকেশন কনটেক্সট চালাতে পারি? হয়ত কোনও ওয়েব অ্যাপ্লিকেশন কনটেক্সট?
জনসাম

আসুন চেষ্টা করুন এবং বিল্ডটি সরল করুন। আপনি কি বসন্ত-বুট-স্টার্টার-ওয়েব ব্যতীত সমস্ত নির্ভরতা অপসারণ করতে পারেন, এবং তারপরে --debugকমান্ড লাইনে চালিয়ে লগগুলি এখানে আবার পোস্ট করতে পারেন, দয়া করে?
ডেভ সায়ার

ডেভ, প্রতিক্রিয়াগুলি দীর্ঘ হওয়ায় আমি আমার মূল পোস্টটি আপডেট করেছি।
জনসাম

উত্তর:


345

রেজোলিউশন: অ্যাপ্লিকেশনটি কোনও ওয়েব অ্যাপ নয় কারণ এর ক্লাসপথে এমবেড থাকা ধারক (যেমন টমক্যাট) নেই। একটি যুক্ত করা এটি স্থির করে। আপনি যদি মাভেন ব্যবহার করছেন তবে এটি এতে যুক্ত করুন pom.xml:

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

জন্য Gradle ( build.gradle) এটিকে দেখে মনে হচ্ছে

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

তুমি এটা কিভাবে করলে ?
Maxime

2
আমি যে মিস করছিলাম তা দুর্দান্ত!
তাওবিটজ

5
আমার একটি সাধারণ জাভা অ্যাপ্লিকেশন রয়েছে তবে কেন আমাদের এই নির্ভরতা যুক্ত করা দরকার?
আমান কুমার

দয়া করে উল্লেখ করুন যে এই নির্ভরতাটি প্রথম হওয়া দরকার।
কসমিন ওরেপা

যদিও এটি না। ক্লাসপথে।
ডেভ সায়ার

31

আপনি এটি কীভাবে ঠিক করতে পারেন তা এখানে:

  1. আপনার pom.xML ফাইলটিতে বসন্ত-বুট-স্টার্টার-ওয়েবে নির্ভরতা না থাকলে তা পরীক্ষা করে দেখুন। আপনাকে সরাসরি পম.এক্সএমএল ফাইল পেতে, start.spring.io এই লিঙ্কটি ব্যবহার করুন

  2. যদি আপনার উপর নির্ভরশীলতা থাকে তবে আপনি এখনও সমস্যার মুখোমুখি হয়ে থাকেন তবে আপনার এম্বেডড টমক্যাট জারের উপস্থিতি খুব সম্ভব। এটি নিশ্চিত করতে, ডিবাগ মোডে মাভেন বিল্ড চালান -

mvn spring-boot:run --debug

এবং বার্তা সন্ধান করুন -

[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)

যদি এই জাতীয় বার্তাগুলি উপস্থিত থাকে তবে আপনার স্থানীয় মেভেন রেপো পরিষ্কার করুন এবং আবার চেষ্টা করুন -

mvn dependency:purge-local-repository


একবার প্রয়োজনীয় জারগুলি নিখোঁজ হয়ে গেলে, প্রেরণকারী সার্লেট শুরু হয় না। সুতরাং উপরের সমাধানটি আমার পক্ষে কাজ করে।
ব্যবহারকারী 3029620

30

আমার একই সমস্যা ছিল কিন্তু আমি যখন সরিয়েছি

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

এটা আবার কাজ শুরু।


আমি এই টমক্যাট নির্ভরতা যুক্ত করার পরে আমার অ্যাপ্লিকেশনটি কাজ শুরু করে।
georgiana_e

1
@ জর্জিয়ানা_ আমি টমক্যাট নির্ভরতা অপসারণের পরে আমার অ্যাপ্লিকেশন কাজ শুরু করেছে: ডি কি হচ্ছে ??
দারিয়া

: ডি সামিয়া আমাকে @ দারিয়া হিসাবে।
রকওনগম

ত্রুটিটি ঠিক করতে আমি জেটির সাথে আমার ডিফল্ট এম্বেডড কনটেইনারটি প্রতিস্থাপন করেছি । দেখে মনে হচ্ছে আমার টমকেট জারগুলি ভেঙে গেছে এবং একটি .m2 শুদ্ধি প্রয়োজন।
CᴴᴀZ

7

হতে পারে এটি আপনার কোডের সাথে মানানসই নয় তবে আমি খুঁজে পেলাম যে আপনার কাছে এই জাতীয় কোড স্নিপেট রয়েছে:

@SpringBootApplication
public class SpringBootApacheKafkaApplication {

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

তারপরে বন্ধ () পদ্ধতিটি সরিয়ে ফেলুন। এটা আমার সমস্যা স্থির! হতে পারে আমি যে কারও সাহায্য করতে পারেন


3

আমার ক্ষেত্রে সমস্যাটি চালু হয়েছিল যখন আমি স্থির বিশ্লেষণ ত্রুটিটি স্থির করেছিলাম যে কোনও পদ্ধতির ফেরতের মান ব্যবহার করা হয়নি।

আমার অ্যাপ্লিকেশন.জভাতে পুরানো কার্যকরী কোডটি ছিল:

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

নতুন কোড যা সমস্যার সূচনা করেছিল তা হ'ল:

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

স্পষ্টতই, রিসোর্স ব্লক দিয়ে চেষ্টা করা অ্যাপ্লিকেশন শুরু করার পরে প্রসঙ্গটি বন্ধ করে দেবে যার ফলস্বরূপ অ্যাপ্লিকেশনটি স্থিতি 0 দিয়ে বেরিয়ে আসবে This এটি এমন একটি ক্ষেত্রে ছিল যেখানে স্নারকুবের স্ট্যাটিক বিশ্লেষণ দ্বারা রিপোর্ট করা রিসোর্স লিক ত্রুটি উপেক্ষা করা উচিত।


3

গ্রেডেল সহ, আমি নির্ভরতা ব্লকের অভ্যন্তরে বিল্ড.gradle.kts ফাইলটিতে এই লাইনটি প্রতিস্থাপন করেছি

providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")

এর সাথে

compile("org.springframework.boot:spring-boot-starter-web")

এবং ভাল কাজ করে।


2

আমি মনে করি সঠিক উত্তরটি ছিল স্প্রিং বুট ওয়েব অ্যাপ্লিকেশনটি শুরু হওয়ার সাথে সাথে কেন বন্ধ হয়? স্টার্টার-টমক্যাট সেট না করা এবং আইডিই এর মাধ্যমে সেট এবং চলমান থাকলে, সরবরাহিত সুযোগটি কমেন্ট করা উচিত। কমান্ড দিয়ে চলার সময় সুযোগ কোনও সমস্যা তৈরি করে না। আমি ভাবছি কেন.

যাইহোক কেবল আমার অতিরিক্ত চিন্তা যুক্ত করেছে।


2

আরেকটি সম্ভাবনা,

আমি প্রতিস্থাপন

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

সঙ্গে

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

এবং এটি কোনও সমস্যা ছাড়াই শুরু হয়েছিল


1

বসন্ত বুট 2.0.0 এর সাথে এই কাজ

প্রতিস্থাপন করা

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

সঙ্গে

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

1

আমার ক্ষেত্রে আমি এই সমস্যাটি নীচের মত স্থির করেছি: -

  1. প্রথমে আমি সরাল (অ্যাপাচি) C:\Users\myuserId\.m2\repository\org\apache

  2. আমি আমার pom.xmlফাইলে নির্ভরতার নীচে যুক্ত করেছি

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  3. আমি রিসোর্স ফাইলে লাইনগুলি নীচে যুক্ত করে ডিফল্ট সকেট পরিবর্তন করেছি ..\yourprojectfolder\src\main\resourcesand\application.properties(আমি নিজে এই ফাইলটি তৈরি করেছি)

     server.port=8099
     spring.profiles.active=@spring.profiles.active@

    তার জন্য আমি আমার pom.xmlআন্ডার <build>সেকশনে ব্লকের নীচে যুক্ত করেছি ।

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

আমার চূড়ান্ত pom.xmlফাইলটি দেখতে দেখতে

<?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>

0

আপনি যদি নিজের বসন্তকে একটি ওয়েব অ্যাপ্লিকেশন করতে না চান তবে কেবল আপনার স্টার্টারে যুক্ত করুন @EnableAsyncবা যুক্ত করুন@EnableScheduling

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

}

0

আমার ক্ষেত্রে আমার ইতিমধ্যে 'স্প্রিং-বুট-স্টার্টার-ওয়েব'-এর উপর মাভেন নির্ভরতা ছিল এবং আইডিইয়ের মধ্য থেকে স্প্রিংবুট অ্যাপ হিসাবে চালানোর সময় প্রকল্পটি স্বয়ংক্রিয়ভাবে থামানো ছাড়াই সূক্ষ্ম শুরু হবে । তবে, আমি যখন কে- এস-তে এটি স্থাপন করি তখন অ্যাপটি শুরু হয়ে যায় এবং তত্ক্ষণাত স্বয়ংক্রিয়ভাবে থামানো উচিত। সুতরাং আমি স্প্রিংবুটসার্ভলেটআইনিটিয়ালাইজারকে বাড়ানোর জন্য আমার মূল অ্যাপ্লিকেশন শ্রেণিটি পরিবর্তন করেছি এবং এটি স্বয়ংক্রিয় থামানো স্থির করেছে বলে মনে হচ্ছে।

@SpringBootApplication public class MyApp extends SpringBootServletInitializer {  public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);  }}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.