当我尝试使用向导(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时才会发生错误,即使EAR为空。
使用
正确列出所有路径,设置对目录的读/写权限
发布于 2022-01-18 17:37:01
我可以重现您的问题,NetBeans Bug报告5953“创建一个新的企业应用程序(Java )不可能(仅在选择JakartaEE9时)-抛出的NPEs”已经被引发。
bug报告没有得到解决,但只有在创建Jakarta 9企业应用程序时才会出现此问题。我成功地创建了一个Jakarta 8企业级应用程序,只需从向导中的EE8 Java版本删除列表中选择雅加达。
您可以使用几个选项来解决这个问题,但是没有一个是好的:
使用Maven或Gradle代替Ant作为构建工具也没有帮助:
备注:
需要弄清楚Web应用程序(在Ant、Maven和Gradle中)在Java支持方面是否还不够,也就是说,我们是否需要企业应用程序和特定于EJB的项目类型,如果不需要,让我们删除它们。
发布于 2022-02-04 09:31:33
它适用于雅加达EE9,只要您执行以下操作:
所有pom.xml文件中的插件版本:
maven-编译器-插件3.9.0
maven-war-plugin 3.3.2
maven-依赖项-插件3.2.0
在-ejb的pom.xml文件中,将打包war更改为jar。
然后:
按以下顺序进行清洁和建造:
顶部,ejb,web和ear。
就这样。
https://stackoverflow.com/questions/70758280
复制相似问题