我正在尝试配置IBM WebSphere Liberty服务器(16.0.0.3),以便我们的应用程序之一在那里运行,但除了明显不可靠之外,服务器还需要很长时间才能启动。 这在日志文件中很清楚:
[17-11-2016 15:54:16:231 GMT] 0000001c com.ibm.ws.webcontainer.security.ServletStartedListener I CWWKS9122I: For URL /* in application com.ibm.ws.jmx.connector.server.rest, the following HTTP methods are uncovered, and accessible: HEAD OPTIONS TRACE
[17-11-2016 15:56:18:349 GMT] 0000001b org.jboss.weld.Event I WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<T>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
[17-11-2016 15:56:19:798 GMT] 0000001b com.ibm.ws.ejbcontainer.osgi.internal.EJBRuntimeImpl I CNTR4000I: The ALLPLEXEJBeans-v2.jar EJB module in the ECC application is starting.
正如你所看到的,将前两行分开超过2分钟,这是荒谬的,特别是考虑到它是一个非常小的应用程序。
在放弃Liberty个人资料之前,我该怎么做才能加快速度?
答案 0 :(得分:4)
两种方法:
告诉CDI仅扫描包含 beans.xml 文件的应用程序。通过在服务器配置( server.xml )中包含它来禁用Liberty中的“隐式”bean归档
<cdi12 enableImplicitBeanArchives="false"/>
有关详细讨论,请参阅here。
正如Brett Kail指出的那样,如果这是服务器中唯一的应用程序和/或您根本不需要或不需要CDI,则可以从cdi-1.2
中完全删除<featureManager>
功能。正如他也指出的那样,要注意webProfile-7.0
或javaee-7.0
等功能,其中包含cdi-1.2
功能。