自从我将 Worklight 升级到版本 6.1(eclipse 插件版本:6.1.0.00-20131219-1900)后,我创建的 servlet MyServlet(并且在以前的版本中运行良好)不再工作。
“它不起作用”是指当 Worklight 服务器启动时 init () 不再执行。这是我的jee符号:
@ WebServlet (name = "MyServlet", displayName = "MyServlet", urlPatterns = {"/ MyServlet / *"}, loadOnStartup = 1) public class MyServlet extends HttpServlet {
我认为新的 Worklight 无法识别该符号,因此有必要调整 web.xml。问题是web.xml位于war里面,每次都被覆盖;有什么建议吗?
在 server.xml 我有:
<feature>servlet-3.0</feature>
Worklight 6.1 中未加载 servlet 的问题是由于 Servlet 部署描述符的 XML Schema 的默认版本造成的。
归属于 worklight 的版本应设置为 3.0(而不是 2.4)以强制执行 3.0 行为(允许使用 jee 表示法)。在 Worklight 6.0 中为 3.0,现在在 Worklight 6.1 中设置为 2.4。我已经手动替换了我的战争项目中 web.xml 中的 webapp 描述符元素:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
现在它可以工作了(我的 Servlet 已加载!)。
默认情况下是否可以在 Worklight 6.1 中恢复 3.0 版?