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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание Веб-службы (web-service), Создание простой веб-службы и ее клиента 
:(
    Опции темы
priam220
Дата 25.9.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Решил создать подробную интсрукцию по созданию веб-сервиса и его клиента с учетом свежего инструментария и библиотек.

Создание простого веб-сервиса при помощи jax-ws(2.2.1), java 6, tomcat 6, ant.

I. Подготовка:

1. Устанавливаем Tomcat.
2. Скачиваем JAX-WS, создаем каталог JAXWS, разархивируем туда содержимое.
   Создаем новую переменную окружения JAXWS_HOMЕ.
   Заходим в JAXWS\lib копируем все содержимое в  [tomcat]\lib.
   
II. Создание веб-сервиса:

Создаем простой проект со следующей структурой:
src
WebContent
    WEB-INF
        sun-jaxws.xml
        web.xml
build.xml

Создайте 2 класса:
Код

    package com.ws;

    import javax.jws.WebMethod;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import javax.jws.soap.SOAPBinding.Style;
     
    @WebService
    @SOAPBinding(style = Style.RPC)
    public interface ISimple{
        @WebMethod String sendHello();
    }
        
    package com.ws;

    import javax.jws.WebService;
     
    @WebService(endpointInterface = "com.ws.ISimple")
    public class Simple implements ISimple{
        @Override
        public String sendHello() {
            return "Hello!!!";
        }
    }



Содержание    sun-jaxws.xml:
Код

    <?xml version="1.0" encoding="UTF-8"?>
    <endpoints
      xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
      version="2.0">
      <endpoint
          name="ISimple"
          implementation="com.ws.Simple"
          url-pattern="/simple"/>
    </endpoints>



Содержание web.xml:
Код

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
    Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
     
    <web-app>
        <listener>
            <listener-class>
                    com.sun.xml.ws.transport.http.servlet.WSServletContextListener
            </listener-class>
        </listener>
        <servlet>
            <servlet-name>simple</servlet-name>
            <servlet-class>
                com.sun.xml.ws.transport.http.servlet.WSServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>simple</servlet-name>
            <url-pattern>/simple</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>120</session-timeout>
        </session-config>
    </web-app>    


        
Содержание build.xml:
Код

    <project name="HelloWorldWS" default="war" basedir=".">
    <description>
        Web Services build file
    </description>
    <!-- set global properties for this build -->
    <property name="src" location="src"/>
    <property name="build" location="build"/>
    <property name="dist"  location="dist"/>
    <property name="webcontent"  location="WebContent"/>

    <target name="init">
        <!-- Create the time stamp -->
        <tstamp/>
        <!-- Create the build directory structure used by compile -->
        <mkdir dir="${build}"/>
    </target>

    <target name="compile" depends="init"
    description="compile the source " >
        <!-- Compile the java code from ${src} into ${build} -->
        <javac srcdir="${src}" destdir="${build}"/>
    </target>

    <target name="war" depends="compile"
    description="generate the distribution war" >

    <!-- Create the war distribution directory -->
    <mkdir dir="${dist}/war"/>

    <!-- Follow standard WAR structure -->
    <copydir dest="${dist}/war/build/WEB-INF/" src="${webcontent}/WEB-INF/" />
    <copydir dest="${dist}/war/build/WEB-INF/classes/" src="${build}" />

    <jar jarfile="${dist}/war/Simple.war" basedir="${dist}/war/build/"/>
    </target>

    </project>


Заходим в папку проекта, запускаем сборщик: >ant.

    Заходим в только что созданную сборщиком папку dist, забираем Simple.war переносим его в [tomcat]\apps.
    Запускаем томкат.
    Если все сделано верно, то наш сервис должен быть запущен а его wsdl доступна по адресу:
    http://localhost:8080/Simple/simple?wsdl. Позже этот файл понадобится для генерации стаба.
    
III. Создание клиента:

    Создаем новый проект.

    Заходим в ранее созданный каталог JAXWS\bin. Генерируем стаб:
        wsimport -p simple -Xendorsed http://localhost:8080/Simple/simple?wsdl
        Создавшийся каталог запаковываем в simple.jar и подключаем к нашему проекту.

    Создаем класс-клиент:
Код

    package com.client;

    import simple.ISimple;
    import simple.SimpleService;

    public class ServiceClient {
          static SimpleService service = new SimpleService();

          public static void main(String[] args) {
                ISimple port = service.getSimplePort();
                  String response = port.sendHello();
                  System.out.println(response);       
          }
    }    


    Запускаем: 
    >Hello!!!
Все.

Ссылки:
  http://www.mkyong.com/webservices/jax-ws/d...ices-on-tomcat/
  http://download.oracle.com/docs/cd/E17802_...doc/JAXWS3.html
  http://www.w3.org/TR/wsdl
 

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

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

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


 




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


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

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