2010-04-19 2 views
0

Мой друг построить веб-сервиса в Java я построить один в .netвеб-сервисов, которые реализуют один и тот же интерфейс

Я хочу, чтобы реализовать тот же интерфейс

то в моей программе изменить web.config указать на тот или другой.

На мой взгляд, это будет сделано путем реализации того же интерфейса. Не знаю, как это будет на самом деле ...

+0

Вы можете проверить WSDL; для действительно простого интерфейса, использующего примитивные типы, вы можете заставить его работать ... – TrueWill

ответ

0

Возможно, самым безопасным способом было бы создание интерфейса из WSDL. Опишите свои службы в документе WSDL, а затем используйте «wsimport -d src WSDL_file» (на Java).

-2

Тонкие различия между веб-службами ASP.NET и Java сделают это сложной задачей.

Альтернативой может быть создание службы adapter перед ними, которая предоставляет один и тот же семантический интерфейс и имеет ссылки на службы.

Эта услуга адаптера может быть сконфигурирована так, чтобы передавать команды либо на Java, либо на .NET, основываясь на том же подходе к изменению web.config. IE:

[WebMethod] 
public int AddTwoNumbers(int numberA, int numberB) 
{ 
    if(useJavaService) 
     return javaService.AddTwoNumbers(numberA, numberB); 
    else 
     return dotnetService.AddTwoNumbers(numberA, numberB); 
} 

Вашего приложение может предназначаться этой услугой обертки, так что с точки зрения вашего приложения вы просто звоните:

int result = theService.AddTwoNumbers(5, 10); 

и ваше приложение не будет знать, если его ударит Java один или .NET.

+0

Как эта служба адаптера делает что-то, что клиентский код не может сделать? Вы делаете одинаковый вызов функции в обоих случаях. Все, что вы сделали, замедляет работу из-за дополнительного раунда обработки на адаптере. – Yuliy

+0

Клиент может ссылаться на AddTwoNumbers во многих местах - скорее, чтобы каждый раз дублировать логин разрешения службы, клиент может сосредоточиться на том, чтобы делать все, а не беспокоиться о базовом сервисе. –

+0

OK хорошо. Поместите это в метод утилиты в клиенте. Не бросайте веб-сервер перед ним! – Yuliy