2017-05-15 24 views
0

私はREST APIに接続してレスポンスを見るために使用している単純なスプリングブートアプリケーションを持っています。プロトタイプ作成のためのシンプルなアプリです。私はjava.net.BindExceptionが原因でポート9001で投げているが、これは私が上で実行するようにアクチュエータを構成し、同じポートであり、それは追加する前に罰金を実行していた推測しているスプリングブーツ| LifecycleProcessorが初期化されていない - ライフサイクルメソッドを呼び出す前に 'refresh'を呼び出す例外

java.net.BindException: Address already in use: bind 
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_121] 
    at sun.nio.ch.Net.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.Net.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) ~[na:1.8.0_121] 
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:874) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:590) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:969) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:233) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:178) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.createChildManagementContext(EndpointWebMvcAutoConfiguration.java:193) [spring-boot-actuator-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.afterSingletonsInstantiated(EndpointWebMvcAutoConfiguration.java:156) [spring-boot-actuator-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:779) [spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at com.crossover.techtrial.java.se.TrialApplication.main(TrialApplication.java:12) [classes/:na] 

2017-05-15 22:17:45.906 ERROR 5488 --- [   main] o.apache.catalina.core.StandardService : Failed to start connector [Connector[HTTP/1.1-9001]] 

org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-9001]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:233) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:178) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.createChildManagementContext(EndpointWebMvcAutoConfiguration.java:193) [spring-boot-actuator-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.afterSingletonsInstantiated(EndpointWebMvcAutoConfiguration.java:156) [spring-boot-actuator-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:779) [spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at com.crossover.techtrial.java.se.TrialApplication.main(TrialApplication.java:12) [classes/:na] 
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat"; Protocol handler start failed 
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:976) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    ... 19 common frames omitted 
Caused by: java.net.BindException: Address already in use: bind 
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_121] 
    at sun.nio.ch.Net.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.Net.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) ~[na:1.8.0_121] 
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) ~[na:1.8.0_121] 
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:874) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:590) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:969) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    ... 20 common frames omitted 

2017-05-15 22:17:45.912 INFO 5488 --- [   main] o.apache.catalina.core.StandardService : Stopping service Tomcat 
2017-05-15 22:17:45.919 INFO 5488 --- [   main] o.apache.catalina.core.StandardService : Stopping service Tomcat 
2017-05-15 22:17:45.930 INFO 5488 --- [   main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-05-15 22:17:45.931 INFO 5488 --- [   main] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot[email protected]4228f269: startup date [Mon May 15 22:17:45 PKT 2017]; parent: org.springframework.boot[email protected]61df66b6 
2017-05-15 22:17:45.934 ERROR 5488 --- [   main] o.s.b.d.LoggingFailureAnalysisReporter : 

*************************** 
APPLICATION FAILED TO START 
*************************** 

Description: 

The Tomcat connector configured to listen on port 9001 failed to start. The port may already be in use or the connector may be misconfigured. 

Action: 

Verify the connector's configuration, identify and stop any process that's listening on port 9001, or configure this application to listen on another port. 

2017-05-15 22:17:45.935 INFO 5488 --- [   main] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot[email protected]61df66b6: startup date [Mon May 15 22:17:42 PKT 2017]; root of context hierarchy 
2017-05-15 22:17:45.935 WARN 5488 --- [   main] ationConfigEmbeddedWebApplicationContext : Exception thrown from LifecycleProcessor on context close 

java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.springframework.boot[email protected]61df66b6: startup date [Mon May 15 22:17:42 PKT 2017]; root of context hierarchy 
    at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:417) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:961) [spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] 
    at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:818) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.3.RELEASE.jar:1.4.3.RELEASE] 
    at com.crossover.techtrial.java.se.TrialApplication.main(TrialApplication.java:12) [classes/:na] 

2017-05-15 22:17:45.936 INFO 5488 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans on shutdown 
2017-05-15 22:17:45.936 INFO 5488 --- [   main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 

:しかし、私は次のエラーを取得していますクライアント機能なぜ私はスタンドアロンのアプリケーションとして私のアプリケーションを実行すると、常にコンテナを再起動すると思ったので、私はこの例外をスローしているのか分からない。

例外の残りの部分は私には何の手掛かりがないのですか?ネット上で検索した結果、依存関係が矛盾している可能性があることがわかりましたが、pom.xmlには何も見えません。

私の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.crossover.techtrial.java.se</groupId> 
    <artifactId>trial</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>trial</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.3.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-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-actuator</artifactId> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

マイapplication.properties:

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/SampleDB 
spring.datasource.username=root 
spring.datasource.password=admin 
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 
management.port = 9001 
apiforest.baseuri = https://api-forest/.... 
read.timeout = 10000 
connect.timeout = 10000 

アカウントDTOのための私のコード:

package com.crossover.techtrial.java.se.dto; 

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Account 
{ 
    private String id; 

    private MonetaryAmount monetaryAmount; 

    public Account() 
    { 

    } 

    public String getId() 
    { 
     return id; 
    } 

    public void setId(String id) 
    { 
     this.id = id; 
    } 

    public MonetaryAmount getMonetaryAmount() 
    { 
     return monetaryAmount; 
    } 

    public void setMonetaryAmount(MonetaryAmount monetaryAmount) 
    { 
     this.monetaryAmount = monetaryAmount; 
    } 

} 

私の呼び出しコード:

package com.crossover.techtrial.java.se; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.test.context.SpringBootTest; 
import org.springframework.test.context.junit4.SpringRunner; 
import org.springframework.web.client.RestTemplate; 

import com.crossover.techtrial.java.se.dto.Account; 

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class TrialApplicationTests 
{ 
    public static void main(String args[]) 
    { 
     RestTemplate restTemplate = new RestTemplate(); 
     Account[] accounts = restTemplate.getForObject("${apiforest.baseuri}" + "/pay/accounts", Account[].class); 
     System.out.println(accounts); 
    }*/ 


    @Test 
    public void contextLoads() 
    { 
    } 

} 

マイRestConfigクラス:

package com.crossover.techtrial.java.se.config; 


import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.http.client.ClientHttpRequestFactory; 
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; 
import org.springframework.web.client.RestTemplate; 

// To set the configuration parameters like read timeout and connect timeout for Rest Client 
@Configuration 
public class RestConfig 
{ 
    @Bean 
    public RestTemplate createRestTemplate(final ClientHttpRequestFactory clientHttpRequestFactory) 
    { 
     return new RestTemplate(clientHttpRequestFactory); 
    } 

    @Bean 
    public ClientHttpRequestFactory createClientHttpRequestFactory(@Value("${connect.timeout}") final int connectTimeout, 
      @Value("${read.timeout}") final int readTimeout) 
    { 
     HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); 
     factory.setConnectTimeout(connectTimeout); 
     factory.setReadTimeout(readTimeout); 
     return factory; 
    } 
} 

このエラーを解決するには、私を助けてください。

ありがとうございました。

+0

'netstat'(linuxとwindowsの両方)を使って、どのアプリケーションがそのポートでリッスンしているかを確認します(netstatは実行可能ファイルの名前も教えてくれます)。不正なプログラムを持っているか、テストアプリケーションのインスタンスがハングしている可能性があります。 – Andrei

+0

私はそれをしました。そのポートでは何も実行されていません。私はかなり私はすべてのコードを記述することなく適切に設定したかどうかをテストするために1回走ったので、私のアプリと関係があると確信しています。私の問題は、スタンドアロンのアプリケーションとして実行され、私のタスクマネージャでさえも見ることができないので、なぜこのエラーが発生するのかです。 – zhaider

答えて

0

今日私はアプリを走らせたときに面白いほど面白かったですが、それは私にそのエラーを与えませんでした。私はそれを引き起こしたのか分からないが、PCを再起動したように思える。

+0

アプリケーションを開始しようとしているポートが他のプロセスによって使用されていました。そのポートで実行されているプロセスを終了してから、アプリケーションを起動する必要があります。あなたのPCを再起動すると、ポート上のプロセスが強制終了されたため、作業が終了しました。 – Hiren

4

あなたのアプリケーションが使用するはずのポートは、他のアプリケーションで既に使用されていました。あなたが再起動すると、そのポートを使用していたPCアプリケーションが終了し、ポートが解放されました。これが、再起動後にアプリケーションが実行された理由です。

Windowsのコマンドnetstat -naoを使用して、プロセスのポート番号とPIDを確認できます。

関連する問題