| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Ceссия в WebService |
| Автор: sergioK 16.10.2010, 01:56 | ||||
вот код
что нужно чтобы MessageContext coздавался и не двал Эксершион ? |
| Автор: kkorsakoff 16.10.2010, 13:07 |
| Веб-методы нельзя взять так просто и вызвать самому. Откуда он возьмет реквест и сессию, как вы сами то считаете? А что нужно. Написать клиента для своего веб-сервиса и с помощью него вызывать метод. |
| Автор: sergioK 17.10.2010, 14:47 | ||
я считаю в столбик результат такой же session=null |
| Автор: afon 18.10.2010, 01:15 |
| session = null и Exception разные вещи однако ... Кроме того уверены ли вы, что эти вебсервисы имплементят именно сервлет-реквест? Я допустим не уверен.. |
| Автор: sergioK 18.10.2010, 10:32 | ||||
я тоже на 100% не уверен тогда при каком сценарии работает такой код
и еще пакет javax.servlet в проекте билд ин не присутствует подключить не проблема но само по себе не очень понятно |
| Автор: kkorsakoff 18.10.2010, 10:47 | ||
| В принципе понятно. Надо запускать веб-сервисы по нормальному, в контейнере. Встроенная в JVM имплементация знать не знает про HttpSession и прочее. Она выставляет свои аналоги реквеста под своими внутренними именами. Например
|
| Автор: sergioK 18.10.2010, 22:38 | ||||||
что значит по нормальному ? какая разница кто вызывает WebService? написал клиента
mc.get(MessageContext.SERVLET_REQUEST) по прежнему выдает null |
| Автор: kkorsakoff 20.10.2010, 22:31 |
| Я имел ввиду, не вызывать, а деплоить лучше на сервере приложений, а не с помощью Endpoint.publish(); Имплементация Endpoint не создает никаких javax.servlet.http.HttpServletRequest, а работает со своими внутренними аналогами. И выставляет их под своими внутренними именами. Что в принципе логично, иначе пришлось бы с каждой JVM тянуть servlet api. Хотя они конечно могли бы описать данное поведение в спеке. Если хотите использовать всю мощь веб-сервисов, деплойте их на серверах приложений |