2016-03-21 30 views
1

私はSpringBootアプリケーションを埋め込みのTomcatコンテナで実行したいと思っています。スプリングブート - 埋め込みTomcat

私は(私のMac上ですべてがうまくいく)Debianシステム上でそれを使用しています。 私はtomcat 8.0.29を使用しています。 Tomcatは正しく動作しています。 私は私のアプリケーションを起動するとき、私はこの例外があります。それは、完全なスタックトレースではありません。この部分の後には、自動配線ですべての例外についてのすべてpossibileものです。..

2016-03-21 13:42:21.573 INFO [main]: Starting Servlet Engine: Apache Tomcat/8.0.32 
2016-03-21 13:42:24.329 INFO [localhost-startStop-1]: Initializing Spring embedded WebApplicationContext 
2016-03-21 13:42:59.223 ERROR [localhost-startStop-1]: Error starting Tomcat context: org.springframework.beans.factory.BeanCreationException 
2016-03-21 13:43:03.472 INFO [localhost-startStop-1]: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [127] milliseconds. 
2016-03-21 13:43:03.593 WARN [main]: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat 
2016-03-21 13:43:03.838 ERROR [main]: Application startup failed 
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
    at it.besmart.parkserver.StartServer.main(StartServer.java:19) 
    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:483) 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:99) 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:76) 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:457) 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:168) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:160) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) 
    ... 14 more 

コンプリートの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>it.besmart</groupId> 
    <artifactId>eparkserver</artifactId> 
    <version>1.0.0</version> 
    <packaging>jar</packaging> 

    <name>eparkserver</name> 
    <description>ePark server</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
     <start-class>it.besmart.parkserver.StartServer</start-class> 

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

     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-log4j</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-rest</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
      </exclusion> 
     </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
     </dependency> 

    <dependency> 
      <groupId>com.pi4j</groupId> 
      <artifactId>pi4j-core</artifactId> 
      <version>1.0</version> 
     </dependency> 

      <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <executable>true</executable> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>server-copy</id> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <phase>package</phase> 
         <configuration> 
          <target> 
           <echo message="Push to server/home/pi/park/" /> 
           <scp trust="yes" todir="pi:[email protected]:/home/pi/park/"> 
            <fileset dir="${basedir}/target"> 
            </fileset> 
           </scp> 
          </target> 
         </configuration> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>org.apache.ant</groupId> 
         <artifactId>ant-jsch</artifactId> 
         <version>1.8.2</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

これは、アプリケーションクラス

@SpringBootApplication 
@ComponentScan("it.besmart") 
public class StartServer extends SpringBootServletInitializer{ 


    public static void main(String[] args){ 


     SpringApplication.run(StartServer.class, args); 


    } 

    @Override 
     protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) { 
      return application.sources(StartServer.class); 
    } 

} 
です

これは問題がありますか?

+0

の属性をカスタマイズするために別名を提供するため、私はTomcatの8を使用しています 'とはどういう意味ですか0.09。 Tomcatは正しく動作しています.'あなたはSpringブートで使うつもりのもの以外にTomcatを実行していますか?その場合、既定のポート(8080)が既に占有されているため、スプリングブートを実行しているコマンドラインにシステムプロパティを追加することによって、埋め込みTomcat HTTPポートを変更する必要があります: '-Dserver.port = XXX'。 –

+0

申し訳ありませんが、私は私のサーバー上で風袋8.0.29を持っているが、それはオフで実行されていない – besmart

+0

あなたのアプリケーションの初心者クラスを投稿するあなたはこのクラスを@SpringBootApplicationでアノテートしましたか –

答えて

1

これはあなたのpom.xml

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

を追加し、StartServerをリファクタリングし、この@ComponentScan("it.besmart")を削除し、あなたのpom.xmlに春ブート・スターター・ウェブの依存関係を追加する必要があると思います@SpringBootApplication@EnableAutoConfiguration@ComponentScan

+0

組み込みを開始することができませんが、私はTomcatのプラグインを除外した場合、これはコンテナになりますか?さらに、ServletContextとServletExcpetionが見つからないため、StartServer.classにパッケージングエラーが発生する – besmart

+0

エラースタックトレースを追加する –

+0

この部分の後に、自動配線フィールドの例外がたくさんある... – besmart

0

は私が

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

私は、Tomcatが正常に起動しますが、すぐにそれた後、私は 'アプリケーションの起動が org.springframework.context.ApplicationContextException失敗してしまったように、今、それが見え、この依存関係を追加しました:埋め込まれたコンテナを開始できません。ネストされた例外はorg.springframework.boot.context.embedded.EmbeddedServletContainerExceptionです:Tomcat' – besmart

関連する問題