【问题标题】:jboss-web.xml validation error in eclipseeclipse中的jboss-web.xml验证错误
【发布时间】:2015-01-06 17:49:20
【问题描述】:

这是我的 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

请帮忙。

【问题讨论】:

  • 什么是“其他元素”?这可能就是错误所在。 Eclipse 正在根据上面 url 中引用的 DTD 验证 xml 文件。错误消息是说&lt;jboss-web&gt; 的直接子代之一不是消息中列出的那些
  • 感谢您的回复我已经更新了问题。如果需要其他任何内容,请告诉我
  • 你使用JBoss 4 吗?你在你的DOCTYPE 中添加了jboss-web_4_0.dtd。你是 JBoss AS 还是 EAP?
  • @OO7 是的,我们仍在使用 jboss 4.2

标签: java xml eclipse jboss


【解决方案1】:

看起来&lt;servlet-mapping&gt; 不属于那里,因为它不属于&lt;jboss-web&gt; 允许的子项,正如DTD 中所声明的那样。

据我所知,&lt;servlet-mapping&gt; 应该在 web.xml 中。

【讨论】:

  • 即使我已将 servlet-mapping 移动到 web.xml 我仍然可以看到这些错误。
【解决方案2】:

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

除了移动&lt;servlet-mapping/&gt; 元素之外,您还应该将&lt;servlet/&gt; 元素移动到web.xml

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

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多