当前位置: 首页 > 面试题库 >

在web.xml中包含文件

缪英锐
2023-03-14
问题内容

我正在为JEE5
Web服务编写单元测试。Web服务的行为取决于web.xml文件中设置的属性。因此,我想将我web.xml分成一个恒定的部分和一个在两次测试之间更改的部分。

为了查看是否确实可行,我尝试查看是否可以拆分该welcome-file- list属性。根据一些说明,我发现了以下几点:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd" [
  <!ENTITY fragment SYSTEM "fragment.xml">
]>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>NewWebService</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>NewWebService</servlet-name>
        <url-pattern>/NewWebService</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
  &fragment;
</web-app>

fragment.xml

<?xml version="1.0" encoding="UTF-8"?>
<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

但是,我在web.xml文件上收到验证错误:

必须为元素类型“ web-app”声明属性“ version”。[7]
必须为元素类型“ web-app”声明属性“ xmlns”。[7]
必须为元素类型“ web-app”声明属性“ xmlns:xsi”。[7]
必须为元素类型“ web-app”声明属性“ xsi:schemaLocation”。[7]

我感到在同一文件中使用Web应用程序v2.3 DTD和Web应用程序v2.5架构是问题,但是我不知道如何解决该问题。

(将web.xml文件拆分为较小块的任何其他方法也将受到欢迎!)

更新资料

如果我这样删除DTD参考…

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app[
  <!ENTITY fragment SYSTEM "fragment.xml">
]>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
etc, etc, etc.

…看起来好像验证过程忽略了该web-app_2_5.xsd文件:

元素类型“ web-app”必须声明。[5]
必须声明元素类型“侦听器”。[6]
必须声明元素类型“侦听器类”。[7]
必须声明元素类型“ servlet”。[9]
等等,等等。


问题答案:

最后,我在Web服务中添加了一个钩子,用于检查eproperties文件的存在。如果找到一个,就知道它处于测试模式,而不是使用中指定的值web.xml,而是从属性文件中提取它们。不是很优雅,但至少可以正常工作。方法WEB- INF期间,JUnit测试会将属性文件复制到目录中@BeforeClass。考虑到这种方法的成功,我一直想知道是否web.xml是存储Web应用程序设置的最佳场所…



 类似资料:
  • 如果 Web 应用不包含任何 servlet、过滤器、或监听器组件或使用注解声明相同的,那么可以不需要 web.xml 文件。换句话说,只包含静态文件或 JSP 页面的应用程序并不需要一个 web.xml 的存在。

  • 我有一个结构如下的maven项目: 我希望maven jar插件在构建jar文件时打包到数据库文件夹中。我尝试过包含这里概述的内容:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database或../../../database

  • 问题内容: 我有一个包含几个JavaScript函数的JavaScript文件(extension ,不是)。 我想从一个JavaScript函数中仅包含几个PHP函数的PHP文件中调用其中一个PHP函数。 那可能吗? 我需要在文件中“包含” 包含PHP函数的文件吗? 我该怎么办? 例如,假设我有一个名为myLib.php的文件,其中包含一个带有两个参数(和)的函数。然后,我有一个包含名为的函数的

  • 我还使用tkinter用Python3.7编写了一个程序。因为我使用的是外部图片,所以当我将所有内容编译成一个exe时,我需要包含它们。我尝试过执行,但仍然出现以下错误: _特金特。Tcl错误:无法打开“files/bg.png”:没有这样的文件或目录 代码如下: 我做错了什么?我也尝试过添加二进制文件,将该文件添加到我的spec文件中。我真的搞不懂!

  • 问题内容: 我记得前一段时间使用eclipse或netbeans时,我能够轻松地将源文件包含在jar文件中。我已移至intellij 10社区版,发现自己需要做同样的事情。有什么提示吗? 问题答案: 我想到了… 单击“输出布局”选项卡中的“ +”按钮->包含目录内容->选择您的src目录。做到了

  • SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。ASP 只使用这一机制的 #include 指令。要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称。 被包