web services и ejb
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



web services и ejb Expand / Collapse
Автор
Сообщение
20.08.2007 20:40
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
есть JBoss - как апп.сервер.
под ним крутятся бины(EJB) - entity и session.
вся логика храниться в корпоративных бинах (entity bean), связь с внешним миром - через сессионные компоненты (session bean).
есть еще слой - сервлет, который подсоединяется к session bean и вызывает некоторые методы.
все работает.

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

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

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

Сообщ. #915446
21.08.2007 13:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 03.04.2008 13:12
Сообщ.: 1 297, Visits: 12 498
Для WS по любому придется создавать war, кроме того выбрать ту или иную реализацию вэб-сервисов для Java, например Axis, сервлет по любому будет нужен, но обычно это сервлет реализации вэб-сервисов. Писать собственный сервлет не имеет смысла.

Если дизайн позволяет, то в принципе интерфейс session-bean'а может быть использван для генерации WSDL, стабов и прочая. Если нет, то можно сделать более упрощенный интерфес и на его основе генерировать WSDL.

С уважением,
Владимир
Сообщ. #915464
22.08.2007 18:41
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
в IntelliJ IDEA есть плагин работы с вебсервисами - он работает с Axis.
По идее это должно быть легко, всякие генераторы wsdl, стабов и проч.

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

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

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

или необходимый функционал уже присутствует?
по адресу
http://localhost:8080/jbossws/services
JBoss отзывается и говорит:

Registered Service Endpoints
ServiceEndpointID ServiceEndpointAddress   

но это и все.

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

Сообщ. #915508
23.08.2007 16:43
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
использование тулзы (плагина для 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...
Сообщ. #915541
28.08.2007 18:26
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
Для добавления библиотек Axis в classpath и деплоя, я запускаю поддержку веб сервисов - "enable web service support"

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

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

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

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

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

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

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

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

Хотя натыкался на мнение, что JBoss (а точнее JBossWS) так же использует Axis...
Сообщ. #915639
29.08.2007 11:38
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 03.04.2008 13:12
Сообщ.: 1 297, Visits: 12 498
> Axis добавляется в web.xml

Правильно, через Axis-servlet и будет проходить коммуникация между клиентом и бизнес-логикой на сервере.

Главное, чтобы Axis библиотека была включена в war-файл, на случай, если они не входят в стандартный набор JBoss (а они вроде бы не входят).

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

Ну я деплоил приложение с вэб-сервисами под JBoss локально, war-файл был точно таким же как и для BEA Weblogic, за исключениме дополнительных deployment descriptors для Weblogic и некоторых махинаций с конфигурацией JBoss'а для правильной регистрации имен JNDI ресурсов (DB connection, EJB).

Никаких особых проблем не было.

С уважением,
Владимир

P.S. JBossWS не пробовал, возможно с ним будет проще, даже если он и сам по себе использует Axis.
P.P.S. Единственное, что могу сказать, визардами из различных IDE для разработки WS не пользовался, war-файл собирался самостоятельно и различные конфигурации изменялись вручную, может быть так конечно и дольше возиться, но зато понимаешь, что к чему и за что отвечает и код получается красивее и проще чем сгенерированный.
Сообщ. #915642
12.10.2007 16:46
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 20.03.2008 9:23
Сообщ.: 23, Visits: 176
по адресу
http://localhost:8080/jbossws/services
JBoss отзывается и говорит:

Registered Service Endpoints
ServiceEndpointID ServiceEndpointAddress   

Я устанавливала jbossws отдельно, но судя по тому, что у Вас он отзывается, значит он уже стоит.

Вот это: Registered Service Endpoints
ServiceEndpointID ServiceEndpointAddress   

означает лишь то, что пока Вы не заделоили ни одного сервиса. Когда какойто задеплоите, напротив ServiceEndpointID ServiceEndpointAddress высветится адресс сервиса.

Кристина

Сообщ. #916181
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 2:25