Веб сервисы под weblogic(step by step)
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Веб сервисы под weblogic(step by step) Expand / Collapse
Автор
Сообщение
17.04.2007 17:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.04.2008 19:27
Сообщ.: 182, Visits: 1 528
Народ,

Может найдется доброволец, кто в этой ветке шаг за шагом расскажет как создать веб сервис работающий под weblogic?! - какой нить простейший пример. Чтобы при этом использовался WSDL!

ЗЫЖ

Пож-ста не надо посылать на google, bea.com и т.п. - был там и не раз, мягко говоря там не совсем понятно написно, т.е. может человеку уже работавшему с ентим делом все и понятно, но лично мне нет.

Сообщ. #912540
30.04.2007 2:38


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 13.11.2007 15:00
Сообщ.: 47, Visits: 400
Всё же пошлю: http://edocs.bea.com/
Документация BEA - это самая полная и понятная документация из всех существующих, так что читайте :)
Сообщ. #912890
14.05.2007 13:05
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.04.2008 19:27
Сообщ.: 182, Visits: 1 528
Да уж прочитал...

Все что нужно было узнать, - узнал! А ответ у знающих занял бы 20 строк не больше...

Сообщ. #913222
14.05.2007 13:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298, Visits: 12 500
20 строк и вправду немного, может вы, Александр, не поленитесь и напишете здесь же эти 20 строчек?

С уважением,
Владимир
Сообщ. #913225
14.05.2007 21:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.02.2008 19:48
Сообщ.: 480, Visits: 5 178
присоединяюсь :). Желательно, "шаг за шагом".
Сообщ. #913260
15.05.2007 6:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077, Visits: 21 402
otvet dolzhen byt menshe chem 20 strichek:)

make sure that C:\bea\weblogic81\server\lib\weblogic.jar and C:\bea\weblogic81\server\lib\webservices.jar are in your classpath.
V ostalnom nichego osobennogo vsyo tozhe samoe....
Сообщ. #913263
25.05.2007 16:26
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.04.2008 19:27
Сообщ.: 182, Visits: 1 528
В общем то нет проблем:

Используем: Weblogic8.1, apache-ant-1.6.5

Делаем проект с такой структурой:

WebServProject
   |_src
   |   |_my_service
   |             |_Hellow.java
   |  
   |_build.xml

Далее код класса Hellow.java

package my_service;
public class Hellow {
    public String sayHellow(String inputStr, int inputInt) {
        System.out.println("sayHello in webservices.basic.javaclass webservice has "  + "been invoked with arguments " + inputStr + " and " + inputInt);
        return "This message brought to you by the " + "letter " + inputStr + " and the number " + inputInt;
    }
}

Теперь самое главное файл buil.xml

<project name="sample web service" default="all" basedir=".">
    <property name="wlLibHome" value="C:/bea/weblogic81/server/lib"/>
    <property name="src" value="src"/>
    <property name="dest" value="classes"/>
    <path id="project.class.path">
        <pathelement location="${wlLibHome}/weblogic.jar"/>
        <pathelement location="${wlLibHome}/webservices.jar"/>
    </path>
    <path id="new.project.class.path">
        <path refid="project.class.path"/>
        <pathelement location="lib/temp.jar"/>
    </path>
    <taskdef name="servicegen"
             classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask"
       classpathref="project.class.path"/>

    <taskdef name="clientgen"
             classname="weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask"
       classpathref="project.class.path"/>

    <target name="Generate.Service" depends="build">
        <servicegen
                destEar="ears/myWebService.ear"
                contextURI="my_services" >
            <classpath refid="new.project.class.path"/>
            <service
                    expandMethods="true" generateTypes="true"
                    javaClassComponents="my_service.Hellow"
                    protocol="http" serviceName="HellowWS" serviceURI="/service/Hello"
                    style="rpc" targetNamespace="my_service">
            </service>
        </servicegen>
    </target>

    <target name="Generate.Client" depends="build">
      <clientgen ear="ears/myWebService.ear"
                 packageName="my_service.generated"
                 clientJar="lib/clientWebService.jar"
                 serviceName="HellowWS" overwrite="true">
        <classpath refid="new.project.class.path"/>
      </clientgen>
    </target>

    <target name="build">
        <echo>build RUNS</echo>
        <delete dir="${dest}"/>
        <mkdir dir="${dest}"/>
        <javac destdir="${dest}">
            <src path="${src}/my_service"/>
        </javac>

        <delete dir="lib"/>
        <mkdir dir="lib"/>
        <jar destfile="lib/temp.jar" duplicate="preserve">
            <zipfileset dir="classes" prefix=""/>
        </jar>
    </target>

    <target name="all" depends="Generate.Service, Generate.Client"/>

</project>

Запускаем задачу "all"

В процессе её выполнения компилируется наш класс Hellow + создается временный jar-файл с этим классом.

Далее выполняется задача Generate.Service. Временный jar-файл создавался для того чтобы подложить его в classpath для этой задачи.

После отработки задачи Generate.Service Будет создан ear-архив: ears/myWebService.ear. Внутри которого будет war-архив - web-services.war.

Далее запустится задача Generate.Client. Результатом её работы будет jar-архив(библиотека для работы с нашим web-сервисом) - lib/clientWebService.jar

Теперь запускаем weblogic и деплоим либо ear-архив либо war-архив.  - это мы задеплоили наш вебсервис. Осталось написать клиента:

задаем файл: src/my_client/Client.java

Для работы с нашим вебсервисом необходимо будет подключить в classpath библиотеку - lib/clientWebService.jar (кот создана на этапе сборки антом)

Вот код:

package my_client;
import my_service.generated.*;
import javax.xml.rpc.Stub;
public class Client {
    public static void main(String [] args) throws Exception{
        HellowWS_Impl ws = new HellowWS_Impl();
        HellowWSPort port = ws.getHellowWSPort();
        Stub stub = (Stub)port;
        /**
         * По умолчанию след. свойство равно: "http://localhost:7001/my_services/service/Hello" (см. файл HellowWS.wsdl в clientWebService.jar)
         * Но у меня север weblogic, на котором вебсервис работает на 7101 порту, поэтому делаю так:
         */
        stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:7101/my_services/service/Hello");
        String responce = port.sayHellow("privet", 666);
        System.out.println("Web service answered:");
        System.out.println(responce);
    }
}

Теперь досточно в этом коде изменить Stub.ENDPOINT_ADDRESS_PROPERTY на нужный и все - можно запускать!

ЗЫЖ

Если не считать строк в которых java-код и xml-файл, то описание как раз займет не больше 20 строк.

ЗЗЫЖ

http://e-docs.bea.com/wls/docs81/webserv/anttasks.html#1080160

Сообщ. #913645
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 5:05