Что происходит со всеми жестко закодированными URI при перемещении веб-службы? - PullRequest
1 голос
/ 05 мая 2009

Я разрабатываю тестовый WS с JAX-WS, и демонстрационная версия работает нормально, но если я пытаюсь перенести его в производство, в моем коде много раз встречается URL моей тестовой среды. Например:

com.mycompany.testserver.ws.writer.WriterInterface service = new com.mycompany.testserver.ws.writer.WriterInterface();

QName portQName = new QName("http://testserver.mycompany.com/ws/writer.php", "WriterInterfacePort");

String req = "SOME_XML_HERE";

try { // Call Web Service Operation

    Dispatch<Source> sourceDispatch = null;
    sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
    Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
} catch (Exception ex) [
//do stuff here
}

Как лучше всего переносить такое приложение?

Ответы [ 3 ]

2 голосов
/ 05 мая 2009

Считать URL-адрес подключения из файла конфигурации. Возможно, вы также захотите иметь строго типизированный объект конфигурации, который будет кэшировать значение, чтобы его можно было прочитать только один раз. Затем, когда вы перемещаете свое приложение из тестового в производственное, вам нужно только обновить файл конфигурации.

1 голос
/ 05 мая 2009

Наиболее распространенная практика - хранить URL-адреса в конфигурационных файлах, а не в жестком коде, и иметь отдельные конфигурации для тестирования и производства.

Представление брокера интеграции или реестра сервисов, как правило, излишне.

0 голосов
/ 05 мая 2009

Вы действительно должны избегать жесткого кодирования URL-адресов в коде. Существует множество способов избежать этого. Даже если у вас не было доступной функциональности файла конфигурации, вы должны, по крайней мере, хранить эти данные в строке вверху каждого класса, где они объявлены.

Нет необходимости сообщать вам (но я полагаю, что да), что вы сейчас сталкиваетесь с причиной того, почему вы никогда не жестко программируете URL / данные конфигурации.

...