Веб-сервисы в Java

Что-то вроде этого?

unsigned short a __at((0x100)) = 1;

int main()
{
   asm (
       "btsts %0, #2\n"
       : "+m" (a)
   );
   return a;
}

Сборка с xc16-gcc -mcci -O1 -mcpu = 30F4011 -S m.c

_main:
        .set ___PA___,0
        btsts   _a, #2

        mov     _a,w0
        return
5
задан Bobby 29 October 2008 в 08:40
поделиться

10 ответов

Чтобы ответить на ваш вопрос, нам сначала нужно различать перечисленные вами инструменты.

JAX-WS, JAXB, JAXM, JAXR, JAX-RPC - это API, связанные с XML и веб-сервисами, в то время как Ось 1 и 2 являются реализациями нуля, одного или нескольких из этих API в зависимости от версии.

JAX-B 1 и 2 - это API привязки XML к объектам, JAX-WS - это API веб-службы на основе WSDL и SOAP и предшественник JAX-RPC, JAX-M - это более старый API обмена сообщениями XML, а JAX-R - это API абстракции для взаимодействия с реестрами, такими как UDDI и ebXML.

Со страницы Java.net JAX-RPC:

Группа экспертов JAX-RPC имеет широкое участие в отрасли, во главе с Sun Microsystems. Первоначальная спецификация (JAX-RPC 1.0) была JSR-101 и была выпущена в июне 2002 года. В октябре 2003 года последовала техническая версия, обеспечивающая лучшую интеграцию с JAXB 1. 0, а также улучшенная поддержка doc / literal.

Следующая версия спецификации была переименована с JAX-RPC 2.0 в JAX-WS 2.0 и разрабатывается как JSR-224; в этом выпуске будет рассмотрен ряд дополнительных требований в этой области, а также повысится синергия между спецификациями JAXB и JAX-WS. Вы можете получить доступ к странице проекта JAX-WS здесь.

Поскольку стеки SOAP прошли долгий путь со времен JAX-B 1.0 и JAX-RPC 1.0, я рекомендую держаться подальше от Axis 1.0 и XFire (что, если я правильно помню, не t даже реализовать JAX-RPC 1). Существует множество стеков SOAP, которые реализуют новые API (JAX-WS 2.x и JAX-B 2.x).

Как уже упоминалось, Axis 2, JAX-WS RI и CXF - все допустимые варианты. . Эти стеки SOAP намного более зрелые и поддерживают многие современные спецификации WS- *.

Предупреждение относительно комментариев относительно использования вашей IDE для автоматической генерации клиентского кода. Хотя я являюсь активным сторонником создания кода привязки данных XML и интерфейсов JAX-WS из XSD и WSDL соответственно, я предостерегаю от использования встроенного мастера в вашей среде IDE для выполнения автогенерации. Если вы работаете в команде с более чем одним разработчиком или планируете изменить сгенерированный код, вам следует рассмотреть возможность сопровождения такого подхода.

Если у вас более одного разработчика, наступит время, когда один из них будет использовать другая версия инструмента автоматического создания, другая IDE или другая конфигурация в их инструменте. Кроме того, если вы автоматически сгенерируете из мастера, разработчики должны помнить, как они сгенерировали код, на случай, если вам потребуется повторно сгенерировать его в будущем. Если вы изменяете XSD и не помните свою конфигурацию с момента последнего автоматического создания, сгенерированный код может не соответствовать существующему коду, который уже используется во всей вашей программе.

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

Обе эти проблемы можно избежать с помощью сценариев генерация кода в процессе сборки. JAX-WS и JAX-B поставляются с задачами Ant и / или подключаемыми модулями Maven 2, которые легко использовать в ваших сборках. Отнеситесь к этим предупреждениям серьезно, так как я видел несколько проектов, страдающих от этих проблем, когда им нужно было изменить код, который был сгенерирован 5 лет назад сотрудником, который с тех пор покинул фирму.

Мои последние слова предостережения: будьте осторожны, позволяя инструменту автоматически генерировать интерфейсы веб-служб из ваших WSDL. Инструмент JAX-WS RI WSDL2Java любит размещать жестко запрограммированные пути к WSDL в сгенерированных интерфейсах. Я считаю, что вам следует автоматически сгенерировать интерфейсы один раз, а затем удалить жестко запрограммированные URL-адреса и ссылки QName, чтобы сделать интерфейс применимым ко всем веб-службам, реализующим привязку WSDL, которую представляет интерфейс, а не только к одной конечной точке, которую вы Описание WSDL.

12
ответ дан 18 December 2019 в 05:56
поделиться
3
ответ дан 18 December 2019 в 05:56
поделиться

можно использовать, апачская ось. Это генерирует тупики Java автоматически при обеспечении WSDL. после того как тупики сгенерированы точно так же, как вызов нормального класса Java.

3
ответ дан 18 December 2019 в 05:56
поделиться

Поскольку у нас есть довольно большие инвестиции в Spring, мы используем WS Spring с JAXB.

2
ответ дан 18 December 2019 в 05:56
поделиться

Я использовал и Ось и Axis2 и нахожу их обоих очень хорошими.

2
ответ дан 18 December 2019 в 05:56
поделиться

Я использовал и JAX-WS RI и Apache CXF. При использовании Spring затем, CXF является очень хорошим вариантом. Как упомянутый Phill, также существует WS Spring, но CXF полагается на спецификацию JAX-WS. Если бы Вы не используете Spring затем, я сказал бы, что RI является способом пойти, тем более, что он связывается Java 6.

1
ответ дан 18 December 2019 в 05:56
поделиться

Я думаю, что наиболее популярный способ использования с Apache Axis2. Очень легко создать сервисы с ним, и Вы найдете много учебных руководств.

2
ответ дан 18 December 2019 в 05:56
поделиться

Для POX+HTTP или УСПОКОИТЕЛЬНЫХ веб-сервисов, Restlet или достойная клиентская реализация HTTP абсолютно достаточны.

0
ответ дан 18 December 2019 в 05:56
поделиться

+1 для оси Apache.

Но JAX-WS также был бы хорошим выбором.

0
ответ дан 18 December 2019 в 05:56
поделиться

Сторонники Axis здесь должны быть точными.

Проект Axis 1.x был заброшен после выхода Axis 1.4 в апреле 2006 года, более трех лет назад. Недавно мы столкнулись с несколькими очень критическими ошибками безопасности потоков в клиентских библиотеках Axis 1.4, включая 100% -ное вращение ЦП и взаимоблокировки. Они хорошо задокументированы (и до сих пор не решены) в базе данных ошибок Axis 1.x. Излишне говорить, что мы отказываемся от Axis 1.x (и просто используем необработанный код HTTP-клиента Apache).

Axis 2 - это полностью новая кодовая база ... возможно, кто-то еще может ее прокомментировать.

] Основываясь на нашем опыте, мы рассмотрим Metro , CXF , ручное кодирование и (возможно) Axis 2 для сети SOAP. Сервисы. (Мы рекомендуем подходы на основе REST вместо SOAP, когда у вас есть выбор,

3
ответ дан 18 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: