3

我正在从 payara micro UberJar 运行我的应用程序,并希望增加分配给应用程序的内存。在创建 uberJar 时如何做到这一点?

4

2 回答 2

4

有几种方法可以做到这一点。我要提到的第一种方式是首选方式:

1.使用asadmin命令

最新版本的 Payara Micro 引入了一个名为的选项--postbootcommandfile,允许您asadmin针对 Payara Micro 运行命令。您的文件应包含以下内容:

delete-jvm-options -Xmx=512m
create-jvm-options -Xmx=1g
create-jvm-options -Xms=1g

您需要确保在应用新选项之前删除现有选项。

然后,您可以使用与此类似的文件:

java -jar payara-micro.jar --postbootcommandfile myCommands.txt --deploy myApp.war --outputuberjar myPayaraMicroApp.jar

您的设置现在应该保留在生成的 Uber JAR 中。

2. 提供自定义 domain.xml

替代方法是修改您自己的 domain.xml 并用您自己的覆盖内置的 domain.xml。

您可以使用该--rootdir选项让 Payara Micro 将其配置输出到目录,以便您可以在那里进行更改。此博客概述了此过程:http:
//blog.payara.fish/working-with-external-configuration-files-in-payara-micro

如果您手头已有自定义 domain.xml,则可以使用该--domainconfig属性来提供它,如下所示:

java -jar payara-micro.jar --domainconfig myCustomDomain.xml --deploy myApp.war --outputuberjar myPayaraMicroApp.jar

遵循这些方法之一后,您可以简单地启动生成的 JAR,所有设置和配置都将被应用:

java -jar myPayaraMicroApp.jar
于 2017-04-26T09:58:07.223 回答
1

Payara Micro uber JAR 是一个普通的 JAR,它不会像 Payara Server 那样启动一个新的 JVM。因此,由于 JVM 已经启动,因此无法从 JAR 中修改 JVM 内存设置。尽管可以将 JVM 设置添加到 Payara Micro 配置中,但它们会被忽略且不会应用。这些配置值仅在 Payara Server 中使用。

使用 Payara Micro uber JAR,您需要在命令行中指定 JVM 选项,如下所示:

java -Xmx=1g -Xms=1g -jar myPayaraMicroApp.jar

如果您需要在 uber JAR 中指定 JVM 参数,则需要使用像capsule.io这样的解决方案将 JAR 包装到一个启动器 JAR 中,该 JAR 将为 Payara Micro 生成一个单独的 JVM 并将参数传递给它。

于 2017-05-03T09:19:27.967 回答