【问题标题】:How to `whitelist-package` with Payara Micro Bundle?如何使用 Payara Micro Bundle 将包列入白名单?
【发布时间】:2020-09-13 10:13:07
【问题描述】:

根据这个blog article,要在Payara中使用Google Guava,它需要被“列入白名单”,但是,如何whitelist-package与Payara Micro Bundle一起使用?

应用程序web.xml不接受<whitelist-package>com.google</whitelist-package>

【问题讨论】:

  • 查看这个:medium.com/@abangkis/… 它基本上建议您在 web.xml 文件的同一文件夹中创建一个 glassfish-web.xml 文件,该文件会将包列入白名单。值得一试!
  • @OnurBaştürk 是的,我试过了,它破坏了应用程序,甚至无法加载。
  • 请问:您要使用哪个版本的 Google Guava?您在源代码中提供的那个还是 Payara 提供的那个?你的 Payara 服务器是什么版本的?在您提供的帖子中,它说白名单从第 171 个版本开始

标签: java payara payara-micro


【解决方案1】:

如果您想使用已经捆绑在 Payara Server 中的版本,您只需要将 Google Guava 库列入白名单。如果您希望使用应用程序 WAR 中存在的 Google Guava 库,您可以执行以下操作之一:

  • 禁用类加载委托(始终从您的应用加载任何类,仅在您的应用中不存在类时从 Payara 服务器加载类)
  • 启用白名单机制并仅包括应从 Payara 服务器加载的包,例如org.glassfish(不包括番石榴)。所有其他包都将从应用程序加载

如果您像示例中那样将com.google 列入白名单,Payara Server 将不会在您的应用程序中搜索该包和子包,而只会尝试从 Payara Server 加载类。我认为这与您想要的相反。

有关 Payara Server 中的类加载(包括类加载委托和白名单)的更多信息,请参阅https://docs.payara.fish/community/docs/5.2020.4/documentation/payara-server/classloading.html 的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2017-02-25
    • 2020-04-08
    • 1970-01-01
    • 2020-03-30
    • 2015-01-04
    相关资源
    最近更新 更多