当我尝试在glassfish上运行我的应用程序时,我在控制台中收到以下错误。
SEVERE: DPL8015: Invalid Deployment Descriptors in Deployment descriptor file META-INF/application.xml in archive
" The content of element type "application" is incomplete, it must match "(icon?,display-name,description?,module+,security-role*)".
我的“application.xml”
中有以下代码<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>MTCpreprint</display-name>
</application>
如何解决此问题?
答案 0 :(得分:3)
application.xml
的布局错误:它必须如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="6" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd">
<application-name>MTCpreprint</application-name>
</application>
如果文件是在每次构建时自动生成的,那么您必须对此进行调整。如果您使用maven-ear-plugin
,则可以禁用application.xml
的自动生成功能:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.8</version>
<configuration>
<generateApplicationXml>false</generateApplicationXml>
</configuration>
</plugin>
答案 1 :(得分:2)
基于错误消息的这一部分:
it must match "(icon?,display-name,description?,module+,security-role*)"
我建议<module>...</module>
元素是XML的必需部分。必须至少存在一个这样的元素。
?
- 表示可选+
- 表示一个或多个*
- 表示零或更多