Что-то вроде этого?
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
Чтобы ответить на ваш вопрос, нам сначала нужно различать перечисленные вами инструменты.
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.
можно использовать, апачская ось. Это генерирует тупики Java автоматически при обеспечении WSDL. после того как тупики сгенерированы точно так же, как вызов нормального класса Java.
Поскольку у нас есть довольно большие инвестиции в Spring, мы используем WS Spring с JAXB.
Я использовал и Ось и Axis2 и нахожу их обоих очень хорошими.
Я использовал и JAX-WS RI и Apache CXF. При использовании Spring затем, CXF является очень хорошим вариантом. Как упомянутый Phill, также существует WS Spring, но CXF полагается на спецификацию JAX-WS. Если бы Вы не используете Spring затем, я сказал бы, что RI является способом пойти, тем более, что он связывается Java 6.
Я думаю, что наиболее популярный способ использования с Apache Axis2. Очень легко создать сервисы с ним, и Вы найдете много учебных руководств.
Для POX+HTTP или УСПОКОИТЕЛЬНЫХ веб-сервисов, Restlet или достойная клиентская реализация HTTP абсолютно достаточны.
+1 для оси Apache.
Но JAX-WS также был бы хорошим выбором.
Сторонники 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, когда у вас есть выбор,