0

我正在将一个 Java EE 应用程序部署到 Bluemix,当第一个请求到达时,我收到了以下错误:

2015-05-20T23:11:58.51+0200 [App/0] OUT [INFO] FFDC1015I: 已创建 FFDC 事件:“java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.cloudfoundry.reconfiguration.spring .AutoReconfigurationServletContainerInitializer 无法在 ffdc_15.05.20_21.11.58.0.log 实例化 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost startWebApp”

我认为这是来自 Liberty Buildpack 的一段代码。这是内容文件 ffdc_15.05.20_21.11.58.0.log (它似乎是 ClassNotFoundException 但由于它不是我的应用程序的一部分,我不知道该怎么做):

Exception = java.util.ServiceConfigurationError Source = com.ibm.ws.webcontainer.osgi.DynamicVirtualHost probeid = startWebApp Stack Dump = java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.cloudfoundry.reconfiguration.spring.AutoReconfigurationServletContainerInitializer 不能在 java.util.ServiceLoader$LazyIterator.next(Unknown Source) 在 java.util.ServiceLoader$1.next 在 java.util.ServiceLoader.access$100(Unknown Source) 在 java.util.ServiceLoader.fail(Unknown Source) 实例化(未知来源) com.ibm.ws.webcontainer.webapp.WebApp.initializeServletContainerInitializers(WebApp.java:2454) com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1038) com.ibm .ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6396) 在 com.ibm.ws。webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446) 在 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:248) 在 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler( DynamicVirtualHost.java:313) 在 com.ibm.ws.http.internal.VirtualHostImpl.discriminate(VirtualHostImpl.java:251) 在 com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java: 306) 在 com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:449) 在 com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java: 383) 在 com.ibm.ws.http.channel 的 com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:283)。internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:254) 在 com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:174) 在 com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete( NewConnectionInitialReadCallback.java:83) 在 com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504) 在 com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574) 在 com .ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929) 在 com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018) 在 java.util.concurrent.ThreadPoolExecutor java.util.concurrent.ThreadPoolExecutor$Worker 上的 .runWorker(Unknown Source)。在 java.lang.Thread.run(Unknown Source) 处运行(Unknown Source) 原因:java.lang.NoClassDefFoundError: org.springframework.context.ApplicationContextInitializer at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang。 ClassLoader.defineClass(Unknown Source) at com.ibm.ws.classloading.internal.AppClassLoader.definePackageAndClass(AppClassLoader.java:297) at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:241) at java.lang.ClassLoader.loadClassHelper(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:390) at com.ibm.ws .classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:362) 在 java.lang.ClassLoader。loadClass(Unknown Source) at org.cloudfoundry.reconfiguration.spring.AutoReconfigurationServletContainerInitializer.(AutoReconfigurationServletContainerInitializer.java:33) at java.lang.J9VMInternals.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Unknown Source) ...还有 23 个原因:java.lang.ClassNotFoundException:com.ibm.ws.classloading.internal.AppClassLoader.findClassCommonLibraryClassLoaders(AppClassLoader.java:412) 的 com.ibm.ws.classloading.internal 的 org.springframework.context.ApplicationContextInitializer。 AppClassLoader.findClass(AppClassLoader.java:246) at java.lang.ClassLoader.loadClassHelper(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader .java:390) 在 com.ibm.ws。classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:362) at java.lang.ClassLoader.loadClass(Unknown Source) ... 35 更多

谢谢!

4

1 回答 1

1

我想您的应用程序正在使用 Spring Framework,这会触发Spring Auto-Reconfiguration。如果您不需要此自动重新配置支持,您可以通过为您的应用程序设置以下环境变量来禁用它并重新构建:

cf set-env <app-name> JBP_CONFIG_SPRINGAUTORECONFIGURATION "enabled: false"

cf restage <app-name>
于 2015-05-21T17:46:01.783 回答