有这样一个要求:
将以下 serverlet 插入到 web.xml(如果还没有的话):
<servlet>
<description>My Servlet</description>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.tom.servlet.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/servlet/myServlet/*</url-pattern>
</servlet-mapping>
我在我的 ant 脚本中使用XMLTask
尝试了以下脚本,但失败了:
<xmltask source="${env.My_HOME}/WEB-INF/web.xml" dest="${env.My_HOME}/WEB-INF/web.xml" report="false">
<copy property="servletfound" path="/web-app/servlet[servlet-name='myServlet']/text()" />
<insert unless="servletfound" path="/web-app/servlet[last()]" position="after">
<![CDATA[
<servlet>
<description>My Servlet</description>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.tom.servlet.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/servlet/myServlet/*</url-pattern>
</servlet-mapping>
]]>
</insert>
</xmltask>
我的问题是如何检测 servlet 是否存在,因为我应该避免插入两次。听起来我的 xpath 语法不正确。请帮忙。