Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83

Написать программу, которая на клиентской машине должна подключаться к веб-сервису

14.05.2006, 04:46. Показов 3509. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вобщем есть веб сервис написанные на php котрый через wsdl вайлы предоставляет некоторые функции. Как я понемаю это определённый стандарт и не имеет значения на каком языке подрубатся к ним. Я делаю программу котрая на клиентской машине должна подключатся к этиму веб сервису. Как можно это реализовать в джаве? Чтото подобное я видет в J2EE но вот для J2SE я ненашол.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2006, 04:46
Ответы с готовыми решениями:

Написать программу, которая должна включать функции - C++
Задача Написать программу, которая должна включать функции для: - Ввод и вывод данных массива структур, - Выборки информации по...

Написать программу, которая должна отсортировать 5 чисел от меньшего к большему
Написать программу, которая должна отсортировать 5 чисел от меньшего к большему. То есть, она должна отсортировать массив от меньшего к...

Написать программу, которая должна проверять правильность контрольной суммы и выводить отчёт
Текст задачи: "По каналу связи передаётся последовательность положительных целых чисел, все числа не превышают 1000, их количество...

10
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
14.05.2006, 05:18
Например, используя вот эту библиотеку: http://ws.apache.org/axis/java/index.html



Удачи,

Владимир
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
14.05.2006, 05:56  [ТС]
Чёто я толи недогнал, толи это библиотека позволяет создавать веб сервисы. А мне надо простой оконной программой подрудится к уже созданному на php веб сервису.
P.S. Сорри если я чегото недогнал :-)
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
14.05.2006, 18:16
Ты не догнал



Эта библиотека позволяет как создавать web-сервисы, так и использовать их. По сути SOAP - это всего навсего протокол, с которым надо уметь обращаться как на стороне сервера, так и на стороне клиента.



Вот тут написано как использовать Axis на стороне клиента: http://ws.apache.org/axis/java... -axis.html



Для серверной части в Axis еще конечно входит набор утилит, которые позволяют превратить любой Java-класс в Web-сервис и многое другое.



Удачи,

Владимир
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
14.05.2006, 18:48
Использоване Axis на стороне клиента реализовано вообще по принципу "тупо до нехочу". Просто используй WSDL2Java для генерации классов для доступа к web-сервису, а потом используй сгенерированные классы в своем приложении.



Вот здесь чуть более подробно:

http://wiki.apache.org/ws/Fron... YourClient



Счастья вам,

Владимир
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
14.05.2006, 19:24  [ТС]
Чёто я походу дела тугодум :-). Слил библиотеку, подключил. А вот как ей воспользоватся всё никак не догоню. Неможеш пример написать как подключится к внешнему веб сервису. Буду очень блогодарен.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
14.05.2006, 19:50
дай ссылку на сервис, попробую
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
14.05.2006, 21:08  [ТС]
Моего веб сервиса шас нет в инете, но можно протестить например на центробанковском.
Адрес. http://www.cbr.ru/DailyInfoWeb... .asmx?WSDL http://www.cbr.ru/DailyInfoWeb... .asmx?WSDL
метод. EnumValutes(true)
пример подключения на php.
PHP
1
2
3
4
5
<?php
$client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL");
$result = $client->EnumValutes(true); 
echo $result->EnumValutesResult->any;
?>
P.S. возврашает какуюто лабуду, типа справочника кода валют :-)
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
15.05.2006, 02:15
Ну хорошо, выдаю пошаговую стратегию:<OL><LI>Загрузка и установка Axis</LI><UL><LI>Идем на страницу: http://netmirror.org/mirror/apache.org/ws/axis/1_4/ http://netmirror.org/mirror/apache.org/ws/axis/1_4/</LI><LI>Скачиваем файл: axis-bin-1_4.zip</LI><LI>Раскрываем в любую понравившуюся директорию (D:HomeProjectsJavaWSTestaxis-1_4)</LI><LI>Необходимо раздобыть activation.jar и mail.jar</LI><LI>Для activation.jar идем по ссылке http://java.sun.com/products/javabeans/jaf/downloads/ http://java.sun.com/products/javabeans/jaf/downloads/ и сгружаем JavaBeans Activation Framework 1.1</LI><LI>Раскрываем архив jaf-1_1-fr.zip находим там activation.jar и копируем его в папку lib от axis</LI><LI>Для mail.jar идем по ссылке http://java.sun.com/products/javamail/downloads/ http://java.sun.com/products/javamail/downloads/ и сгружаем JavaMail API 1.4</LI><LI>Раскрываем архив javamail-1_4.zip находим там mail.jar и копируем его в папку lib от axis</LI></UL><LI>Генерация классов для доступа к web-сервису</LI><UL><LI>Руководствуясь краткими инструкциями взятыми здесь: http://wiki.apache.org/ws/FrontPage/Axis/WritingYourClient http://wiki.apache.org/ws/FrontPage/Axis/WritingYourClient,
http://wiki.apache.org/ws/FrontPage/Axis/UsingCommandLineTools http://wiki.apache.org/ws/FrontPage/Axis/UsingCommandLineTools</LI><LI>Создаем каталог bin в каталоге Axis и создаем там маленький bat-файл (axiscp.bat):
Code
1
2
3
4
5
6
7
8
9
10
11
@echo off
set cp=..lib
set cp=%cp%;..libaxis.jar
set cp=%cp%;..libcommons-discovery-0.2.jar
set cp=%cp%;..libcommons-logging-1.0.4.jar
set cp=%cp%;..libjaxrpc.jar
set cp=%cp%;..liblog4j-1.2.8.jar
set cp=%cp%;..libsaaj.jar
set cp=%cp%;..libwsdl4j-1.5.1.jar
set cp=%cp%;..libactivation.jar
set cp=%cp%;..libmail.jar
</LI><LI>Запускаем командную строку (Пуск -> Выполнить -> cmd -> Enetr)</LI><LI>Переходим в root каталог от Axis (cd D:HomeProjectsJavaWSTestaxis-1_4)</LI><LI>Выполняем следующие команды:
Code
1
2
axiscp.bat
java -cp %cp% org.apache.axis.wsdl.WSDL2Java http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL
</LI><LI>Если установлен FireWall, то необходимо разрешить java-процессам доступ к ресурсам интернета.</LI><LI>Вся стопка классов генерируются здесь же в подпапку: rucbrweb</LI></UL><LI>Использование сгенерированных классов для доступа к web-сервису</LI><UL><LI>Открываем свой любимый Java-редактор (я взял первый попавшийся из установленных у меня – Eclipse)</LI><LI>Создаем новый проект, например, с названием WSTest</LI><LI>В папку исходников копируем сгенерированные классы включая структуру подкаталогов.</LI><LI>Добавляем в проект все библиотеки Axis за исключением axis-ant.jar</LI><LI>Создаем новый package: ws.test</LI><LI>Создаем новый класс в созданном пакете: WSTestMain</LI><LI>Импортируем классы import ru.cbr.web.*;</LI><LI>Руководствуясь описанием из статьи http://wiki.apache.org/ws/FrontPage/Axis/WritingYourClient http://wiki.apache.org/ws/FrontPage/Axis/WritingYourClient создаем метод main, который будет тестировать web-сервис:</LI></UL></OL>
[code]public static void main(String[] args)
{
try {
DailyInfo dailyInfo = new DailyInfoLocator();

GetCursOnDateResponseGetCursOnDateResult result = dailyInfo.getDailyInfoSoap().getCursOnDa te(
Calendar.getInstance());

MessageElement message = result.get_an
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
15.05.2006, 04:06  [ТС]
Огромное спасибо. Буду разбератся как это работает :-)
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
15.05.2006, 05:16
P.S. полный код файла WSTestMain.java со всеми импортируемыми классами:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package ws.test;
import java.util.Calendar;
import org.apache.axis.message.MessageElement;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ru.cbr.web.*;
public class WSTestMain
{
    public static void main(String[] args)
    {
        try {
            DailyInfo dailyInfo = new DailyInfoLocator();
            
            GetCursOnDateResponseGetCursOnDateResult result = dailyInfo.getDailyInfoSoap().getCursOnDate(
                    Calendar.getInstance());
            
            MessageElement message = result.get_any()[1];
            // System.out.println(message);
            
            NodeList nodes = message.getElementsByTagName("ValuteCursOnDate");
            for (int i = 0; i < nodes.getLength(); i++) {
                Node node = nodes.item(i);
                NodeList values = node.getChildNodes();
                for (int j = 0; j < values.getLength(); j++) {
                    Node value = values.item(j);
                    System.out.print(value.getLocalName() + " = " + value.getFirstChild() + ";");
                }
                System.out.println();
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2006, 05:16
Помогаю со студенческими работами здесь

Написать программу, которая должна сгенерировать массив из 1000000 случайных целых чисел и записать их в файл
Задание. Написать программу, которая должна сгенерировать массив и з 1000000 (один миллион) случайных целых чисел и записать их в файл...

Написать программу, которая должна начислить премию работникам в размере оклада, стаж которых превышает Х лет
Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля - фамилия сотрудника, оклад, стаж работы....

Написать программу, которая должна рисовать круг, в него вписанный пятиугольник и звезду, вписанную в пятиугольник.
Мне нужно написать программу, которая должна рисовать круг, в него вписанный пятиугольник и звезду, вписанную в пятиугольник. Конечно же у...

Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки
Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки таблицы; - ввода и...

Написать функцию, которая должна выдать длину той строки, которая короче
Напишите функцию с двумя строковыми параметрами. Функция должна выдать длину той строки, которая короче.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru