powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирование одинаковых веб-сервисов
25 сообщений из 52, страница 1 из 3
Дублирование одинаковых веб-сервисов
    #39837618
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть кучка SOAP веб-сервсиов, с одинаковым wsdl (т.е. отличаются только адреса этих сервисов).
Задача сделать клиент для каждого сервиса (т.е. задеплоить на веб-сервер несколько клиентов, каждый из которых будет работать со своим сервисом).

Пока делаю так:
1. Один общий проект, в котором генерим клиент на базе wsdl средствами ide (нетбинз)
2. В одном из классов (из тех, что сгенерированны по wsdl) перед тем как сбилдить, руками прописываем нужный адрес сервиса.
3. Билдим, даем варнику нужное имя и деплоим на сервер.
4. Повторяем 2-3 по числу пар клиент-сервер

Но по-моему, это корявый подход.

Поэтому вопрос .
Какова зе бест практис в такой ситуации?
Когда штук 20 веб-сервисов с одинаковым интерфейсом и для каждого надо сделать отдельный клиент и задеплоить на одном сервере.

Например хотелось бы доставать линк на требуемый сервис по настройкам в БД (вместе с другими настройками клиента) по имени приложения например. То есть перед сборкой в конфиге прописываем параметр типа "имя приложения" и дальше по нему из БД тащим все настройки клиента. Пока начал курить спринг с его @Configuration, может там что путное найдется.

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

Наверняка есть варианты автоматизированной сборки скриптами, пока не смотрел.

В общем как по-человечьи сейчас делают? )
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837623
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если спринг то там есть профили.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837624
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS В одном из классов (из тех, что сгенерированны по wsdl) перед тем как сбилдить, руками прописываем нужный адрес сервиса.

Я вот это не понял "ВААЩЕ".
1.Вы сгенерировали классы на основе wsdl ...он как я понял одинаков...разные только url
ну так вперёд

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
mport javax.xml.namespace.QName;
import javax.xml.ws.Service;

private Webservice get_client(String url){
        Service service = Service.create(
                        new URL(url+"/webserviceService/webservice?wsdl"),
                        new QName("urn:HolldataIntf-IXmldata", "webserviceService"));
        Webservice websoap=service.getPort(Webservice.class);
return websoap;
//"/webserviceService/webservice?wsdl" Это уже Ваши pointы
//"urn:HolldataIntf-IXmldata", "webserviceService" Ваши xml namespacы
//Webservice.class Это Ваш сгенерированный

}
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837626
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та даже профили не нужны, в спринге проперти можной туевой хучей способов передать извне в рантайме. Главное чтоб клиент умел этот адрес подхватывать - именно в эту сторону и нужно копать
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837631
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, спасибо всем откликнувшимся. Тогда буду пробовать дальше.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837657
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSОк, спасибо всем откликнувшимся. Тогда буду пробовать дальше.

Смотрите в сторону Factory Method дезайн патерн.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837665
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSЕсть кучка SOAP веб-сервсиов, с одинаковым wsdl (т.е. отличаются только адреса этих сервисов).
Задача сделать клиент для каждого сервиса (т.е. задеплоить на веб-сервер несколько клиентов, каждый из которых будет работать со своим сервисом).
Не совсем понятно что ты собираешся делать. Деплой - это вообще другое. Это не про разработку.
Почитай про всякие там Jenkins, TeamCity, Octopus. Задачи девопса должны решаться девопскими инструментами.

Распиливание задачи на 20 или на 200 веб-сервисов - это не инженерная а больше организационная задача.
Если ты будешь делать сам - то делай как угодно. Но в качестве метрики эффективности бери количество
мышко-кликов. Чем их меньше тем твоя автоматизация лучше.

Spring конфигурируется дохрена способами и там нет идейно-правильного или вообще неправильного.
Профили - это тоже гуд. Можно юзать.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837688
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSКогда штук 20 веб-сервисов с одинаковым интерфейсом и для каждого надо сделать отдельный клиент и задеплоить на одном сервере.
Перед ними сделать ОДИН веб сервис. Они же одинаковы.
Например, есть 20 одинаковых mail.ru с одинаковым API
дайПочту()
Так?
irbis_all прав. Снаружи вызов одного ВЕБ ПРИЛОЖЕНИЯ, а в коде перебирай рандомно свои адреса. Только смысл то какой?
Это балансировщик получается)).
Ну или ты понятия не имеешь что такое SOAP.
JDSНапример хотелось бы доставать линк на требуемый сервис по настройкам в БД (вместе с другими настройками клиента) по имени приложения например.
Посмотри балансировщик ngnix
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837691
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al
Код: java
1.
2.
Service service = Service.create(
                        new URL(url+"/webserviceService/webservice?wsdl"),

я так понял, у него они разные и 20 штук
Код: java
1.
2.
3.
4.
Service service = Service.create(new URL(url1)) 
Service service = Service.create(new URL(url2)) 
... 
Service service = Service.create(new URL(url20)) 
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837692
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp , балансировщик нужен например в кластере, у меня не кластер, а именно разные SOAP клиент-сервер, но с одинаковым интерфейсом. Как заметил myton , задача действительно ближе к девопс видимо, но пытаюсь еще решить средствами из другой задачи собственно разработки )
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837694
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSбалансировщик нужен например в кластереда. Ты так и описал задачу.
Кластер это несколько ОДИНАКОВЫХ СЕРВИСОВ.
Прочти вики что такое кластер.

JDSзадача действительно ближе к девопс видимо,ты внятно её не описал. Мы тут все и гадаем.
Тебе даже код пример дали.
И вообще принято каждому ответить, раз вопрос задал.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837695
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, все методы 20ти сервисов одинаковы. А данные получаемые?
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837697
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSдевопсну и девопс тебе скажет что нужно 1 веб приложение и деплоить нужно одно.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837700
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpirbis_al
Код: java
1.
2.
Service service = Service.create(
                        new URL(url+"/webserviceService/webservice?wsdl"),

я так понял, у него они разные и 20 штук
Код: java
1.
2.
3.
4.
Service service = Service.create(new URL(url1)) 
Service service = Service.create(new URL(url2)) 
... 
Service service = Service.create(new URL(url20)) 



Да нет же ...функция возвращает уже готового клиента
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Soapclient1=get_client(url1)
 Soapclient2=get_client(url2)
 Soapclient3=get_client(url3)

Soapclient1.myMethod1(params);
.....
А скорее всего в цикле
for (url in arrayurls){
Soapclient=get_client(url);
Soapclient.Mymethod1(params)
}
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837706
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,
Да.
Поэтому смысл постановки такого изврата и задачи у меня полностью теряется.
irbis_al
Код: java
1.
А скорее всего в цикле


Рандомно)))
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837713
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, пока все понятно, буду ковырять дальше, спасибо большое.
PetroNotC Sharp , в общем у меня не кластер в любом случае. Условно, сеть офисов и с каждым обмен своими сообщениями, но формат одинаковый.
Да можно сделать одно приложение и раскидывать по разным точкам, можно сделать приложение в неск потоков, но (пока) рассматривается вариант именно каждому офису свое клиентское приложение.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837720
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSУсловно, сеть офисов и с каждым обмен своими сообщениями, но формат одинаковый.допустим.

JDSДа можно сделать одно приложение и раскидывать по разным точкам, можно сделать приложение в неск потоков, но (пока) рассматривается вариант именно каждому офису свое клиентское приложение.чудак человек.
Десктоп?
Тогда прчему нельзя сказать что каждому офису ОДИН И ТОТ ЖЕ КЛИЕНТпод названием " а ля эксель"?
Веб?
Тогда расшифруй "каждому офису своё приложение"?
Жесть какая то.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837731
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp , не десктоп. Сервисы. Да можно запилить одно приложение а-ля ексель и запустить их 20 штук с передачей параметров (с каким офисом общаться в частности). Можно сделать одно многопоточное, но пока делаем от простого по количеству точек, в каждом варианте свои плюсы минусы. Просто как минимум каждое приложение еще общается на вход и выход с другими сервисами, при этом внутри сообщений нет как таковой диспетчеризации (не от меня зависит), те сопоставление идет только на уровне адресов.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837735
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSМожно сделать одно многопоточноеэкземпляр это не поток

JDSПросто как минимум каждое приложение еще общается на вход и выход с другими сервисами, при этом внутри сообщений нет как таковой диспетчеризации (не от меня зависит), те сопоставление идет только на уровне адресов.
Микросервисы замутили, а нужность обосновать забыли.
Тему можно закрывать.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837737
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,
Хотя бы термин Фасад/корпоративный API изучи. Там нет страшных слов потоки. Может пригодится.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837741
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp , почему-то упорно полагаете, что я только вчера с Луны), кластеры почитать, экземпляр не поток и тд)
По ответам ребят вроде бы все понятно, смотрю дальше. Поэтому да, тему можно закрыть.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837742
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,
Я сужу чисто по данному топик а не о вас.
Много слов про потоки, а они вообще не при чем.
Задачу не обрисовали сразу.
Решение не озвучено.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837745
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,
Грубо говоря вы хотите вместо
Код: java
1.
2.
@WebServlet("/servis1")
public class ServletServis1


или
Код: java
1.
2.
@WebServlet("/servis-all")
public class ServletServisAll



сделать 20 штук на одном томкате servis1.war,.... servis20.war.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837759
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно мы собирали 2 артифакта. Один - толстый джар (fat-jar) который содержал весь проект с потрахами
и другой артифакт - zip или tar архив который содержал сет конфигов под целевую конфигурацию.

Конфиги могут быть чем угодно. Yaml, json, properties. Могут быть даже Groovy классами. Важно чтобы они вставлялись
в приложение как обойма в пистолет. +Надо оставить хоть несколько properties для местных админов чтоб они могли
вбить туда ключики к амазону или какие-то критичные пароли которые нельзя хардкодить.
...
Рейтинг: 0 / 0
Дублирование одинаковых веб-сервисов
    #39837761
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, да, все правильно поняли.
Но это каждое отдельное приложение еще должно автоматом стартовать и в фоне выполнять и другую работу, это пока повесил на WebListener, который при инициализации запускает эту работу в отдельном потоке, поэтому упомянул про них.
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирование одинаковых веб-сервисов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]