【发布时间】:2012-05-22 22:03:19
【问题描述】:
由于 WS 客户端服务和端口的初始化需要很长时间,我喜欢在启动时将它们初始化一次并重用相同的端口实例。 初始化看起来像这样:
private static RequestContext requestContext = null;
static
{
MyService service = new MyService();
MyPort myPort = service.getMyServicePort();
Map<String, Object> requestContextMap = ((BindingProvider) myPort).getRequestContext();
requestContextMap = ((BindingProvider)myPort).getRequestContext();
requestContextMap.put(BindingProvider.USERNAME_PROPERTY, uName);
requestContextMap.put(BindingProvider.PASSWORD_PROPERTY, pWord);
rc = new RequestContext();
rc.setApplication("test");
rc.setUserId("test");
}
我班上某处的电话:
myPort.someFunctionCall(requestContext, "someValue");
我的问题:这个调用是线程安全的吗?
【问题讨论】:
-
嗨,KHY,感谢您的快速回复。我看到了这个线程。我的问题是,我缺乏任何(官方)声明什么是线程安全的(服务/端口/等)。我的用例也与其他线程不同。强尼
-
这是我在 CXF 网站上找到的答案:cwiki.apache.org/CXF/…
-
嗨,KHY,这似乎回答了我的问题。非常感谢。
-
很高兴您发现它有帮助。我将复制我之前的评论作为答案,以便可以关闭这个问题。
标签: java jax-ws webservice-client java-metro-framework