为了获得远程调用的常量JNDI名称,我想从EAR包名中删除该版本。我用标签< finalName>在maven-ear-plugin中。 它工作正常但是,当我使用Netbeans(版本7.1.2)部署(运行)包时,它引发了一个异常: java.lang.IllegalArgumentException:没有用于部署的存档
似乎Netbeans总是希望得到像 $ {project.artifactId} - $ {project.version} .ear 这样的名字。怎么可能改变这种行为?
编辑:只有在远程(Glassfish)服务器上部署时才会发生。
非常感谢! JM
答案 0 :(得分:2)
我正在使用与你的结构相同的Netbeans ear项目,但是当我从Netbeans运行或调试应用程序时,它会在${project.artifactId}-${project.version}.ear
文件夹下部署target
, Netbeans没有使用maven-ear-plugin,无论如何你可以手动部署它,我已经成功完成了。这是已知的Netbeans行为,例如,您可以参考此link。
答案 1 :(得分:0)
要获得EJB的一致名称,首先必须为应用程序获取一致的名称。可以在Application Descriptor File application.xml中使用标记<application-name>YourGreatApp</application-name>
设置应用程序的名称。
如果未设置应用程序名称,则EAR文件名将用作应用程序名称。使用maven,您应该始终设置应用程序名称。
application.xml文件位于EAR中的META-INF /下。