Glassfish 服务器无法启动。NullPointeException

Glassfish server does not start. NullPointeException

提问人:Oleksandr 提问时间:11/23/2017 最后编辑:moldoveanOleksandr 更新时间:11/5/2023 访问量:27570

问:

我刚刚下载了 GlassFish 5.0 存档 - 全平台,解压缩后通过命令行运行它。

asadmin 启动域

问题:

Exception in thread "main" java.lang.NullPointerException
at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.initializeServiceLocator(AbstractModulesRegistryImpl.java:152)
at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.newServiceLocator(AbstractModulesRegistryImpl.java:144)
at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:218)
at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:224)
at com.sun.enterprise.module.single.StaticModulesRegistry.createServiceLocator(StaticModulesRegistry.java:88)
at com.sun.enterprise.admin.cli.CLIContainer.getServiceLocator(CLIContainer.java:217)
at com.sun.enterprise.admin.cli.CLIContainer.getLocalCommand(CLIContainer.java:255)
at com.sun.enterprise.admin.cli.CLICommand.getCommand(CLICommand.java:231)
at com.sun.enterprise.admin.cli.AdminMain.executeCommand(AdminMain.java:371)
at com.sun.enterprise.admin.cli.AdminMain.doMain(AdminMain.java:306)
at org.glassfish.admin.cli.AsadminMain.main(AsadminMain.java:57)

我尝试在文件中设置路径 asenv.bat -> set path = C:/.../Java/bin - 没有帮助。尝试启动:asadmin start-domain domain1 - 没有帮助。

安装:jdk-9.0.1 8号也试过,没有帮助。该怎么办???

java intellij-idea nullpointerexception glassfish payara

评论

0赞 Digvijaysinh Gohil 11/23/2017
什么是 NullPointerException 的可能重复项,以及如何修复它?
32赞 Oleksandr 11/23/2017
你是认真的吗??请阅读我的描述!
0赞 Digvijaysinh Gohil 11/23/2017
我已经做到了,这就是为什么我说重复。不Possibleexact
0赞 crakama 4/2/2018
就像@Jonathan说的,GlassFish 5 与 Java 9 不兼容,就我而言,我使用的是 GlassFish 5.1,从您的系统中清除/卸载 java 9 并安装 Java 8。确保在命令行上键入 java -version 时,您得到的响应是 java 8 而不是 9
0赞 moldovean 8/26/2018
Vifier Lockla 提供了解决方案:您只需要指定要用于 Glassfih 或 Payara 的 Java 版本。我在Payara服务器遇到了同样的问题。

答:

12赞 Jonathan Coustick 11/23/2017 #1

这看起来就是这个问题 - https://github.com/eclipse-ee4j/glassfish/issues/22130

GlassFish 5 不能在 JDK9 上运行,但 GlassFish 6 可以在 JDK 11 上运行。

评论

0赞 RestInPeace 5/30/2018
该死的!真是浪费时间......浪费了 10 分钟试图弄清楚我到底做错了什么......
0赞 klog 12/18/2018
自从 javaee 被移到 eclipse 保护伞下以来,这个链接已经死了。这是新链接。github.com/eclipse-ee4j/glassfish/issues/22130
2赞 DPM 11/23/2019
截至目前,在 5.1 中,仍然无法开箱即用(同样的例外)
31赞 Vifier Lockla 7/28/2018 #2

好吧,Glassfish 5.1 暂时不存在。继续使用 Glassfish 5.0 并采用以下解决方案:

只需在位于此处的文件中设置变量即可。AS_JAVAasenv.batC:\DEVENV\glassfish5\glassfish\config

要编辑的文件:添加最后一行screenshot of code

重新启动服务器...。享受:screenshot of relaunch command to start your server

评论

0赞 Giorgi Tsiklauri 9/9/2019
这奏效了;但是你如何到达那里呢?提示是什么?可悲的是,这样一个受欢迎的服务器需要被黑客入侵才能启动。
0赞 brat 9/17/2019
@Vifier 洛克拉 这应该与用jdk1.8.0_221替换jdk1.8.0_172一起使用吗?我试过了,但没有为我工作。甚至尝试在asenv.config中输入相同的内容,但没有之前的设置。
2赞 Harinath 5/28/2020
对于 MacOS,请更新 asenv.conf 文件 => AS_JAVA=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
9赞 Symeon Mattes 11/14/2018 #3

对我来说,洛克拉@Vifier所做的工作不起作用。我不得不在 linux mint 机器中更改 path/glassfish5/glassfish/config/asenv.conf 文件。在文件的底部是 jdk 1.8 的路径,即

AS_JAVA="/usr/lib/jvm/jdk1.8.0_191"
2赞 Mohd Zamri Bin Mat Jusoh 9/12/2019 #4

编辑 asenv.bat put set AS_JAVA=/usr/lib/jvm/java-8-oracle 和 asenv.conf AS_JAVA=“/usr/lib/jvm/java-8-oracle”

它有效

3赞 Peddi 9/25/2019 #5

GlassFish 5.1 也不适用于 Java 9 或更高版本。

Glassfish 5.1 还需要 Java 8 和 asenv.conf/bat 文件中的 AS_JAVA hack。

1赞 Mewoabi Joe 3/3/2021 #6

当您从 Internet 下载 glassfish zip 文件并解压缩它时。 阅读自述文件是一种很好的做法。 就我而言,在自述文件中的“先决条件”标题下,它指定了:GlassFish 5.0 需要 Oracle JDK 8 Update 144。 我根据需要下载并安装了 JDK 8 更新 144。它立即起作用了。我最初使用的是JDK 14.0.2,它显示@Aleksandr发布的错误。

0赞 Raj Alva 12/5/2021 #7

我犯了与 OP 相同的错误,因为发行说明在发行说明中的“必需的 JDK 版本”标题下特别指出“GlassFish Server Open Source Edition Release 5.0 requires Oracle JDK 8 Update 144 or later”。

但是,您可以做的是下拉每个版本,查看 glassfish 5 将兼容的最新 jdk 版本,或者只需从 https://www.oracle.com/in/java/technologies/javase/javase8-archive-downloads.html 下载 Java SE 开发工具包 8。

您还必须在 asenv.bat 中添加 java 变量,正如 Vifier Lockla 所评论的那样。感谢 Vifier 的建议。

0赞 evelyn naekie muza 3/30/2022 #8

对我来说,我切换到了 glassfish 所在的目录

cd /选择

然后

sudo glassfish5/bin/asadmin 启动域

我确信这有效

0赞 Nice Books 11/5/2023 #9

除了@Mohd Zamri Bin Mat Jusoh的回答, 我更新了javapath的符号链接,如 https://sjgpsoft.blogspot.com/2018/06/updating-oracle-javapath-symlinks-on.html

当 glassfish6 位于用户路径上,而 glassfish5 位于系统路径中时,会出现此错误。