我正在使用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
}
移动此类应用的最佳做法是什么?
答案 0 :(得分:2)
从配置文件中读取连接URL。您可能还希望拥有一个强类型配置对象,该对象将缓存该值,以便只需读取一次。然后,当您将应用程序从测试移动到生产时,您只需要更新配置文件。
答案 1 :(得分:1)
最常见的做法是将URL存储在配置文件中而不是硬编码中,并且具有用于测试和生产的单独配置。
引入集成代理或服务注册表往往过度。
答案 2 :(得分:0)
你应该真的避免将URL硬编码到代码中。有多种方法可以避免这种情况。即使您没有可用的配置文件功能,您至少应该将此数据存储在其声明的每个类顶部的字符串中。
无需告诉你(但我想我是)你现在遇到了为什么你从不硬编码URL /配置数据的原因。