eclipse中的jboss-web.xml验证错误

时间:2014-12-01 17:21:56

标签: java xml eclipse jboss

这是我的jboss文件的内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
        "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
<jboss-web>
  <context-root>/</context-root>
  <resource-ref>
    <res-ref-name>value</res-ref-name>
    <jndi-name>value</jndi-name>
  </resource-ref>
  <resource-ref>
    <res-ref-name>value</res-ref-name>
    <jndi-name>value</jndi-name>
  </resource-ref>
  <resource-ref>
    <res-ref-name>value</res-ref-name>
    <jndi-name>value</jndi-name>
  </resource-ref>
  <servlet>
    <servlet-name>ActionServlet</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>5</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>5</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ActionServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</jboss-web>

我在eclipse中收到以下错误

The content of element type "jboss-web" must match "(class-loading?,security-domain?,context-root?,virtual-host*,use-session-cookies?,replication-config?,resource-env-ref*,resource-ref*,security-role*,ejb-ref*,ejb-local-ref*,message-destination-ref*,message-destination*,webservice-description*,service-ref*,depends*,servlet*,authenticators*)".
jboss-web.xml   line 4  XML Problem

请帮忙。

2 个答案:

答案 0 :(得分:1)

看起来<servlet-mapping>不属于那里,因为它不是<jboss-web>中允许的子项的一部分,如DTD中所声明的那样。

据我所知,<servlet-mapping>应该在web.xml中。

答案 1 :(得分:0)

Lolo是正确的,<servlet-mapping/>标记应该在web.xml中。 web.xml描述符定义独立于部署环境的Web应用程序,而jboss-web.xml描述符用于将这些配置元素映射到其实际部署环境。 这就是为什么它包含那些<resource-ref/>元素来将web.xml中定义的资源映射到特定的jndi名称。

除了移动<servlet-mapping/>元素外,您还应将<servlet/>元素移至web.xml

如果您仍有问题,可以让eclipse为您验证web.xml。如果配置正确,您甚至可以在编辑xml文件时使用自动完成功能,请参阅http://eclipse.org/webtools/community/tutorials/XMLValidation/XMLValidationTutorial.html