1

当我尝试使用向导(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
  • 视窗 10 操作系统
  • GlassFish 服务器 6.2.1
  • 爪哇 17

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

屏幕

4

2 回答 2

0

我可以重现您的问题,并且已经提出了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 时,项目向导甚至不提供“企业应用程序”作为选项。

笔记:

需要弄清楚 Web 应用程序(在 Ant、Maven 和 Gradle 中)在 Java EE 支持方面是否不够,即我们是否需要企业应用程序和特定于 EJB 的项目类型,如果不需要,让我们删除它们。

于 2022-01-18T17:37:01.750 回答
0

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

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

maven 编译器插件 3.9.0

Maven 战争插件 3.3.2

maven 依赖插件 3.2.0

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

然后:

按以下顺序清理和构建:

顶部,ejb,网络和耳朵。

就这样。

于 2022-02-04T09:31:33.030 回答