Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Веб сервис на Java 
:(
    Опции темы
tux
Дата 25.12.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(seth @  25.12.2006,  16:21 Найти цитируемый пост)
я так понимаю что бурлап входит в резин? т.е. отдельно от резина его низзя использовать? (например в томкате) 

Можно использовать где угодно и без Resin. 
PM MAIL Skype GTalk Jabber YIM   Вверх
y3u
Дата 25.12.2006, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



кстати, кто-нить возьмется накатать простенький примерчИг с использованием стандартного боевого комплекта для вебсервисов из мустанга? Собственно нужно показать как с помощью аннтотации сделать сервис, как с помощью батника сгенерить WSDL-ник и как клиента сделать...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Samotnik
Дата 5.9.2007, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Хотелось бы узнать, может у кого нить, есть ссылки на электронные книги по  WEB  программированию на Java (Servlet , jsp, .......)    Подкиньте плз, кто знает....

PM MAIL   Вверх
Maksym
Дата 5.9.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Samotnik
Глянь в Литературу по Java.
PM MAIL   Вверх
Samotnik
Дата 6.9.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Maksym,  ok
PM MAIL   Вверх
Alenka_
Дата 20.9.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 18.6.2007

Репутация: нет
Всего: нет



Что же получается? Есть два (а может больше?) способов передать данные между сервисом и клиентом поверх http. 
Это веб-сервисы, с wsdl, SOAP-оболочкой и стабами.
И Burlap/Hessian без всего перечисленного.

Оба способа требуют application server, причем в случае с burlap/hessian не обязательно Resin. А  в случае с веб- сервисом происходит автоматическая генерация и wsdl, и SOAP-пакетов и стабов.
Оба способа требуют написания собственной сериализации/ десериализации сложных структур даных. Оба работают на разных платформах ( Java, PHP, Python, C++, and C# implementations ).

Чем же так хорош чудо-burlap/hessian протокол? Простотой? 

Когда лучше применять тот или другой протокол?

PM MAIL   Вверх
Maksym
Дата 20.9.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Цитата(Alenka_ @  20.9.2007,  16:48 Найти цитируемый пост)
Чем же так хорош чудо-burlap/hessian протокол? Простотой? 

Угу. Они и позиционируют себя как легковесное решение. Плюс hessian изначально заточен под передачу бинарных данных безо всяких attachments. Но, имхо, если нет автогенерации из/в wsdl то нет web-сервиса в его идеологическом смысле. 
Зато применять burlap/hessian просто и удобно, не сравнить с монстроидальным axis2.
PM MAIL   Вверх
Alenka_
Дата 20.9.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 18.6.2007

Репутация: нет
Всего: нет



Мне все-таки интересно, не страдает ли функциональность от такой "легковесности". Может есть какие-то преимущества у веб-сервисов на Axis, ради которых пренебрегают простотой исполнения?.. 
PM MAIL   Вверх
Maksym
Дата 21.9.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Цитата(Alenka_ @  20.9.2007,  21:03 Найти цитируемый пост)
Мне все-таки интересно, не страдает ли функциональность от такой "легковесности". Может есть какие-то преимущества у веб-сервисов на Axis, ради которых пренебрегают простотой исполнения?..  

Есть, та же автогенерация.

Мое имхо: 
если вызвать сервис (хотя бы теоретически в будущем) будеш не ты (не код вышей команды), то используй axis2 -- стандарты надо уважать; если же это решение сугубо внутри вашей системы, то hessian -- простота залог успеха.  smile 
PM MAIL   Вверх
Alenka_
Дата 21.9.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 18.6.2007

Репутация: нет
Всего: нет



Т.е если сервис написан на hessian, то некто сторонний ) не будет знать, что за служба ему доступна? А у сервиса написанного с помощью Axis2- будет преимущество в виде описания wsdl?
PM MAIL   Вверх
Maksym
  Дата 21.9.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Цитата(Alenka_ @  21.9.2007,  21:08 Найти цитируемый пост)
Т.е если сервис написан на hessian, то некто сторонний ) не будет знать, что за служба ему доступна? А у сервиса написанного с помощью Axis2- будет преимущество в виде описания wsdl? 

Ну если он вообще не в курсе дела, есть ли там сервисы, то да  smile 

Но проблема несколько глубже. "Некто сторонний" будет нуждаться в том, чтобы ему каким-то образом передали пакет с интерфейсами, которые предоставляет сервис на hessian. Более того, если что то там, в этих интерфейсах, поменяется, то ему надо будет предоставить обновленный пакет. То есть на лицо проблема синхронизации версий сервиса и клиента.

В axis все можно мгновенно перегенерировать из wsdl. То есть разработчику сервисов не нужно думать о клиентах, они в состоянии сами о себе позаботиться.

Кроме того, клиент из другого языка (технологии) программирования может использовать любую реализацию для работы с wsdl отличную от axis (правда я не знаю есть ли такие, но должны быть раз уж wsdl это стандарт). А в случае с hessian -- выбор ограничивается только hessian'овской реализацией клиента (поскольку это не стандарт и никто кроме hessian его протокол не поддерживает).



Это сообщение отредактировал(а) Maksym - 21.9.2007, 22:00
PM MAIL   Вверх
stup
Дата 13.11.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 17.4.2007

Репутация: 1
Всего: 1



axis2 - полный отстой. Когда сгенерировался скелет на 70 000 строк, да еще и на русском языке, то тут уже никаких удовств этих стабов не видно и в помине. Java API для него извращенное и документировано плохо. На сайте апач лежат туториалы, который ограничиваются написанием хелловорлдов, поэтому приходится перелопачивать джавадоки :( Возможно, со временем что то выкристаллизируется, но пока - очень сыро.
PM MAIL   Вверх
Foo
Дата 27.11.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



Возможно ктото использовал в своих проектах XFire или Web Methods Glue для работы с SOAP и может поделиться впечатлениями?
--------------------
qip
PM MAIL   Вверх
sarjsheff
Дата 9.1.2008, 13:19 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 6.7.2006
Где: Moscow

Репутация: 1
Всего: 1



Пример веб сервиса на Spring Web Services.

Требуемое ПО:
1)Tomcat 6.0.14 (по идее можно и более ранние версии я пробовал под 6.0.14)
2)Spring Web Services 1.5

WebService.
Структура приложения:
simple-ws/
    WEB-INF/
        lib/
            activation-1.1.jar
            antlr-2.7.6rc1.jar
            aopalliance-1.0.jar
            asm-2.2.3.jar
            asm-commons-2.2.3.jar
            bsh-2.0b1.jar
            commons-codec-1.3.jar
            commons-fileupload-1.1.1.jar
            commons-httpclient-3.0.1.jar
            commons-io-1.1.jar
            commons-logging-1.1.jar
            groovy-1.0.jar
            jruby.jar
            jsr173_1.0_api.jar
            jstl.jar
            log4j-1.2.13.jar
            log4j.jar
            mail-1.4.jar
            pe_api.jar
            qname.jar
            resolver.jar
            saaj-api-1.3.jar
            saaj-impl-1.3.jar
            simple-ws.jar - наш сервис.
            spring-beans-2.0.6.jar
            spring-context-2.0.6.jar
            spring-core-2.0.6.jar
            spring.jar
            spring-oxm-1.0.0.jar
            spring-oxm-tiger-1.0.0.jar
            spring-web-2.0.6.jar
            spring-webmvc-2.0.6.jar
            spring-ws-core-1.0.0.jar
            spring-ws-core-tiger-1.0.0.jar
            spring-ws-security-1.0.0.jar
            spring-xml-1.0.0.jar
            standard.jar
            stax-api-1.0.1.jar
            uwi_api.jar
            wsdl4j-1.6.1.jar
            xalan-2.7.0.jar
            xercesImpl-2.8.1.jar
            xml-apis-1.3.04.jar
            xmlbeans-qname.jar
            xmlpublic.jar
            xws-security-2.0-FCS.jar
        web.xml
        spring-ws-servlet.xml

Исходный код:

Конфигурационный файл приложения web.xml
Код

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
    <display-name>
        Simple WebService
    </display-name>
    <description>-</description>

    <servlet>
        <servlet-name>spring-ws</servlet-name>
        <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
        <init-param>
            <param-name>transformWsdlLocations</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-ws</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>


Конфиг спрингов spring-ws-servlet.xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <description>Simple WS</description>


    <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
        <property name="defaultEndpoint" ref="EchoEndpoint" />
        <property name="mappings">
            <props>
                <prop key="{http://www.example.org/simple-ws/}Echo">EchoEndpoint</prop>
            </props>
        </property>        
        <property name="interceptors">
            <list>
                <ref local="validatingInterceptor" />
                <ref local="loggingInterceptor" />
            </list>
        </property>
    </bean>
    
    <bean id="validatingInterceptor" class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
        <property name="schema" value="classpath:simple-ws.xsd" />
        <property name="validateRequest" value="true" />
        <property name="validateResponse" value="true" />
    </bean>

    <bean id="loggingInterceptor" class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor">
        <property name="logRequest" value="true" />
        <property name="logResponse" value="true" />
    </bean>

    <bean id="EchoEndpoint" class="ru.sarjsheff.simplews.EchoEndpoint">
    </bean>
    
    <bean id="simple-ws" class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition">
        <description>http://localhost:8080/simple-ws/simple-ws.wsdl</description>
        <property name="builder">
            <bean class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder">
                <property name="schema" value="classpath:simple-ws.xsd" />
                <property name="portTypeName" value="SimpleWs" />
                <property name="locationUri" value="http://localhost:8080/simple-ws/services" />
            </bean>
        </property>
    </bean>
    
</beans>



Схема сообщений simple-ws.xsd
Код


<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:tns="http://www.example.org/simple-ws/" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/simple-ws/">
    <element name="Echo" type="string"></element>

    <element name="EchoResponse" type="string"></element>
</schema>


Сам сервис ru/sarjsheff/simplews/EchoEndpoint.java
Код


package ru.sarjsheff.simplews;

import org.springframework.ws.server.endpoint.AbstractDomPayloadEndpoint;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class EchoEndpoint extends AbstractDomPayloadEndpoint {

    protected Element invokeInternal(Element request, Document doc) throws Exception {
        String requestText = request.getTextContent();
        Element responseElement = doc.createElementNS("http://www.example.org/simple-ws/","EchoResponse");
        responseElement.setTextContent("request is : " + requestText);
        return responseElement;
    }

}



Клиент ru/sarjsheff/simplews/Client.java

Код


package ru.sarjsheff.simplews;

import java.io.ByteArrayInputStream;

import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.springframework.ws.client.core.WebServiceTemplate;

public class Client {

    public static void main(String[] args) {
        try {
            WebServiceTemplate wsc = new WebServiceTemplate();
            StreamSource source = new StreamSource(new ByteArrayInputStream("<Echo xmlns=\"http://www.example.org/simple-ws/\">test</Echo>".getBytes()));
            StreamResult result = new StreamResult(System.out);
         wsc.sendSourceAndReceiveToResult("http://localhost:8080/simple-ws/services", source, result);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}



WSDL доступен по http://localhost:8080/simple-ws/simple-ws.wsdl .

Это сообщение отредактировал(а) sarjsheff - 9.1.2008, 13:33
PM MAIL WWW   Вверх
sarjsheff
Дата 10.1.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 6.7.2006
Где: Moscow

Репутация: 1
Всего: 1



Реализация SOAP сервера на Groovy проще не бывает.

http://ubuntu.cica.es/mirrors/maven2/groov...l-jsr06-0.1.jar

Создаем сервис который обрабатывает входную страку и выплевывает ее обратно.

EchoService.groovy

Код

public class EchoService {

String echo(instr) { return "["+instr+"]" }

}


Код запускающий SOAP сервер.

SoapServer.groovy

Код

import groovy.net.soap.SoapServer

def server = new SoapServer("localhost", 6980)

server.setNode("EchoService")

server.start()




Клиент к нашему SOAP сервису.

SoapClient.groovy

Код

import groovy.net.soap.SoapClient

def proxy = new SoapClient("http://localhost:6980/EchoServiceInterface?wsdl")

def result = proxy.echo("kuku") println result



Запуск.

Код

groovy SoapServer.groovy &
[1] 18418
groovy SoapClient.groovy 
[kuku]

PM MAIL WWW   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.