Java 同时调用JAX-WS客户端时出现问题

Java 同时调用JAX-WS客户端时出现问题,java,web-services,jax-ws,Java,Web Services,Jax Ws,我有两个独立的JAX-WS(Metro)客户端,它们使用同一服务器/端口公开的两个web服务- 说www.test.com:1234/SomeService1和www.test.com:1234/SomeService2 两者都受到基本身份验证的保护 BindingProvider bindingProvider = (BindingProvider)port; bindingProvider.getRequestContext().put(BindingProvider.END

我有两个独立的JAX-WS(Metro)客户端,它们使用同一服务器/端口公开的两个web服务-
说www.test.com:1234/SomeService1和www.test.com:1234/SomeService2

两者都受到基本身份验证的保护

    BindingProvider bindingProvider = (BindingProvider)port;
    bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpoint);
    bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
    bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);
单独呼叫任一服务时,一切正常。
但是,当两个服务在时间上彼此接近的情况下被调用时,我从其中一个调用中接收到HTTP 401,并且似乎没有用户名/密码随请求一起发送。
另一个调用成功,没有问题

值得注意的是,当两个服务不在同一个服务器/端口上公开时,一切正常。(例如www.test.com:1234和www.test.com:4321)

我无法解释这种行为——有什么建议吗

编辑:附加信息
我们在spring上运行,但没有使用它的任何DI功能(这是一个非常古老的遗留应用程序,在某个时候被强加在spring上)


Web服务提供商向我保证他们能够进行并发处理。

听起来像是线程安全问题。存根和与之相关的大多数构造(BindingProviders e.t.c.)都不是线程安全的。除此之外,您还应该研究您正在运行的JAX-WS impl的bug。我也这么认为,但它是两个完全独立的绑定提供程序。他们是否有可能在JAX-WS框架中共享实现细节?您应该提供关于您的执行上下文的更多细节-您是否运行任何DI框架(spring、cdi等)?您是否控制web服务,以保证web服务支持并发请求处理?