繁体   English   中英

无法在 NetBeans IDE 12.6 中创建企业应用程序

[英]Unable to create Enterprise application in NetBeans IDE 12.6

当我尝试使用向导(Ant 项目)创建企业应用程序时,出现以下错误

java.lang.NullPointerException: Cannot invoke "org.netbeans.modules.j2ee.dd.api.application.Application.setDisplayName(String)" because "this.application" is null
at org.netbeans.modules.j2ee.earproject.ProjectEar.setupDDFromVirtual(ProjectEar.java:290)
at org.netbeans.modules.j2ee.earproject.ProjectEar.getApplication(ProjectEar.java:255)
at org.netbeans.modules.j2ee.earproject.ui.wizards.NewEarProjectWizardIterator.testableInstantiate(NewEarProjectWizardIterator.java:160)
at org.netbeans.modules.j2ee.earproject.ui.wizards.NewEarProjectWizardIterator.instantiate(NewEarProjectWizardIterator.java:139)
at org.openide.loaders.TemplateWizard$InstantiatingIteratorBridge.instantiate(TemplateWizard.java:1048)
at org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:602)
at org.netbeans.modules.project.ui.NewProjectWizard.handleInstantiate(NewProjectWizard.java:51)
at org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:436)
at org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:228)
at org.openide.loaders.TemplateWizardIteratorWrapper$ProgressInstantiatingIterator.instantiate(TemplateWizardIteratorWrapper.java:155)
at org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1602)
at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1546)
at org.openide.WizardDescriptor.access$2300(WizardDescriptor.java:67)
[catch] at org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2233)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

当然,向导中的所有字段都已填写。 但是,分别创建 WAR 和 EJB 时没有错误。 该错误仅在创建 EAR 时发生,即使它是空的。

利用

  • NetBeans 12.6
  • Windows 10 操作系统
  • GlassFish 服务器 6.2.1
  • Java 17

正确拼写所有路径,设置目录的读/写权限

屏幕

我可以重现您的问题,并且已经提出了NetBeans 错误报告 5953 “不可能创建新的企业应用程序(带有 Ant 的 Java)(仅在选择 JakartaEE9 时)-抛出 NPE”

错误报告未解决,但该问题仅在创建 Jakarta EE 9 企业应用程序时出现。 我只需从向导中的Java EE 版本下拉列表中选择Jakarta EE8即可成功创建 Jakarta EE 8 企业应用程序。

你有几个选项可以解决这个问题,但没有一个是好的:

  • 等待 NetBeans 解决问题。 绝对不推荐!
  • 如果您不需要 EE 9 功能,请改为使用 Ant 向导创建 Jakarta EE8 企业应用程序。
  • 使用 Ant 向导创建 Jakarta EE8 企业应用程序,然后“破解”生成的项目以使用 EE 9。
  • 使用另一个正确支持此功能的 IDE。
  • 在另一个 IDE 中创建 EE 9 Enterprise Application,然后将项目导入 NetBeans。

使用 Maven 或 Gradle 代替 Ant 作为构建工具也无济于事:

  • 在使用 Jakarta EE8 或 Jakarta EE9 时,我无法创建 Maven 企业应用程序,但我没有研究原因。
  • 使用 Gradle 时,项目向导甚至不提供“企业应用程序”作为选项。

笔记:

Need to figure out whether maybe Web Applications (in Ant, Maven, and Gradle) might not be enough in terms of Java EE support, ie, do we need Enterprise Applications and EJB-specific project types, if not, let's remove them.

它适用于 jakarta EE9,前提是您执行以下操作:

所有 pom.xml 文件中的插件版本:

maven 编译器插件 3.9.0

Maven 战争插件 3.3.2

maven 依赖插件 3.2.0

在 -ejb- 的 pom.xml 文件中将打包战改为 jar。

然后:

按以下顺序清理和构建:

顶部,ejb,web 和耳朵。

就这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM