首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Worklight 6.1不加载我的servlet

Worklight 6.1不加载我的servlet
EN

Stack Overflow用户
提问于 2014-01-16 09:06:07
回答 1查看 252关注 0票数 0

自从我将Worklight升级到Version6.1 (eclipse版本: 6.1.0.00-20131219-1900)之后,我创建的servlet MyServlet就不再起作用了。

我的意思是,当Worklight服务器启动时,init ()不再被执行。这是我的jee符号:

代码语言:javascript
复制
   @ WebServlet (name = "MyServlet", displayName = "MyServlet", urlPatterns = {"/ MyServlet / *"}, loadOnStartup = 1) public class MyServlet extends HttpServlet {

我认为新的工作灯没有识别这个符号,并且有必要调整web.xml。问题是web.xml位于战争内部,每次都会被覆盖;有什么建议吗?

在server.xml中,我有:

代码语言:javascript
复制
            <feature>servlet-3.0</feature>

Worklight 6.1中的无负载servlet问题是由于Servlet部署描述符的XML的默认版本造成的。

归责于worklight的版本应该设置为3.0 (而不是2.4),以强制执行3.0行为(允许使用jee标记)。在Worklight 6.0中,它是3.0,现在在Worklight 6.1中,它被设置为2.4。我在war项目中手动替换了web.xml中的webapp描述符元素:

代码语言:javascript
复制
<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版吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 09:11:29

要回答回到v3的问题,这是不可能的。虽然这是前一个版本中的版本,但由于兼容性原因,决定返回到版本2.4。不支持v3。

实际上,.war文件的内容是在Worklight Studio中的每个构建中重新生成的。这适用于所有以前的Worklight版本,而不是6.1.0中的新版本。这是预期的行为。

在开发过程中,不建议以任何方式编辑web.xml文件(因为它将被重写)。因此,它也不推荐用于生产,因为如果您在项目中做了任何更改,然后重新部署了.war文件,那么它将不包含以前的构建后更改。

参见这个问题中的注释:Worklight Init Servlet

根据这些评论,您可以尝试的是:

另一种选择可能是将一个单独的servlet部署到您的服务器上(而不是WL .war的一部分),并使用HTTP适配器与其通信。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21157442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档