﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / Java  / Веб сервисы под weblogic(step by step) / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sun, 07 Sep 2008 09:42:45 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>В общем то нет проблем:&lt;/P&gt;&lt;P&gt;Используем: Weblogic8.1, apache-ant-1.6.5&lt;/P&gt;&lt;P&gt;Делаем проект с такой структурой:&lt;/P&gt;&lt;P&gt;WebServProject&lt;BR&gt;   |_src&lt;BR&gt;   |   |_my_service&lt;BR&gt;   |             |_Hellow.java&lt;BR&gt;   |   &lt;BR&gt;   |_build.xml&lt;/P&gt;&lt;P&gt;Далее код класса Hellow.java&lt;/P&gt;&lt;P&gt;package my_service;&lt;BR&gt;public class Hellow {&lt;BR&gt;    public String sayHellow(String inputStr, int inputInt) {&lt;BR&gt;        System.out.println("sayHello in webservices.basic.javaclass webservice has "  + "been invoked with arguments " + inputStr + " and " + inputInt);&lt;BR&gt;        return "This message brought to you by the " + "letter " + inputStr + " and the number " + inputInt;&lt;BR&gt;    }&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;&lt;P&gt;Теперь самое главное файл buil.xml&lt;/P&gt;&lt;P&gt;&amp;lt;project name="sample web service" default="all" basedir="."&amp;gt;&lt;BR&gt;    &amp;lt;property name="wlLibHome" value="C:/bea/weblogic81/server/lib"/&amp;gt;&lt;BR&gt;    &amp;lt;property name="src" value="src"/&amp;gt;&lt;BR&gt;    &amp;lt;property name="dest" value="classes"/&amp;gt;&lt;BR&gt;    &amp;lt;path id="project.class.path"&amp;gt;&lt;BR&gt;        &amp;lt;pathelement location="${wlLibHome}/weblogic.jar"/&amp;gt;&lt;BR&gt;        &amp;lt;pathelement location="${wlLibHome}/webservices.jar"/&amp;gt;&lt;BR&gt;    &amp;lt;/path&amp;gt;&lt;BR&gt;    &amp;lt;path id="new.project.class.path"&amp;gt;&lt;BR&gt;        &amp;lt;path refid="project.class.path"/&amp;gt;&lt;BR&gt;        &amp;lt;pathelement location="lib/temp.jar"/&amp;gt;&lt;BR&gt;    &amp;lt;/path&amp;gt;&lt;BR&gt;    &amp;lt;taskdef name="servicegen"&lt;BR&gt;             classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask"&lt;BR&gt;       classpathref="project.class.path"/&amp;gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;taskdef name="clientgen"&lt;BR&gt;             classname="weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask"&lt;BR&gt;       classpathref="project.class.path"/&amp;gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;target name="Generate.Service" depends="build"&amp;gt;&lt;BR&gt;        &amp;lt;servicegen&lt;BR&gt;                destEar="ears/myWebService.ear"&lt;BR&gt;                contextURI="my_services" &amp;gt;&lt;BR&gt;            &amp;lt;classpath refid="new.project.class.path"/&amp;gt;&lt;BR&gt;            &amp;lt;service&lt;BR&gt;                    expandMethods="true" generateTypes="true"&lt;BR&gt;                    javaClassComponents="my_service.Hellow"&lt;BR&gt;                    protocol="http" serviceName="HellowWS" serviceURI="/service/Hello"&lt;BR&gt;                    style="rpc" targetNamespace="my_service"&amp;gt;&lt;BR&gt;            &amp;lt;/service&amp;gt;&lt;BR&gt;        &amp;lt;/servicegen&amp;gt;&lt;BR&gt;    &amp;lt;/target&amp;gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;target name="Generate.Client" depends="build"&amp;gt;&lt;BR&gt;      &amp;lt;clientgen ear="ears/myWebService.ear"&lt;BR&gt;                 packageName="my_service.generated"&lt;BR&gt;                 clientJar="lib/clientWebService.jar"&lt;BR&gt;                 serviceName="HellowWS" overwrite="true"&amp;gt;&lt;BR&gt;        &amp;lt;classpath refid="new.project.class.path"/&amp;gt;&lt;BR&gt;      &amp;lt;/clientgen&amp;gt;&lt;BR&gt;    &amp;lt;/target&amp;gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;target name="build"&amp;gt;&lt;BR&gt;        &amp;lt;echo&amp;gt;build RUNS&amp;lt;/echo&amp;gt;&lt;BR&gt;        &amp;lt;delete dir="${dest}"/&amp;gt;&lt;BR&gt;        &amp;lt;mkdir dir="${dest}"/&amp;gt;&lt;BR&gt;        &amp;lt;javac destdir="${dest}"&amp;gt;&lt;BR&gt;            &amp;lt;src path="${src}/my_service"/&amp;gt;&lt;BR&gt;        &amp;lt;/javac&amp;gt;&lt;/P&gt;&lt;P&gt;        &amp;lt;delete dir="lib"/&amp;gt;&lt;BR&gt;        &amp;lt;mkdir dir="lib"/&amp;gt;&lt;BR&gt;        &amp;lt;jar destfile="lib/temp.jar" duplicate="preserve"&amp;gt;&lt;BR&gt;            &amp;lt;zipfileset dir="classes" prefix=""/&amp;gt;&lt;BR&gt;        &amp;lt;/jar&amp;gt;&lt;BR&gt;    &amp;lt;/target&amp;gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;target name="all" depends="Generate.Service, Generate.Client"/&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/project&amp;gt;&lt;/P&gt;&lt;P&gt;Запускаем задачу "all"&lt;/P&gt;&lt;P&gt;В процессе её выполнения компилируется наш класс Hellow + создается временный jar-файл с этим классом. &lt;/P&gt;&lt;P&gt;Далее выполняется задача Generate.Service. Временный jar-файл создавался для того чтобы подложить его в classpath для этой задачи.&lt;/P&gt;&lt;P&gt;После отработки задачи Generate.Service Будет создан ear-архив: ears/myWebService.ear. Внутри которого будет war-архив - web-services.war.&lt;/P&gt;&lt;P&gt;Далее запустится задача Generate.Client. Результатом её работы будет jar-архив(библиотека для работы с нашим web-сервисом) - lib/clientWebService.jar&lt;/P&gt;&lt;P&gt;Теперь запускаем weblogic и деплоим либо ear-архив либо war-архив.  - это мы задеплоили наш вебсервис. Осталось написать клиента:&lt;/P&gt;&lt;P&gt;задаем файл: src/my_client/Client.java&lt;/P&gt;&lt;P&gt;Для работы с нашим вебсервисом необходимо будет подключить в classpath библиотеку - lib/clientWebService.jar (кот создана на этапе сборки антом)&lt;/P&gt;&lt;P&gt;Вот код:&lt;/P&gt;&lt;P&gt;package my_client;&lt;BR&gt;import my_service.generated.*;&lt;BR&gt;import javax.xml.rpc.Stub;&lt;BR&gt;public class Client {&lt;BR&gt;    public static void main(String [] args) throws Exception{&lt;BR&gt;        HellowWS_Impl ws = new HellowWS_Impl();&lt;BR&gt;        HellowWSPort port = ws.getHellowWSPort();&lt;BR&gt;        Stub stub = (Stub)port;&lt;BR&gt;        /**&lt;BR&gt;         * По умолчанию след. свойство равно: "&lt;A href="http://localhost:7001/my_services/service/Hello"&gt;http://localhost:7001/my_services/service/Hello&lt;/A&gt;" (см. файл HellowWS.wsdl в clientWebService.jar)&lt;BR&gt;         * Но у меня север weblogic, на котором вебсервис работает на 7101 порту, поэтому делаю так:&lt;BR&gt;         */&lt;BR&gt;        stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "&lt;A href="http://localhost:7101/my_services/service/Hello"&gt;http://localhost:7101/my_services/service/Hello&lt;/A&gt;");&lt;BR&gt;        String responce = port.sayHellow("privet", 666);&lt;BR&gt;        System.out.println("Web service answered:");&lt;BR&gt;        System.out.println(responce);&lt;BR&gt;    }&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;Теперь досточно в этом коде изменить Stub.ENDPOINT_ADDRESS_PROPERTY на нужный и все - можно запускать!&lt;/P&gt;&lt;P&gt;ЗЫЖ&lt;/P&gt;&lt;P&gt;Если не считать строк в которых java-код и xml-файл, то описание как раз займет не больше 20 строк.&lt;/P&gt;&lt;P&gt;ЗЗЫЖ&lt;/P&gt;&lt;P&gt;&lt;A href="http://e-docs.bea.com/wls/docs81/webserv/anttasks.html#1080160"&gt;http://e-docs.bea.com/wls/docs81/webserv/anttasks.html#1080160&lt;/A&gt;</description><pubDate>Fri, 25 May 2007 16:26:56 GMT</pubDate><dc:creator>Alexadr</dc:creator></item><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>otvet dolzhen byt menshe chem 20 strichek:)&lt;br&gt;&lt;br&gt;make sure that C:\bea\weblogic81\server\lib\weblogic.jar and C:\bea\weblogic81\server\lib\webservices.jar are in your classpath.&lt;br&gt;V ostalnom nichego osobennogo vsyo tozhe samoe....&lt;br&gt;</description><pubDate>Tue, 15 May 2007 06:00:29 GMT</pubDate><dc:creator>mishgun</dc:creator></item><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>присоединяюсь :). Желательно, "шаг за шагом".</description><pubDate>Mon, 14 May 2007 21:21:02 GMT</pubDate><dc:creator>mselez</dc:creator></item><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>20 строк и вправду немного, может вы, Александр, не поленитесь и напишете здесь же эти 20 строчек?&lt;br&gt;&lt;br&gt;С уважением,&lt;br&gt;Владимир</description><pubDate>Mon, 14 May 2007 13:18:48 GMT</pubDate><dc:creator>boombastik</dc:creator></item><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>Да уж прочитал...&lt;/P&gt;&lt;P&gt;Все что нужно было узнать, - узнал! А ответ у знающих занял бы 20 строк не больше...</description><pubDate>Mon, 14 May 2007 13:05:23 GMT</pubDate><dc:creator>Alexadr</dc:creator></item><item><title>RE: Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>Всё же пошлю: http://edocs.bea.com/&lt;br&gt;Документация BEA - это самая полная и понятная документация из всех существующих, так что читайте :)</description><pubDate>Mon, 30 Apr 2007 02:38:09 GMT</pubDate><dc:creator>wind</dc:creator></item><item><title>Веб сервисы под weblogic(step by step)</title><link>http://www.relib.com/forums/Topic912540-5-1.aspx</link><description>Народ, &lt;/P&gt;&lt;P&gt;Может найдется доброволец, кто в этой ветке шаг за шагом расскажет как создать веб сервис работающий под weblogic?! - какой нить простейший пример. Чтобы при этом использовался WSDL!&lt;/P&gt;&lt;P&gt;ЗЫЖ&lt;/P&gt;&lt;P&gt;Пож-ста не надо посылать на google, bea.com и т.п. - был там и не раз, мягко говоря там не совсем понятно написно, т.е. может человеку уже работавшему с ентим делом все и понятно, но лично мне нет.</description><pubDate>Tue, 17 Apr 2007 17:32:45 GMT</pubDate><dc:creator>Alexadr</dc:creator></item></channel></rss>