【问题标题】:Websphere 8.5 and SpringServletContainerInitializerWebsphere 8.5 和 SpringServletContainerInitializer
【发布时间】:2013-04-03 15:57:53
【问题描述】:

我们最近将我们的应用程序从 servlet 2.5 转换为 servlet 3.0,以便我们可以使用动态 servlet 配置。

我们正在使用 Spring 的 SpringServletContainerInitializer 来初始化我们的应用程序,并使用我们代码中对应的 WebApplicationInitializer 实例来初始化我们的应用程序。这种方法在 Tomcat 中有效,但是在部署到 Websphere 8.5.0.1 时,SpringServletContainerInitializer 无法在我们的代码中找到 WebApplicationInitializer 接口的实现,因此没有创建我们的 Spring MVC 调度程序 servlet。

我们在网上找到了one blog post,作者无法让它工作。

我们尝试过弄乱类加载器、类加载顺序,并通过其他方式验证 servlet 3.0 在容器中是否正常工作,而且似乎没问题。使用 WAS 类加载器查看器,我们可以看到 SpringServletContainerInitializer 类和 WebApplicationInitializer 接口已加载,但未加载我们的 WebApplicationInitializer 实现。

有人在 Websphere 中尝试过吗?我们认为这可能是类加载器问题,但最终毫无头绪。

【问题讨论】:

  • 您尝试过 WebSphere 论坛吗? ibm.com/developerworks/community/forums/html/…
  • 看起来我们可能要摆脱 WebSphere。这让我们失去了数周的生产力(在诸如此类的问题上),而且似乎没有提供组织计划使用的价值。
  • 我知道这是一个古老的评论——如果你不是真的在一些非常商业和必须认证的环境(银行等)中拥有 websphere 这些天是绝对没用的。它只会让开发人员变慢,而且 IBM RAD 也无济于事。你解决问题了吗?在 websphere 8.5 中运行 spring boot + vaadin 应用程序时我遇到了同样的问题
  • 通过最终说服人们转向嵌入式 tomcat 解决了这个问题。

标签: java spring-mvc websphere servlet-3.0


【解决方案1】:

我刚刚看到这个帖子。当调试类加载器问题时,WebSphere 提供了跟踪,当启用该跟踪时,可以提供有关正在发生或未发生的事情的更多详细信息。它是在您打开 PMR 时 IBM Support 要求的必须收集的数据中提供的。但它很容易阅读和理解输出。

http://www-01.ibm.com/support/docview.wss?uid=swg21196187#show-hide 在“手动收集数据”下,要使用的跟踪字符串是

com.ibm.ws.classloader.*=all

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题。问题是由以下 APAR http://www-01.ibm.com/support/docview.wss?uid=swg1PM85177 修复的 WebSphere 中的一个缺陷。 WebSphere 会构建注解缓存,由于缓存已满时的缺陷,它会丢弃以前缓存的注解,导致 SpringServletContainerInitializer 找不到 WebApplicationInitializer 的所有实现。

    此 APAR 已在 8.0.0.8 中发布,并计划在 8.5.5.2 发布,而 8.5.5.2 又计划在 4 月 28 日发布。与此同时,我设法将缓存的大小从默认的 2000 增加到 16000(在 4000 和 8000 时失败),此时我的应用程序开始工作。一种大小并不适合所有大小,因为缓存大小被 JVM 上的系统属性覆盖,用于 WebSphere 节点,适当的大小将取决于该节点上运行的应用程序以及它们(及其 JAR)如何使用注释,因此它将在确定您的应用程序的正确值之前,请务必使用此设置。

    我使用的JVM系统属性是-Dclassinfocachesize=16000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      相关资源
      最近更新 更多