2014-01-16 57 views
0

由於我將Worklight升級到了6.1版(eclipse插件版本:6.1.0.00-20131219-1900),我創建的servlet MyServlet(並且與以前的版本一起工作良好)不再有效。Worklight 6.1不加載我的servlet

「它不起作用」我的意思是,當Worklight服務器啓動時,init()不再執行。 這是我的JEE符號:

@ WebServlet (name = "MyServlet", displayName = "MyServlet", urlPatterns = {"/ MyServlet/*"}, loadOnStartup = 1) public class MyServlet extends HttpServlet { 

我覺得符號不被新的工作燈,它是需要調整的web.xml認可。 問題是web.xml位於戰爭內部並且每次都被覆蓋;有關它的任何建議?

在server.xml中我有:

  <feature>servlet-3.0</feature> 

在工作燈6.1非承載Servlet的問題是由於對Servlet的部署描述符的XML模式的默認版本。

爲了執行3.0行爲(允許使用jee符號),歸因於worklight的版本應設置爲3.0(不是2.4)。在Worklight 6.0中它是3.0,現在在Worklight 6.1中它被設置爲2.4。我換成手動在web.xml web應用程序描述符元素我戰項目中有:

<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?

+0

請參閱我編輯的有關v3問題的答案。 –

回答

1

要回答v3的問題 - 這是不可能的。雖然這是之前版本中的版本,但由於兼容性的原因,決定返回到v2.4。 v3不受支持。


實際上,Worklight Studio中的每個構建都會重新生成.war文件的內容。以前的所有Worklight版本都是如此,而不是6.1.0以前的版本。這是預期的行爲。

不建議以任何方式在開發期間編輯web.xml文件(因爲它將被覆蓋)。因此,建議不要將其用於生產,因爲如果您在項目中進行了任何更改,然後重新部署.war文件,則它將不包含之前的構建後更改。

見在這個問題上的意見:Worklight Init Servlet

什麼,你可以嘗試的基礎上,評論,方法是:

另一種選擇可能是有一個單獨的servlet部署到 服務器(不WL .war的一部分)並使用它與之通信 HTTP適配器

+0

那麼,不可能像在之前版本的worklight中那樣加載.war中的servlet? – Cisco

+0

您是否在構建項目之後嘗試編輯.war文件中的web.xml?無論哪種方式,這不是你應該做的。如果您決定這麼做,請記住,這是Worklight不支持的內容,因此它也在*您*上以使其正常工作。但請記住,如果您重新構建項目,您的更改將會消失。 –

相關問題