Web Services и Ejb

Тема в разделе "Java", создана пользователем poltora, 21 авг 2007.

Статус темы:
Закрыта.
  1. poltora

    poltora Гость

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

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

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

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


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

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

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

    poltora Гость

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

    или необходимый функционал уже присутствует?
    по адресу
    http://localhost:8080/jbossws/services
    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...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей