0

Поскольку я обновил Worklight до версии 6.1 (версия плагина eclipse: 6.1.0.00-20131219-1900), сервлет MyServlet, который я создал (и который отлично работал с предыдущей версией), больше не работает ,Worklight 6.1 не загружает мой сервлет

Под «не работает» Я имею в виду, что при запуске сервера Worklight init() больше не выполняется. Это мое Jee обозначение:

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

Я думаю, что запись не распознается новой Worklight и что нужно настроить web.xml. Проблема в том, что web.xml находится внутри войны и перезаписывается каждый раз; любое предложение об этом?

В server.xml у меня есть:

  <feature>servlet-3.0</feature> 

Проблема сервлета без нагрузки в Worklight 6.1 связано с версией по умолчанию для XML-схемы для дескриптора развертывания сервлетов.

Версия, относящаяся к рабочему свету, должна быть установлена ​​в 3.0 (не 2.4), чтобы обеспечить соблюдение поведения 3.0 (позволяя использовать jee-нотации). В Worklight 6.0 это было 3.0, теперь в Worklight 6.1 установлено значение 2.4. Я заменил вручную элемент WebApp дескриптора в web.xml внутри моей войны проекта с:

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

и теперь он работает (мой сервлет загружается!).

Возможно ли восстановить версию 3.0 в Worklight 6.1 по умолчанию?

+0

См. мой отредактированный ответ о вопросе v3. –

ответ

1

Чтобы ответить на вопрос о возврате в v3 - это невозможно. Хотя это была версия в предыдущем выпуске, было решено вернуться к версии 2.4 из-за соображений совместимости. v3 не поддерживается.


Действительно, содержимое файла .war повторно создается при каждой сборке в Worklight Studio. Это справедливо для всех предыдущих версий Worklight, а не для 6.1.0. Это ожидаемое поведение.

Не рекомендуется редактировать файл web.xml во время разработки (поскольку он будет переписан). Как следствие, это также не рекомендуется для производства, потому что если вы внесете какие-либо изменения в свой проект и затем повторно развернете файл .war, он не будет содержать ваши предыдущие изменения после сборки.

Смотрите комментарии в этом вопросе: Worklight Init Servlet

Что вы можете попробовать, основываясь на комментариях, является:

Другим вариантом может быть, чтобы иметь отдельный сервлет развернут на сервер (не часть WL .war) и обмениваться данными с ним, используя HTTP-адаптер

+0

Невозможно загрузить сервлет внутри .war, как и для предыдущей версии подсветки? – Cisco

+0

Вы пытались отредактировать файл web.xml внутри .war-файла после создания проекта?В любом случае это не то, что вам следует делать. Если вы решите сделать это, помните, что это то, что не поддерживается Worklight, и поэтому оно также позволяет * you * заставить его работать. Но помните, что если вы перестроете свой проект, ваши изменения исчезнут. –

Смежные вопросы