Сказки Java and Web-services
Опять же сам пока не разбирался - просто ищу материалы, чтобы попробовать что такое веб сервисы в Java разработке... Естественно все это планируется делать на OpenSource компонентах. Также дополнительно нужно овладеть базовыми навыками работы с Apache Derby, т.к. огромное количество примеров дается именно на этой СУБД.
Отличная базовая статья по написанию первого веб-сервиса с IBM DevloperWorks. Старенькая правда - конца 2004 года (Eclipse 3.1, Axis1.0), но уже тогда это было простое занятие!
Создание Web-клиента при помощи Eclipse Web Tools Platform
Быстрый старт OpenSource реализации web services engine от Apache
Axis2 Quick Start Guide
Вот еще свежая статья с WTP, а также другие рекомендованные статьи по работе с визардами
Using Web Service Explorer to test a Web service
Creating Bottom Up Web Service via Axis
Creating Top Down Web Service via Axis
Consuming Web service using Web Service Client via Axis
Дальше будет ... сам попробую вряд ли раньше выходных. Но думаю на новейшем дистрибутиве j2ee разработки должно быть еще проще. И работа с Derby также, т.к. Eclipse Europe JEE Development уже содержит в себе Data Tools Platform
Так сразу в тему смотрим демонстрацию Instaling and Using Eclipse IDE for Java Enterprise Developers. Демонстрация показывает где скачать, как установить, как создать веб-сервис, как его протестировать. Все это правда для JBoss, но тут действительно видно насколько это все просто!
В J2SE 6 добавлено API из J2EE javax.jws, javax.xml.ws и javax.xml.soap, а также расширенная поддержка аннотаций. Теперь можно делать так:
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class HelloService {
@WebMethod
public String helloWorld() {
return "Hello, World";
}
}
Затем обрабатывать аннотации и получать код
package net.zukowski.revealed.jaxws;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "helloWorldResponse", ➥
namespace = "http://revealed.zukowski.net/")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "helloWorldResponse", namespace = "http://revealed.zukowski.net/")
public class HelloWorldResponse {
@XmlElement(name = "return", namespace = "")
private String _return;
/**
*
* @return
* returns String
*/
public String get_return() {
return this._return;
}
/**
*
* @param _return
* the value for the _return property
*/
public void set_return(String _return) {
this._return = _return;
}
}
и еще шикарный пример вызова сервиса поиска Google из приложения
import java.io.*;
import java.net.*;
import javax.xml.ws.*;
import javax.xml.namespace.*;
import javax.xml.soap.*;
public class GoogleSearch {
public static void main(String args[]) throws Exception {
URL url = new URL("http://api.google.com/GoogleSearch.wsdl");
QName serviceName = new QName("urn:GoogleSearch", "GoogleSearchService");
QName portName = new QName("urn:GoogleSearch", "GoogleSearchPort");
Service service = Service.create(url, serviceName);
Dispatch dispatch = service.createDispatch(portName,
SOAPMessage.class, Service.Mode.MESSAGE);
SOAPMessage request = MessageFactory.newInstance().createMessage(
null, new FileInputStream(args[0]));
SOAPMessage response = dispatch.invoke(request);
response.writeTo(System.out);
}
ЗЫ. Кстати появился первый порт VE для Eclipse Europe, работает если поставить его именно на JEE дистрибутив (из-за GEF и EMF)
-----------
Душ, кухня, уборная на колесах – это уникальный гибрид жилища и машины - автодом. Познакомиться поближе с производителями и моделями автодомов можно на Travelavto.ru.
Отличный отпугиватель собак "Superdogchaser" для защиты от агрессивных собак - ваше спасение от острых зубов бездомных животных.