2016-03-21 26 views
1

Katıştırılmış tomcat kapsayıcısıyla çalıştırılmak istediğim bir Springboot Uygulaması var.Yaylı önyükleme - Yerleşik Tomcat

Bunu bir Debian Sisteminde kullanıyorum (Mac'imde her şey iyi gidiyor). Tomcat 8.0.29 kullanıyorum. Tomcat düzgün çalışıyor. Uygulamamı başlattığımda bu özel durumu aldım. Bu Bu uygulama sınıfı

@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); 
    } 

} 
olduğunu

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

Komple pom.xml

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 

.. hepsi otomatik kablolama tüm Possibile şeyler de istisna ilgili bundan sonraki kısmında, tam yığın izleme değil

Bu sorun olabilir?

+0

Tomcat 8 kullanıyorum? .0.29. Tomcat düzgün çalışıyor. Spring boot ile kullanmak istediğin gömülü olanın dışında başka bir Tomcat var mı? Bu durumda, varsayılan önyükleme (8080) zaten dolu olduğundan, önyükleme komut satırına bir sistem özelliği ekleyerek gömülü Tomcat HTTP bağlantı noktasını değiştirmeniz gerekir: '-Dserver.port = XXX'. –

+0

Üzgünüm, sunucumda tomcat 8.0.29 var demek, fakat kapalı, uygulama başlangıç ​​sınıfında – besmart

+0

yayınlanmıyor, bu sınıf, OP –

cevap

1

Bu pom.xml

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

ekleyip StartServer planı ayrı ve bu @ComponentScan("it.besmart") silmek size pom.xml Yay çizme-marş-web bağımlılık eklemek gerektiğini düşünüyorum @SpringBootApplication ayrıca, @EnableAutoConfiguration ve @ComponentScan

'un özelliklerini özelleştirmek için diğer adlar sağlar.
+0

Ama kapsayıcı olacak tomcat eklentisini hariç tutuyor muyum? Üstelik, bunun haricinde, ServletContext ve ServletExcpetion – besmart

+0

hata bloğu –

+0

ekleme hatası için StartServer.class içinde paketleme hatası veriyor, bu bölümden sonra otomatik kablolama alanlarındaki İstisnalar tonu ... – besmart

0

Ben

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

Bu bağımlılığı ekledim, şimdi Tomcat doğru başladığı gibi görünüyor ama kısa bir süre sonra "Uygulama başlangıç ​​başarısız oldu org.springframework.context.ApplicationContextException: Gömülü kapsayıcı başlatılamıyor; nested exception org.springframework.boot.context.embedded.EmbeddedServletContainerException: Gömülü Tomcat 'başlatılamıyor – besmart

İlgili konular