&引用;SLF4J:类路径包含多个SLF4J绑定;将Spring示例应用程序部署到Cloud Foundry时出错

&引用;SLF4J:类路径包含多个SLF4J绑定;将Spring示例应用程序部署到Cloud Foundry时出错,spring,spring-boot,np-spring,Spring,Spring Boot,Np Spring,我正在尝试使用STS引导仪表板将Spring示例应用程序(使用JSP和WAR打包的Spring Boot 1.3.4应用程序)的部署到Pivotal Cloud Foundry。我已经创建了manifest.yml文件,如下所示: --- applications: - name: np-spring-tutorial buildpack: https://github.com/cloudfoundry/java-buildpack.git path: target/spring-tut

我正在尝试使用STS引导仪表板将Spring示例应用程序(使用JSP和WAR打包的Spring Boot 1.3.4应用程序)的部署到Pivotal Cloud Foundry。我已经创建了manifest.yml文件,如下所示:

---
applications:
- name: np-spring-tutorial
  buildpack: https://github.com/cloudfoundry/java-buildpack.git
  path: target/spring-tutorial-0.0.1-SNAPSHOT.war
  env:
    application_url: http://np-spring-tutorial.cfapps.io
  timeout: 180
应用程序得到部署,似乎运行良好;我可以查看页面。但是,启动时会出现:SLF4J:类路径包含多个SLF4J绑定”错误。以下是日志:

[9 May, 2016 11:18:31 AM - Boot Dashboard] - Creating application: np-spring-tutorial
[9 May, 2016 11:18:38 AM - Boot Dashboard] - Verifying that the application was created successfully: np-spring-tutorial
Updated app with guid 7a95bd52-1c14-461b-a6df-59aeb7ba285a ({"environment_json"=>"PRIVATE DATA HIDDEN"})
[9 May, 2016 11:19:08 AM - Boot Dashboard] - Generating archive for application: np-spring-tutorial
[9 May, 2016 11:19:08 AM - Boot Dashboard] - Uploading archive to Cloud Foundry for application: np-spring-tutorial
[9 May, 2016 11:19:57 AM - Boot Dashboard] - Archive uploaded to Cloud Foundry for application: np-spring-tutorial
[9 May, 2016 11:20:02 AM - Boot Dashboard] - Starting application: np-spring-tutorial
[9 May, 2016 11:20:09 AM - Boot Dashboard] - Checking if the application is running. Please wait...
Updated app with guid 7a95bd52-1c14-461b-a6df-59aeb7ba285a ({"state"=>"STARTED"})
Creating container
Successfully created container
Downloading app package...
Downloaded app package (45.5M)
Staging...
-----> Java Buildpack Version: 78c3d0a | https://github.com/cloudfoundry/java-buildpack.git#78c3d0a
-----> Downloading Open Jdk JRE 1.8.0_91-unlimited-crypto from https://download.run.pivotal.io/openjdk/trusty/x86_64/openjdk-1.8.0_91-unlimited-crypto.tar.gz (1.9s)
       Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.1s)
-----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://download.run.pivotal.io/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (0.0s)
       Memory Settings: -Xss1M -Xmx768M -XX:MaxMetaspaceSize=104857K -Xms768M -XX:MetaspaceSize=104857K
-----> Downloading Container Customizer 1.0.0_RELEASE from https://download.run.pivotal.io/container-customizer/container-customizer-1.0.0_RELEASE.jar (0.0s)
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading build artifacts cache...
Uploading droplet...
Uploaded build artifacts cache (45.4M)
Uploaded droplet (91.1M)
Creating container
Successfully created container
Starting health monitoring of container
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
java.lang.AbstractMethodError: ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/Context;Lch/qos/logback/core/pattern/Converter;)V
    at ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:85)
    at ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28)
    at ch.qos.logback.classic.BasicConfigurator.configure(BasicConfigurator.java:50)
    at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:164)
    at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:140)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:119)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:328)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:280)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273)
    at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:191)
    at com.naturalprogrammer.spring.tutorial.NpSpringTutorialApplication.main(NpSpringTutorialApplication.java:14)
    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:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
    at java.lang.Thread.run(Thread.java:745)
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:62)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    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:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
    ... 1 more
Caused by: java.lang.AbstractMethodError: ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/Context;Lch/qos/logback/core/pattern/Converter;)V
    at ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:85)
    at ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28)
    at org.springframework.boot.logging.logback.LogbackConfigurator.start(LogbackConfigurator.java:112)
    at org.springframework.boot.logging.logback.DefaultLogbackConfiguration.consoleAppender(DefaultLogbackConfiguration.java:121)
    at org.springframework.boot.logging.logback.DefaultLogbackConfiguration.apply(DefaultLogbackConfiguration.java:78)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadDefaults(LogbackLoggingSystem.java:124)
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:74)
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:49)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:106)
    at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:262)
    at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:233)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:200)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:176)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119)
    at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330)
    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 com.naturalprogrammer.spring.tutorial.NpSpringTutorialApplication.main(NpSpringTutorialApplication.java:14)
    ... 6 more
Exit status 0
Exit status 0
App instance exited with guid 7a95bd52-1c14-461b-a6df-59aeb7ba285a payload: {"instance"=>"3c98e26d-7714-45b8-6152-df1ae08c2025", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"2 error(s) occurred:\n\n* 2 error(s) occurred:\n\n* Codependent step exited\n* cancelled\n* cancelled", "crash_count"=>1, "crash_timestamp"=>1462773044776529510, "version"=>"8cf24bda-13e6-49a6-8b52-906440c1b780"}
Creating container
Successfully created container
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.3.4.RELEASE)
2016-05-09 05:50:52.875  INFO 29 --- [           main] pertySourceApplicationContextInitializer : Adding 'cloud' PropertySource to ApplicationContext
2016-05-09 05:50:52.963  INFO 29 --- [           main] nfigurationApplicationContextInitializer : Adding cloud service auto-reconfiguration to ApplicationContext
2016-05-09 05:50:52.978  INFO 29 --- [           main] c.n.s.t.NpSpringTutorialApplication      : Starting NpSpringTutorialApplication on ip3ju5q5j6m with PID 29 (/home/vcap/app/WEB-INF/classes started by vcap in /home/vcap/app)
...
2016-05-09 05:51:07.749  INFO 29 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-05-09 05:51:08.376  INFO 29 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
Container became healthy
2016-05-09 05:51:08.720  INFO 29 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2016-05-09 05:51:10.014  INFO 29 --- [           main] c.n.s.t.NpSpringTutorialApplication      : Started NpSpringTutorialApplication in 18.612 seconds (JVM running for 19.599)
[9 May, 2016 11:21:22 AM - Boot Dashboard] - Application appears to have started - np-spring-tutorial
[2016年5月9日上午11:18:31-引导仪表板]-创建应用程序:np spring教程
[2016年5月9日上午11:18:38-引导仪表板]-验证应用程序是否已成功创建:np spring教程
更新了应用程序,guid为7a95bd52-1c14-461b-a6df-59aeb7ba285a({“environment_json”=>“PRIVATE DATA HIDDEN”})
[2016年5月9日上午11:19:08-引导仪表板]-为应用程序生成存档:np spring教程
[2016年5月9日上午11:19:08-引导仪表板]-将存档上载到Cloud Foundry以供应用:np spring教程
[2016年5月9日上午11:19:57-引导仪表板]-存档已上载到Cloud Foundry以供应用:np spring教程
[2016年5月9日上午11:20:02-启动仪表板]-启动应用程序:np spring教程
[2016年5月9日上午11:20:09-启动仪表板]-正在检查应用程序是否正在运行。请稍候。。。
更新了应用程序,guid为7a95bd52-1c14-461b-a6df-59aeb7ba285a({“状态”=>“已启动”})
创建容器
已成功创建容器
正在下载应用程序包。。。
下载的应用程序包(45.5百万)
舞台表演。。。
----->Java构建包版本:78c3d0a |https://github.com/cloudfoundry/java-buildpack.git#78c3d0a
----->从下载Open Jdk JRE 1.8.0_91-unlimited-cryptohttps://download.run.pivotal.io/openjdk/trusty/x86_64/openjdk-1.8.0_91-unlimited-crypto.tar.gz (1.9秒)
将openjdkjre扩展到.java buildpack/Open_Jdk_JRE(1.1s)
----->从下载OpenJDK-Like内存计算器2.0.2_发行版https://download.run.pivotal.io/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (0.0秒)
内存设置:-Xss1M-Xmx768M-XX:MaxMetaspaceSize=104857K-Xms768M-XX:MetaspaceSize=104857K
----->从下载Container Customizer 1.0.0_发行版https://download.run.pivotal.io/container-customizer/container-customizer-1.0.0_RELEASE.jar (0.0秒)
退出状态0
登台完成
正在上载液滴,构建工件缓存。。。
正在上载生成工件缓存。。。
正在上载液滴。。。
上载的构建工件缓存(45.4M)
上传液滴(91.1M)
创建容器
已成功创建容器
启动容器的健康监控
SLF4J:类路径包含多个SLF4J绑定。
SLF4J:在[jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.3.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定
SLF4J:在[jar:file:/home/vcap/app/WEB-INF/lib/logback-classic-1.1.7.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定
SLF4J:参见http://www.slf4j.org/codes.html#multiple_bindings 我需要一个解释。
未能实例化[ch.qos.logback.classic.LoggerContext]
报告的例外情况:
java.lang.AbstractMethodError:ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/Context;Lch/qos/logback/core/pattern/Converter;)V
位于ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:85)
位于ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28)
位于ch.qos.logback.classic.BasicConfigurator.configure(BasicConfigurator.java:50)
位于ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:164)
位于org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
位于org.slf4j.impl.StaticLoggerBinder。(StaticLoggerBinder.java:55)
位于org.slf4j.LoggerFactory.bind(LoggerFactory.java:140)
在org.slf4j.LoggerFactory.performinization上(LoggerFactory.java:119)
位于org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:328)
位于org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:280)
位于org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
位于org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
位于org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273)
位于org.springframework.boot.SpringApplication(SpringApplication.java:191)
位于com.naturalprogrammer.spring.tutorial.NpSpringTutorialApplication.main(NpSpringTutorialApplication.java:14)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
运行(Thread.java:745)
SLF4J:实际绑定的类型为[ch.qos.logback.classic.util.ContextSelectorStaticBinder]
线程“main”java.lang.RuntimeException中的异常:java.lang.reflect.InvocationTargetException
位于org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:62)
运行(Thread.java:745)
原因:java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
…还有一个
原因:java.lang.AbstractMethodError:ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/Context;Lch/qos/logback/core/pattern/Converter;)V
在ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayo