Web Services и Ejb

  • Автор темы poltora
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

poltora

#1
есть JBoss - как апп.сервер.
под ним крутятся бины(EJB) - entity и session.
вся логика храниться в корпоративных бинах (entity bean), связь с внешним миром - через сессионные компоненты (session bean).
есть еще слой - сервлет, который подсоединяется к session bean и вызывает некоторые методы.
все работает.

задача следующая - перевести имеющийся функционал на новые рельсы - иметь возможность работать с системой через вебсервисы.

и вот тут возникают вопросы.
использовать ли мне сессионный бин в качестве вебсервиса (как исходник для генерации WSDL, стабов и проч..)?
или прийдется создавать слой - сервлет, который будет вебсервисом, который просто будет передавать управление сессионному бину?

может ли модуль ejb использоваться в качестве вебсервиса? или для этих целей используется только веб-модуль (.war)?


в IntelliJ IDEA есть плагин работы с вебсервисами - он работает с Axis.
По идее это должно быть легко, всякие генераторы wsdl, стабов и проч.

но на деле, существующие менюшки не дают деплоить класс в качестве веб сервиса для модулей, отличным от веб.
поэтому я и решил, что веб сервисом может быть создан только на основе вебмодуля.

О чем я имею неверное представление?
 
P

poltora

#2
правильно ли я понимаю, что JBoss'у (версии jboss-4.0.5.GA) для работы с веб службами необходим фреймворк JBossWS, который нужно ставить дополнительно?

или необходимый функционал уже присутствует?
по адресу
Для просмотра контента необходимо: Войти или зарегистрироваться

JBoss отзывается и говорит:

Registered Service Endpoints
ServiceEndpointID ServiceEndpointAddress

правда это и все.

Видимо нужно установить дополнительно, потому что плагин для IntelliJ IDEA ругается при указании пути к JBoss, т.к. требует установленного JBossWS.




использование тулзы (плагина для IDEA - http://plugins.intellij.net/plugin/?id=133 ) для TomCat - все прекрасно сработало - и генерация WSDL из класса, и последующие генерации из wsdl "серверных" и "клиентских" кодов.
(Кстати, как их потом использовать?)

те же действия для JBoss - ошибка при попытке деплоя класса (сервлет) в качестве вебсервиса:
Nonvalid context or AxisServlet is not present (web service support not enabled for module)

в web.xml AxisServlet прописан (запустил поддержку веб сервисов - выбрал веб модуль, тип Server, Web Service Platform - Apache Axis)
появились:
- сервлеты - AxisServlet, AdminServlet, SOAPMonitorService
- сервлетмаппинги -
/servlet/AdminServlet - AdminServlet
/servlet/AxisServlet, /services/* - AxisServlet


что это за ошибка?
как ее решить?
толи ставить JBossWS, к существующему JBoss 4.0.5 GA (или в этой версии есть JBossWS?)
толи ставить JBoss 4.2 (со 100% строенным JBossWS), плюс еще обновлять JRE...

Для добавления библиотек Axis в classpath и деплоя, я запускаю поддержку веб сервисов - "enable web service support"

В этом диалоге предлагается ввыбрать тип - server или client.

Во втором случае имеется возможность выбрать не вебмодули.
Хелп подсказывает, что в этом случае необязательна генерация клиентского кода.

В режиме server сервлет Axis добавляется в web.xml

Что-то я совсем запутался...
Кто смог реально запустить веб сервисы под JBoss ?

я уже пришел к мысли, что прийдется реализовывать слой сервлета, который будет дергать сессионный бин.
Уже согласился на это :)

У меня получается создать примитвный веб сервис для Tomcat - я могу увидеть список сервисов, их wdsl.

И не могу для JBoss - хотя выполняю те же действия.
Ведь JBoss использует Tomcat в качестве сервлет-контейнера...

Может дело в том, что я использую в качестве платформы вебсервисов Axis? Может быть для JBoss нужно использовать JBossWS?

Хотя натыкался на мнение, что JBoss (а точнее JBossWS) так же использует Axis...
 
Статус
Закрыто для дальнейших ответов.