Glassfish 服务器无法启动。空指针异常

Posted

技术标签:

【中文标题】Glassfish 服务器无法启动。空指针异常【英文标题】:Glassfish server does not start. NullPointeException 【发布时间】:2018-05-07 13:46:55 【问题描述】:

我刚刚下载了 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号也试过了,没用。怎么办???

【问题讨论】:

What is a NullPointerException, and how do I fix it?的可能重复 你是认真的吗?请阅读我的描述! 我已经这样做了,这就是我说Possible重复的原因。不是exact 就像@Jonathan 说的,GlassFish 5 与 Java 9 不兼容,就我而言,我使用的是 GlassFish 5.1,从系统中清除/卸载 java 9 并安装 Java 8。确保在键入 java -version 在命令行你得到的响应是 java 8 而不是 9 Vifier Lockla 提供了解决方案:您只需指定要用于 Glassfih 或 Payara 的 Java 版本。 Payara 服务器也有同样的问题。 【参考方案1】:

好的,Glassfish 5.1 暂时不存在。使用此解决方案继续使用 Glassfish 5.0:

只需在位于此处的asenv.bat 文件中设置AS_JAVA 变量:C:\DEVENV\glassfish5\glassfish\config

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

重新启动您的服务器....享受:

【讨论】:

那行得通;但是你怎么到那里?提示是什么?很遗憾,这么受欢迎的服务器需要被黑才能启动。 @Vifier Lockla 是否可以将 jdk1.8.0_172 替换为 jdk1.8.0_221 ?我试过但没有为我工作。甚至尝试在 asenv.config 中输入相同的内容,但之前没有设置。 对于 MacOS,更新 asenv.conf 文件 => AS_JAVA=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home【参考方案2】:

这似乎是这个问题 - https://github.com/eclipse-ee4j/glassfish/issues/22130。

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

【讨论】:

该死!真是浪费时间……浪费了 10 分钟试图弄清楚我到底做错了什么…… 自从 javaee 被移到 eclipse 保护伞下后,这个链接就失效了。这是新的链接。 github.com/eclipse-ee4j/glassfish/issues/22130 截至目前,使用 5.1,仍然无法开箱即用(同样的例外)【参考方案3】:

对我来说,@Vifier Lockla 所做的并不奏效。我不得不更改 linux mint 机器中的 path/glassfish5/glassfish/config/asenv.conf 文件。文件底部是jdk 1.8的路径,即

AS_JAVA="/usr/lib/jvm/jdk1.8.0_191"

【讨论】:

【参考方案4】:

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

glassfish 5.1 还需要 java 8 以及 asenv.conf/bat 文件中的 AS_JAVA hack。

【讨论】:

【参考方案5】:

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

有效

【讨论】:

【参考方案6】:

当您从 Internet 下载 glassfish zip 文件并将其解压缩时。 阅读自述文件是一个好习惯。 在我的情况下,在自述文件中的“先决条件”标题下,它指定:GlassFish 5.0 需要 Oracle JDK 8 Update 144。 我按要求下载并安装了 JDK 8 更新 144。它立即起作用。我最初有 JDK 14.0.2,它显示@Aleksandr 发布的错误。

【讨论】:

【参考方案7】:

我犯了与 OP 相同的错误,因为发行说明在发行说明中的​​标题 Required JDK Versions 下特别指出“GlassFish Server Open Source Edition Release 5.0 需要 Oracle JDK 8 Update 144 或更高版本” .

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

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

【讨论】:

以上是关于Glassfish 服务器无法启动。空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

气氛无法在 Glassfish 3.1.2 上获得会话

Hibernate/JPA @OneToOne 返回空指针异常

使用 Spring MVC 运行 Spring Boot 时引发空指针异常

使用服务的Spring安全性不会自动赋予依赖关系并提供空指针异常

启动 IntentService 的空指针异常

带有空指针的 2D 指针数组 c++