Вопрос

Привет, я разрабатываю приложение Grails, которое должно взаимодействовать с существующим приложением Java EE (созданным с помощью EJB2).Как "устаревшее" приложение, так и новое приложение Grails будут предлагать услуги и потреблять их.

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

Поскольку приложение Java EE теперь работает под управлением JDK5, я мог бы использовать JAX-WS, я думаю, имело бы смысл использовать Metro (https://jax-ws-commons.dev.java.net/grails/) на стороне Грааля.У кого-нибудь есть опыт работы с этим?Или другие предложения?

Это было полезно?

Решение

Если оба приложения Grails и EJB работают в одной локальной сети, то нет ничего плохого в использовании RMI.Это стандартный способ общения с EJB, он является родным для Java и поддерживается в Grails.

Если вам нужно использовать веб-сервисы, то в вашем контейнере будет встроенная поддержка для предоставления доступа к EJB в качестве веб-сервисов (предполагается, что J2EE 1.4 или более поздней версии).Какой контейнер вы используете?

Если вы не можете использовать (или не доверяете) контейнеры, поддерживаемые WS, то лучше всего выбрать фреймворк, который вы можете использовать в обоих приложениях, тем самым избегая проблем с совместимостью.Metro хорошо работал для меня автономно, но я не пробовал это с Grails.

Кроме того, существуют более легкие способы обмена XML-сообщениями, чем полноценные веб-сервисы SOAP'y.Примерами являются Hessian и Burlap, плюс Spring имеет свою собственную платформу HTTP-обмена сообщениями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top