1

我正在使用 JAX-WS 开发一个测试 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
}

移动此类应用程序的最佳做法是什么?

4

3 回答 3

2

从配置文件中读取连接 URL。您可能还希望拥有一个强类型配置对象,该对象将缓存该值,以便只需要读取一次。然后,当您将应用程序从测试转移到生产时,您只需要更新配置文件。

于 2009-05-05T11:43:31.837 回答
1

最常见的做法是将 URL 存储在配置文件中,而不是硬编码,并为测试和生产设置单独的配置。

引入集成代理或服务注册中心往往是矫枉过正。

于 2009-05-05T11:43:47.047 回答
0

您确实应该避免将 URL 硬编码到代码中。有多种方法可以避免这种情况。即使您没有可用的配置文件功能,您至少应该将此数据存储在每个声明它的类顶部的字符串中。

无需告诉您(但我想我是)您现在遇到了为什么您从未对 URL / 配置数据进行硬编码的原因。

于 2009-05-05T13:39:20.950 回答