ПредишенСледващото

В този пост, нека разгледаме един пример за създаване на уеб услуга JAX-WS спецификация.
Да започнем с това, че по принцип означава фраза «JAX-WS спецификация." Като цяло, това означава, че има стандарт, наречен JAX-WS или ако напълно Java API за XML Web Services, която определя някои правила или договор, които трябва да бъдат следвани при прилагането му. Така че в тази статия няма да го продаде, по отношение на договора, ние ще използваме този договор. Или по-скоро, ние използваме конкретното изпълнение на спецификация JAX-WS. В света има няколко реализации на спецификация JAX-WS, добре, като Apache Axis2.
Това е най-важното да се разбере, е, че JAX-WS не е библиотека, а не рамка, а не заявление, че е вероятно тази поставка, която описва спецификациите, които трябва да се прилагат конкретна рамка. В този пример, ние ще създадем нашата уеб услуга абстрахиране от конкретните рамки, тоест, ние разчитаме само на спецификацията. Какво означава това? Това означава, че съгласно спецификацията на JAX-WS. Web интерфейс за възлагане на услугата е необходимо да се приложи анотация @WebService, без да мисли за това къде е взето това пояснение. Ние просто знам, че анотацията @WebService се задължава, в съответствие със спецификацията JAX-WS. Но след това, когато става въпрос за deploinga към сървъра, а след това ние ще трябва да вземат решение за прилагане на спецификацията. В нашия случай, че за стъклен костур. които ще бъдат използвани за изпълнение на котарака JAX-WS РИ. само glasfishom щеше изваждането от кутията, но ние ще трябва да котарак изпълнение dokinut на JAX-WS РИ ръчно, dzharniki които ние изтеглен от офиса. jax-ws.java.net сайта и да ги постави в ИЪ директория на сървлета, който ние deploit в котарак сървлет контейнер.

Какво е уеб услуга,

Service част. Структурата на проекта

Нека пишат уеб услуга, която ще се изчислява площта на геометрични фигури като кръг или правоъгълник. От страната на клиента ще бъде определена, площта на фигурата искаме да получим, а след това данните на геометричната фигура ще бъде предадена на уеб услугата и уеб услугата ще се върне след зоната за данни на фигурата.
приложение уеб услуга ще се състои от шест Java класове, които ще включват интерфейс Figure.java. Circle.java същност и Rectangle.java. факторизиране геометрични форми FigureFactory.java. Уеб себе си и своята PrintFigureService.java implimentatsiyu PrintFigureImpl.java услуга:

Структурата на проекта

В първия кадър изглежда, че Java класове са поставени в пакета по подразбиране, в действителност, всеки един от тях е с ключова дума листовка, която показва prinadlzhenost всеки клас, за да си пакет, така че след съставянето на класа ще бъде разширена в желаните пакети директория.
В Linux (поне в Ubuntu / Mint), можете да го направите на седем там, така че бъдете внимателни.


В допълнение към класове Java все още ще бъде два конфигурация XML файл е web.xml за контейнера за сървлет и слънце jaxws.xml къде ще информация за крайната точка.
След изграждането на проекта в кореновата директория на проекта ще се изгради война готови архив за deploya epplikeyshn на сървъра:

Добави в Java кода на директория SRC.

Figure.java

Circle.java

Конфигурацията на уеб услугата

Добавете две XML файл в WEB-INF директория на проекта.

слънце jaxws.xml

Съставяне на уеб услуга

Традиционно, ние съставяне скрипт.

Защо не използвам по-удобни инструменти като Maven или мравка. За да се разбере всичко за фазата на монтажа на проекта, които се крият колектори, всичко трябва да се направи, за да ръцете си, а след това можете да преминете към колекторите. Това означава, че по време на бой, което можете и трябва да се използва от колекционерите, но по време на следването си, за да мине през всички етапи на проекта на събранието.


Добавете проект корен build.sh файл, и да добавите следния скрипт файл:

След като добавя към скрипт, да я изпълним, командата:

След това в проекта главната директория ще изгради, че ще се основава на война-файл за печат фигура-service.war.
Целият проект е изцяло от страна на сървъра може да бъде изтеглен тук:

Внедряване на уеб услуга за стъклен костур

Внедряване на уеб услуга на котарака

Ако deploim на epplikeyshn стъклен костур сървъра на услугата, за да работят, но всъщност deploya повече какво друго да правя. Но за обслужване спечелил контейнер котарак сървлет (това е малко не е същото като epplikeyshn сървър), все още трябва да dokinut някои библиотеки, които по подразбиране tomkatom не си отиват. Тази библиотека едно изпълнение уеб услуги JAX-WS. За да направите това:

  1. Посетете сайта jax-ws.java.net
  2. Изтеглете библиотеки JAX-WS РИ на локалния ви твърд диск (или на локалния ви SSD)
  3. Разопаковайте архива
  4. В ролите на съдържанието на ИЪ директория. които могат да бъдат намерени в jaxws-ри директория или в ИЪ директория на Tomcat или WEB-INF / ИЪ директория на проекта.

Напълно сървъра част можете да изтеглите подходящ за Tomcat на следния линк:

тест уеб услуга

Клиентската част. Структурата на проекта

След службата се създава и zadeploin, преминете към страната на клиента. Клиентът ще бъде в същия клас, които ще ви подкани фигури площ за прехвърлените параметри.
Структура на проекта за клиента на пръв поглед изглежда проста:

Но след като се започне build.sh скрипт в структурата на директория ще бъде в допълнение към каталога изгради друга директория WebService:

Какъв е този каталог и това ли е? Факт е, че когато скриптът работи той работи екип стартиране полезност wsimport на:

С wsimport комунални услуги в проекта са заредени класове, които позволяват на потребителя да взаимодейства с уеб услугата, тъй като самият клиент да взаимодействат с уеб услугата не знае как. В тези класове, дефинирани логика, която позволява да се свържете с услугата, обадете се на отдалечени методи, за да премине параметри, да получите отговор, и така нататък.

Client.java

Събиране и стартирате клиента

Добавете проект корен build.sh файл на клиента:

Целият проект е изцяло от страна на клиента може да бъде изтеглен тук:

Подкрепете проекта - споделете линка, благодаря!