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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Веб сервис на Java 
:(
    Опции темы
Domestic Cat
Дата 11.2.2005, 20:56 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



 Веб сервис на Java

Многие книжки по .NET, особенно для начинающих, содержат главу по веб сервисам. Автор с многозначительным видом рассказывает как это хорошо; и далее с ловкостью фокусника создает веб сервис в течение одной минуты - мол, выбираем асп.нет веб сервис, добавляем метод с аттрибутом и вуаля ! Круто! Микрософть рулез!
Некоторое время Java отставала. Был создал Apache SOAP, штука не очень удобная, так сказать. Недавно я так и не смог установить Xerces в Tomcat 5, необходимый для работы с апачевским SOAP. Вроде как tomcat должен пользовать именно xerces, а не свой парсер, потому он должен грузиться первее; как это проделать в tomcat 3 я вроде знаю, а вот с 5 непонятно. Пытался я недолго.
Да неважно. Т.к. есть еще наш ответ .NET - Apache Axis. Вот о нем пойдет разговор.
Мы, буквально за 1 минуту создадим веб сервис, но первоначально поговорим о том, что для этого нужно.

 Инсталляция

Все инструкции по инсталяции даны для UNIX (bsh шелл).

1. Нам нужен Томкет. У меня стоит 5.0.19. Скачать можно здесь:
http://jakarta.apache.org/site/binindex.cgi#tomcat

2. Инсталлируем Томкет.
а. Разархивируем архив, скажем, в папку tomcat5.
б. Устанавливаем привилегии 777 для файлов startup.sh, shutdown.sh.
в. Прописываем пути
$> export CATALINA_HOME=/Users/cat/tomcat5/
$> export JAVA_HOME=/Library/Java/Home
Естественно, что пути должны быть свои.

3. Тянем Axis.
http://ws.apache.org/axis/releases.html
Я использую 1.2RC2.

4. Устанавливаем его: переносим папку axis-1_2RC2/webapps/axis в tomcat5/webapps

5. Тянем xerces:
http://xml.apache.org/xerces2-j/download.cgi
У меня Xerces-J-bin.1.4.4

6. Переносим файл Xerces-J-bin.1.4.4/xerces.jar в tomcat5/webapps/axis/WEB-INF/lib

7. Прописываем CLASSPATH:
$> export C=/Users/cat/tomcat5/webapps/axis/WEB-INF/lib
$> export CLASSPATH=$C/axis.jar:$C/commons-logging.jar:$C/axis-ant.jar:$C/commons-discovery.jar:
$C/jaxrpc.jar:$C/log4j-1.2.8.jar:$C/saaj.jar:$C/wsdl4j.jar:$C/xerces.jar

8. Запускаем Томкет:
$> $CATALINA_HOME/bin/startup.sh

9. Если все работает правильно, появится следующее:
Using CATALINA_BASE: /Users/cat/tomcat5
Using CATALINA_HOME: /Users/cat/tomcat5
Using CATALINA_TMPDIR: /Users/cat/tomcat5/temp
Using JAVA_HOME: /Library/Java/Home/

10. Проверяем Axis: заходим по ссылке
http://localhost:8080/axis/
Мы увидим следующее:
Цитата
Hello! Welcome to Apache-Axis.
What do you want to do today?
.....


 Web Service!

Теперь мы готовы - замеряем время !
Напишем простой сервис, которых будет возвращать разность двух чисел.

1. Создаем класс SubtractionService.java
Код
 
public class SubtractionService
{
   public double subtract(double a, double b)
   {
       return (a - b);
   }
}

Можно его скомпилить - для проверки; а можно и не компилить.

2. Переименовываем его в SubtractionService.jws

3. Кладем файл в tomcat5/webapps/axis/

4. Направляем броузер (желательно IE) на
http://localhost:8080/axis/SubtractionService.jws?wsdl
и видим wsdl:

Код

<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://localhost:8080/axis/SubtractionService.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/SubtractionService.jws" xmlns:intf="http://localhost:8080/axis/SubtractionService.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!-- WSDL created by Apache Axis version: 1.2RC2
Built on Nov 16, 2004 (12:19:44 EST)   -->
- <wsdl:message name="SubtractResponse">
 <wsdl:part name="SubtractReturn" type="xsd:double" />
 </wsdl:message>

- <wsdl:message name="SubtractRequest">
 <wsdl:part name="a" type="xsd:double" />
 <wsdl:part name="b" type="xsd:double" />
 </wsdl:message>

- <wsdl:portType name="SubtractionService">
- <wsdl:operation name="Subtract" parameterOrder="a b">
 <wsdl:input message="impl:SubtractRequest" name="SubtractRequest" />
 <wsdl:output message="impl:SubtractResponse" name="SubtractResponse" />
 </wsdl:operation>

 </wsdl:portType>

- <wsdl:binding name="SubtractionServiceSoapBinding" type="impl:SubtractionService">
 <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="Subtract">
 <wsdlsoap:operation soapAction="" />
- <wsdl:input name="SubtractRequest">
 <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
 </wsdl:input>

- <wsdl:output name="SubtractResponse">
 <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/SubtractionService.jws" use="encoded" />
 </wsdl:output>

 </wsdl:operation>

 </wsdl:binding>

- <wsdl:service name="SubtractionServiceService">
- <wsdl:port binding="impl:SubtractionServiceSoapBinding" name="SubtractionService">
 <wsdlsoap:address location="http://localhost:8080/axis/SubtractionService.jws" />
 </wsdl:port>

 </wsdl:service>

 </wsdl:definitions>

&nbsp;Создаем клиента
Куда ж веб сервис без клиента? На wsdl пускай любуется Билли; а мы напишем комманд лайн приложение. Но прежде всего нужно создать прокси для веб сервиса. Потому как без прокси работать с ним будет не очень приятное занятие.

1. Делаем прокси:
$> java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/SubtractionService.jws?wsdl
В текущей папке появится папка localhost/axis/SubtractionService_jws/
содержащая 4 файла.


2. Прокси готов, создаем клиента.
Код

package localhost.axis.SubtractionService_jws;

public class SClient
{
   public static void main(String[] args) throws Exception
   {
       double result;
       SubtractionServiceServiceLocator sssl = new SubtractionServiceServiceLocator();
       SubtractionService ss = sssl.getSubtractionService();
       result = ss.subtract(45.6, 22.8);
       System.out.println("Result = " + result);
   }
}


SubtractionServiceServiceLocator, SubtractionService -файлы прокси, сгенерированные WSDL2Java.
Заметьте, что клиента для простоты я поместил в пакет localhost.axis.SubtractionService_jws, то есть поместить его надо в localhost/axis/SubtractionService_jws/

3. Компилим клиента и файлы прокси:

$> javac localhost/axis/SubtractionService_jws/*.java

4. Запускаем клиента.
Цитата
Result is 22.8


Последнее замечание: по большому счету, для полного счастья axisу нужны также JAF и javamail.
У меня он ругался пару раз вот так:

Цитата
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.


У нас аттачментов нет, потому без разницы, и так работать будет.


--------------------

PM   Вверх
simanyay
Дата 19.5.2005, 16:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


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

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



Веб сервис, с помощью Burlap, на Java меньше чем за минуту:

Необходимо:
1. Любой application server (Tomcat, Resin, etc.)
2. Библиотека Burlap

Делаем:
// Сторона сервера

1. Создаём интерфейс:
Код

package service;

public interface Basic {
    public String sayHello();
}


2. Создаём сервис:
Код

package service;

import com.caucho.burlap.server.BurlapServlet;

public class Hello extends BurlapServlet implements Basic {
    public String sayHello() {
        return "Hello";
    }
}


3. Деплоим сервис (в моём случае находится тут: http://localhost:8084/hello/Hello)

// Сторона клиента

4. Переносим созданный в 1 интерфейс

5. Создаём клиента:

Код

package org.simanyay.simsql;

import java.net.URL;
import com.caucho.burlap.client.BurlapProxyFactory;

public class Client {
    public static void main(String args[]) throws Exception {
        URL url = new URL("http://localhost:8084/Hello");
        
        BurlapProxyFactory factory = new BurlapProxyFactory();
        Basic basic = (Basic) factory.create(Basic.class, "http://localhost:8084/hello/Hello");
        
        System.out.println("Response: " + basic.sayHello());
    }
}


6. Компилируем, запускаем и получаем:
Код

Response: Hello


P.S. Burlap это базированный на XML протокол. Можно также использовать Hessian - бинарный протокол с тем же API

Это сообщение отредактировал(а) simanyay - 19.5.2005, 17:07


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Stampede
Дата 19.5.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



У меня по поводу веб сервисов есть один БОЛЬШОЙ-ПРЕБОЛЬШОЙ вопрос.

Дело в том, что сама идея SOAP и вызова методов как сервисов по HTTP в текстовом формате очень даже понятна, и даже можно запросто сваять демку "хелло ворлд", и вроде бы все пучком. До тех пор, пока не возникнет задача обмениваться данными, чуть более сложными чем строки и примитивы. Вот тут-то и начинается гемор.

Например, если у вас есть какой-то класс, который надо пересылать в качестве параметра/результата (скажем, простой Bean), Axis создаст для него прокси, который можно будет использовать на клиенте. Но это-то будет уже не оригинальный класс! Скажете, ничего страшного? Хорошо, тогда вот реальный пример из жизни.

У нас есть древнее серверное приложение на Java, написанное еще на сокетах. Я его сейчас переделываю в J2EE. Клиент к нему - толстый, на Swing'е. Для обмена данными используется паттерн Value Objects, а для доступа к серверной функциональности - Session Facade.

Так вот, объекты Value Objects у меня не простые бины, а целая иерархия классов, идущая от интерфейсов и пр. - со всякими удобными методами, со своей логикой наследования и пр. Так, чтобы их было удобно обрабатывать на сервере, и отображать и манипулировать на клиенте. "And he saw that they were good" smile

Но тут возникло требование обеспечить доступ к серверу через веб сервисы, чтобы:
  • иметь возможность использовать толстого клиента из любого места;
  • иметь интероперабельный API

И я просто сел на попу, потому что преобразование моих Value Objects в прокси сразу же ломало весь мой клиентский код. Я несколько дней рыл инет, пытаясь найти решение. В прниципе вопрос, насколько я понял, решается написанием собственных сериализаторов-десериализаторов. Но почему-то мне это решение мне не понравилось, уж не помню почему. По-моему, я очень не полюбил идею автогенерации всей этой SOAP чухни и страшный вид WDSL файла.

И вот когда я в отчаянии стал рыть все подряд, я наткнулся на обсуждении разницы в подходах Java и .Net к вопросу создания веб сервисов. И оттуда я узнал, что есть две принципально разных парадигмы SOAP: document-style и RPC-style. По каким-то историческим причинам в Java получил развитие только второй, тогда как .Net последовали рекомендации консорциума по интероперабельности WS-I и выбрали document-style.

И хоть я не люблю MS, но когда я узнал об этом, я готов был расцеловать Билла Гейца. После этой маленькой подсказки я просто тупо сел и за день приделал веб-сервисный интерфейс к моему серверу приложения.

В Axis я объявил один единственный метод, который принимает строку и возвращает строку. Кроме того, я написал тоненький wrapper, который маршализует параметры и возвращаемые результаты. Для XML сериализации воспользовался простой до ужаса библиотечкой XStream.

Потом я сделал фабрику, которая скрывает детали получения серверных Session Beans, и теперь при запуске клиента достаточно указать тип соединения, RMI или SOAP, и теперь клиенту это вообще по барабану - он просто общается с бинами (вернее с их стабами), не задумываясь, откуда они берутся.

Может, конечно, я просто изобрел велосипед, но лично мне на нем ездить в четыреста пятьдесят раз удобнее smile

И все-таки меня мучает вопрос: а может, есть более простой путь?

PM WWW   Вверх
simanyay
Дата 19.5.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


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

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



Честно говоря, с такими проблемами не сталкивался, т.к. такими вещами пока не занимался. Однако же быстрая пробежка по инету выдала аналогичный, но неотвеченный вопрос на форумах Sun, а это всегда плохой знак. Хотя я нашёл вот это:

http://www.oracle.com/technology/sample_co...msws/index.html

гммм... почему-то для этого УРЛа [URL] не работает

Это сообщение отредактировал(а) simanyay - 19.5.2005, 22:32


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
maximb
Дата 23.5.2005, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 48
Регистрация: 23.5.2005
Где: Украина, г.Симфер ополь

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



Цитата(Stampede @ 19.5.2005, 20:41)
Дело в том, что сама идея SOAP и вызова методов как сервисов по HTTP в текстовом формате очень даже понятна, и даже можно запросто сваять демку "хелло ворлд", и вроде бы все пучком. До тех пор, пока не возникнет задача обмениваться данными, чуть более сложными чем строки и примитивы. Вот тут-то и начинается гемор.

Возможно я немного непонял в чем заключается твоя проблема.

Но обмениваться сложными структурами достаточно просто, а чтобы не писать своих
сериалайзеров и десереалайзеров достаточно следовать одному из ограничений аксиса - не использовать абстрактные типы (abstract, interface) т.е. в методах и объектах, которые будут использоваться ВЕБ - сервисом их не использовать.

Насчет RMI + WEB-сервис: тоже все достаточно просто, т.е. достаточно правильно оформить wsdd Axis'а и легким движением EJB интерфейс превращается в WEB - сервис, ни одной строчки кода писать не требуется.

Теперь клиент: (моя реализация)
Клиент конектится по local EJB, если не получается то коннектится по remote EJB,
если не получается конектится к WEB - сервису.
Все интерфейсы EJB и WEB - сервис реализуют один интерфейс.
В качестве клиентского класса выполняющего запросы к WEB-сервису используется класс реализующий интерфейс InvocationHandler - чтобы не дублировать все методы, обработка выполняется в одном небольшом методе, конструирующем запросы.

Вообщем если я не понял проблему, сообщи - подумаем smile









PM ICQ   Вверх
Souljah
Дата 12.7.2005, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Domestic Cat - спасибо за статью, очень пригодилась

жаль плюс не могу влепить :)
PM MAIL   Вверх
Stampede
Дата 12.7.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



Цитата(Souljah @ 12.7.2005, 19:37)
жаль плюс не могу влепить smile


Ну я влеплю - не вопрос. Вот только скажите мне, а зачем вам веб сервисы?

Дело в том, что проблема, которую я описал чуть выше в этом же топике, с использованием Axis'а не решается (или решается, но очень нетривиальным образом). В этом отношении Burlap оказывается в сорок раз проще и прозрачнее. Но он подходит только для взаимодействия Java-to-Java. Если же нужна интероперабельность, то Burlap отпадает, во всяком случае, пока для него не напишут .Net адаптер. Но прикол в том, что в случае сложных объектов и SOAP в том виде, как это делается в Axis, для интероперабельного доступа тоже не прокатывает!

Именно поэтому я еще раз спрашиваю: зачем вам веб сервисы?


PM WWW   Вверх
Souljah
Дата 12.7.2005, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот вы даете

а чем вам не нравится идея кросплатформенных объектных интерфейсов к серверу, да еще и по хттп?

а вообще -то да, кто ж без греха
PM MAIL   Вверх
Domestic Cat
Дата 12.7.2005, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Спасиб smile


--------------------

PM   Вверх
DounUnload
Дата 13.7.2005, 07:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Бросьте! Кому он нужен - этот ваш чахлый Веб сервис вместе с Ахисом в придачу.
Преимущества SOAP бесспорны, но! Для этого необходимо решить ряд проблем
1 Наконец узаконить XML Schema - тогда описания XML стандартов станут меньше
2 Отработать систему SOAP расширений на предмет совместимости с XML Schema.

А то впечатление, что все бредут непонятно куда, а потом кто-то свистнет и все побежали за мячиком. Просто непонятно, зачем иной раз в проект включается та или иная библиотека поддержки. Софта много, а толку никакого, сделать что необходимо - не можешь! Вот сейчас уже Томкат 55 вышел, а чем он по существу от тройки отличается? Или, с другой стороны - а много ли интернет браузеров поддерживают XML, XML Schema, трансформацию XML? Mozila - да, но большинство как пользовались IE 5.5 так и сидят под ним. smile

  Вверх
Souljah
Дата 13.7.2005, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Веб-сервисы пишуться не для браузеров :)

софта много, но вам принимать решение, когда его использоать.

я не вижу повода для недовольства, почему ws - эт плохо? ряд задач успешно решаются. я видел тяжелые проекты с API по http протоколу, в которых успешно мог быть применен ws.

согласен, что ряд задач не решается с помощью axis ws, но то же самое можно сказать о любой библиотеке :)
PM MAIL   Вверх
DUnload
  Дата 14.7.2005, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Речь только шла о конкретном примере, чт касается WS как проблемы в целом - то я этим занимаюсь с 2002 года. smile
Очень неплохая книга вышла
Java SOAP для профессионалов, автор Генри Бекет ISBN 5-85582-223-0 издат. Лори 2004 год

Это сообщение отредактировал(а) DUnload - 14.7.2005, 06:01
PM MAIL   Вверх
Се ля ви
Дата 12.9.2005, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



Не пойму, что такое. smile

делаю всё как Котъ описал, разве что Axis 1.2.1 и Tomcat 5.5. Всё нормально до момента:

Цитата(Domestic @ 11.2.2005, 20:56)
4. Направляем броузер (желательно IE) на
http://localhost:8080/axis/SubtractionService.jws?wsdl


Тут происходит нечто, выходящее из ряда вон - Tomcat требует авторизоваться и посылает сообщение "XDB". Я копался в аксисе - никаких паролей в конфигах не обнаружил (был, правда, странный файл "users.lst", пороли и пользователи из которого, впрочем, не подошли). Не подошёл так же и админовый пароль от самого томката, который я задавал при установке.

Но затыкается и выдаёт ошибку 401 при неудачной авторизации не просто адрес http://localhost:8080/axis/SubtractionService.jws?wsdl и даже не просто все, что связано с аксисом - сдыхает весь томкат и даже при его перезапуске это "XDB", непонятно чего от меня хотящее, не пропадает. Только полная перезагрузка системы позволяет снова работать с томкатом до той поры, пока я снова не попытаюсь залезть на http://localhost:8080/axis/SubtractionService.jws?wsdl - тогда всё повторяется.

Попробовал пропустить эту стадию и пойти дальше, но понял, что всё бесполезно, когда не смог сделать проксю - выдаёт
Цитата
java.net.ProtocolException: Server redirected too many  times (20)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at java.net.URL.openStream(Unknown Source)
        at org.apache.xerces.readers.DefaultReaderFactory.createReader(DefaultReaderFactory.java:149)
        at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java:493)
        at org.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java:314)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1097)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:195)
        at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:369)
        at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:420)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:482)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Unknown Source)

Понятно - сам уже не может к сервису доступиться, так как сделает проксю?

P.S. Кстати, в моей более новой комплектации вот это:
Цитата(Domestic @ 11.2.2005, 20:56)
Последнее замечание: по большому счету, для полного счастья axisу нужны также JAF и javamail.
У меня он ругался пару раз вот так:

Цитата
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.


У нас аттачментов нет, потому без разницы, и так работать будет.

Происходит во всех 100% случаев. По-этому придётся качать и тоже класть в либу аксиса и прописывать в CLASSPATH:
1) JAF отсюда: http://java.sun.com/products/javabeans/glasgow/jaf.html
2) JavaMail отсюда: http://java.sun.com/products/javamail/downloads/index.html
3) Java XMLSecurity отсюда: http://xml.apache.org/security/download.html

Это сообщение отредактировал(а) Се ля ви - 24.10.2005, 16:15


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
tux
Дата 15.9.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


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

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



Цитата(Stampede @ 13.7.2005, 02:07)
зачем вам веб сервисы?

Работаю сейчас над проектом, в котором серверы будут размещены в территориально распределенной сети (в перспективе очень большая территория, причем не везде сеть можем контролировать), причем программные компоненты на серверах должны между собой взаимодействовать. Возможно, что где-то будет открыт только трафик по HTTP. В таких условиях веб-сервисы мне кажутся наиболее естественным решением, обеспечивающим работу системы.
PM MAIL Skype GTalk Jabber YIM   Вверх
Stampede
Дата 15.9.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



tux

Ага, отлично! Я как раз и ждал чего-то подобного. В таком случае у меня есть одна маленькая поправка:

Цитата(tux @ 15.9.2005, 14:28)
В таких условиях веб-сервисы мне кажутся наиболее естественным решением, обеспечивающим работу системы.


А я считаю, что если отталкиваться от специфики задачи, то существует еще более общий общий делитель: Java remoting over HTTP. Частными реализациями какового могут быть веб-сервисы, а могут быть и другие технологии, например Burlap/Hessian.

Это сообщение отредактировал(а) Stampede - 15.9.2005, 17:59


--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1926 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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