404 Ошибка при запуске гибридного приложения Worklight на сервере Enterprise Worklight

Я создал пример проекта с адаптером SQL и гибридным приложением Worklight. Приложение представляет собой простую форму входа в систему, которая принимает идентификатор пользователя и пароль и проверяет их на соответствие значению, хранящемуся в базе данных, с помощью адаптера SQL.

Теперь, когда я протестировал это приложение на сервере рабочего освещения по умолчанию, установленном в плагине eclispe для рабочего освещения, оно работает нормально.

Но когда я устанавливаю адаптер SQL и приложение Worklight на корпоративный сервер Worklight и тестирую его, я получаю следующую ошибку:

Ошибка сети: 404 не найдено — http://[localhost:9080]/apps/services/api/SampleHybrid/common/query

Приведенную выше ошибку я получил через Firebug.

SampleHybrid — это имя гибридного приложения Worklight. SampleHybridAdapter — это имя адаптера SQL.

Ответ сервера:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>CWWKT0018E: The application or context root for this request has not been found: &#047;apps&#047;services&#047;api&#047;SampleHybrid&#047;common&#047;query</p><h‌​r /><address>WebSphere Application Server at 127.0.0.1 port 9080</address></body></html>

person Anupam Yadav    schedule 30.04.2013    source источник
comment
Смотрите мой ответ ниже. Если на ваш вопрос дан ответ, отметьте его как «Отвечено».   -  person Idan Adar    schedule 14.03.2014


Ответы (1)


Вы упомянули, что перешли к запуску Worklight на сервере приложений — для этого требуется использование корневого контекста. Я не вижу корня контекста в предоставленной вами ошибке 404.

Запрос к серверу должен был выглядеть следующим образом: http://[localhost:9080]/yourContext/apps/services/api/SampleHybrid/common/query Поскольку корневой контекст (в данном случае «yourContext») отсутствует, вы получаете ошибку 404, так как приложение пытается получить доступ к несуществующему местоположению.

Корневое значение контекста задается как в application-descriptor.xml, так и в worklight.properties.

вашПроект\приложения\вашеПриложение\application-descriptor.xml

  • Измените значение свойства worklightServerRootURL, чтобы включить корневой контекст. Это должно выглядеть так http://your-host-name-here:port/yourContext

вашПроект\приложения\сервер\conf\worklight.properties

  • Установите корневой контекст в качестве значения свойства publicWorkLightContext (также обязательно раскомментируйте его)

После выполнения вышеуказанного вам необходимо повторно развернуть файл .war на сервере приложений. Файл .war можно найти в папке bin вашего проекта Worklight.

person Idan Adar    schedule 30.04.2013