2016-05-14 4 views
4

У меня есть приложение для загрузки Spring, построенное с помощью maven, jdk1.8. Используется встроенная упаковка Tomcat и jar. Я использую Spring Tool Suite, чтобы подтолкнуть приложение к CloudFoundry. Я получаю следующие сообщения в консоли после нажатия:Приложение Spring Boot не запускается в CloudFoundry

[CONTAINER] org.apache.jasper.servlet.TldScanner    INFO At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
[CONTAINER] org.apache.catalina.startup.HostConfig    INFO Deployment of web application directory /home/vcap/app/.java-buildpack/tomcat/webapps/ROOT has finished in 724 ms 
[CONTAINER] org.apache.coyote.http11.Http11NioProtocol   INFO Starting ProtocolHandler ["http-nio-8080"] 
[CONTAINER] org.apache.tomcat.util.net.NioSelectorPool   INFO Using a shared selector for servlet write/read 
[CONTAINER] org.apache.catalina.startup.Catalina    INFO Server startup in 814 ms 
healthcheck passed 
Container became healthy 
Exit status 0 
[Application Running Check] - Application appears to be running - MY-APP 

Проблема - нет Spring загрузки баннера, никаких сообщений о загрузке программы из моего приложения - ничего. Если я просматриваю URL-адрес, я просто получаю 404 (что значит, как-то работает Tomcat!).

Я попытался

CF файлов

, но понял, что это на Диего, поэтому я попытался

сравни SSH MY-APP

и посмотрел каталог журналов - ничего там вообще, ни одного файла. и

CF-событие

просто говорит, что приложение уже началось.

Консоль GUI в CloudFoundry с радостью сообщает, что ее «Запуск» Как я даже начинаю устранять эту проблему?

Manifest.yml

--- 
applications: 
- name: MY-APP 
memory: 1024M 
host: my-app 
domain: xxx.yyy.com 
services: 
- p-mysql 
instances: 1 

application.properties

spring.jpa.hibernate.ddl-auto=update 
spring.datasource.url = jdbc:mysql://<ip_addr>:3306/<db_name>?user=<user_name>&password=<password> 
spring.datasource.username = <username> 
spring.datasource.password = <password> 
spring.thymeleaf.cache: false 

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>MyAPP</groupId> 
<artifactId>my-app</artifactId> 
<version>0.2</version> 

<name>my-app</name> 
<description>Attempt2</description> 

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

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</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-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <!--<dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
    </dependency> --> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.webjars</groupId> 
     <artifactId>bootstrap</artifactId> 
     <version>3.3.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.webjars</groupId> 
     <artifactId>jquery</artifactId> 
     <version>2.1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
    </dependency> 
</dependencies> 

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

<repositories> 
    <repository> 
     <id>spring-snapshots</id> 
     <name>Spring Snapshots</name> 
     <url>https://repo.spring.io/snapshot</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
    <repository> 
     <id>spring-milestones</id> 
     <name>Spring Milestones</name> 
     <url>https://repo.spring.io/milestone</url> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 

<repository> 
    <id>sonatype-nexus-snapshots</id> 
    <name>Sonatype Nexus Snapshots</name> 
    <url>https://oss.sonatype.org/content/repositories/snapshots</url> 
    <snapshots> 
     <enabled>true</enabled> 
    </snapshots> 
</repository> 

</repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>spring-snapshots</id> 
     <name>Spring Snapshots</name> 
     <url>https://repo.spring.io/snapshot</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </pluginRepository> 
    <pluginRepository> 
     <id>spring-milestones</id> 
     <name>Spring Milestones</name> 
     <url>https://repo.spring.io/milestone</url> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </pluginRepository> 
</pluginRepositories> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf</artifactId> 
      <version>2.1.5-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

основной класс

package com.sa; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class MyAppApplication { 

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

CloudFoundry Env переменные

{ 
"staging_env_json": {}, 
"running_env_json": {}, 
"system_env_json": { 
"VCAP_SERVICES": { 
    "p-mysql": [ 
    { 
     "name": "p-mysql", 
     "label": "p-mysql", 
     "tags": [ 
     "mysql", 
     "relational" 
     ], 
     "plan": "pre-existing-plan", 
     "credentials": { 
     "hostname": "<ip-addr>", 
     "port": 3306, 
     "name": "db-name", 
     "username": "<username>", 
     "password": "<password>", 
     "uri": "mysql://<username>:<pass>@<ip_addr>:3306/<db-name>?reconnect=true", 
     "jdbcUrl": "jdbc:mysql://<ip_addr>:3306/<db-name>?user=<username>&password=<pass>" 
     } 
    } 
    ] 
} 
}, 
"application_env_json": { 
"VCAP_APPLICATION": { 
    "limits": { 
    "mem": 1024, 
    "disk": 1024, 
    "fds": 16384 
    }, 
    "application_id": "<some string>", 
    "application_version": "<some other string>", 
    "application_name": "my-app", 
    "application_uris": [ 
    "my-app.xxx.yyy.com" 
    ], 
    "version": "2d5fd7b0-a1c2-4039-8eed-fb6e25772dee", 
    "name": "my-app", 
    "space_name": "xyz", 
    "space_id": "<some string>", 
    "uris": [ 
    "my-app.xxx.yyy.com" 
    ], 
    "users": null 
    } 
} 
} 
+0

Если вы получаете для Tomcat 404, то все работает нормально * кроме приложения *;!? как же ваши маршруты настроены Что вы ожидали Корневая страница должна быть? – jonrsharpe

+0

Я не настроил никаких маршрутов в Cloud Foundry. Мой контроллер сопоставлен с '/abc' и возвращает 404. – aaaaarrrgghhh

+0

Вам не нужно настраивать маршруты CF, но вам нужно показать [mcve] вашей конфигурации приложения. – jonrsharpe

ответ

5

После вспашки прочь на этом в течение половины дня, я нашел problem.For нетерпеливый, это было из-за этого вопроса [пружинной загрузки и Java buildpack] [ 1] https://github.com/spring-projects/spring-boot/issues/4897

Я ничего не получал от нажатия STS, поэтому я вернулся в CLI. Во-первых, mvn clean package затем cf push -p PATH-to-Jar Был целый след сообщений об ошибках (наконец-то, на что посмотреть!), Заканчивая

2016-05-14T21:22:46.71+0800 [API/0]  OUT App instance exited with guid 83ec77d4-bcc5-4b12-8430-dd0a4d140b22 payload: {"instance"=>"27dc9686-1853-4 465-745e-55e450ee94c4", "index"=>0, "reason"=>"CRASHED", 
"exit_description"=>"2 error(s) occurred:\n\n* 2 error(s) occurred:\n\n* 
Exited with status 1 
\n* cancelled\n* cancelled", "crash_count"=>3, "crash_timestamp"=>1463232166690142658, "version"=>"b37907a9-f4d6-4045-987c-f7bddb5e7a5c"} 

Ссылка выше объясняет проблему и способы ее решения (использовать последнюю Java-buildpack (указать -b переключатель КФ кли), так что если кто-нибудь увидит это исключение, когда толкая пружину загрузки приложение в облако литейного, вы знаете, что может быть потенциальной проблемой

ERR Caused by: java.lang.IllegalArgumentException: Cannot instantiate 
interface org.springframework.context.ApplicationContextInitializer :org.cloudfoundry.reconfiguration.spring.CloudPropertySourceApplicationContextInitializer 
Смежные вопросы