java - 在集群 OpenText CS/AS 服务器环境上调用用户验证时出错

标签 java web-services opentext

我有一个集群 OpenText Content Server 10.5 Update 2015-09 安装以及一个在 Windows 2012R2 上使用 Microsoft Cluster 运行的集群存档服务器。

集群模式是主动/被动。

配置如下:

MS 服务器集群:响应以 .99 结尾的地址

  • 节点 1:OTCS 应用程序 ON 响应以 .47 结尾的 vip 地址
  • 节点 2:OTCS 应用关闭

MS 服务器集群:响应以 .98 结尾的地址

  • 节点 1:OTAS 应用程序 ON 响应以 .48 结尾的 vip 地址
  • 节点 2:OTAS 应用关闭

我有一个调用 OT Java Web 服务的应用程序配置为直接指向集群地址,而不是单个服务器。

我遵循的步骤是:

  1. 首先对安装在 AS 服务器上的 OTDS 进行身份验证,利用使用 otdsws/services/Authentication wsdl 构建的客户端。这会为用户返回一个 OTDSSO token 。
  2. 使用 ValidateUser 方法和 OTDSSO 作为参数对 CS 进行用户验证,由 cws/Authentication.svc wsdl
  3. 构建

问题是: 当应用程序启动时,它可以使用 WS 与 CS 服务器正确通信,但是当集群切换到另一个节点时,为了调用 ValidateUser 方法而构建的 url 对应于 MS 集群 vip (.99) 而不是 OTCS 应用程序 vip (. 47).

只要这些应用程序在不同的节点上,我就会收到以下错误:

Could not access server. No connection could be made because the target machine actively refused it 172.30.136.99:2099 at OpenText.Livelink.Service.Core.ExceptionUtil.handleException(Exception ex) at OpenText.Livelink.Service.Core.Authentication.ValidateUser(String capToken) at OpenText.Livelink.Service.Core.Authentication_WCF.ValidateUser(ValidateUserRequest request) at SyncInvokeValidateUser(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) OpenText.Livelink.Service.Core.ServiceException

我使用 SoapUI 执行了同样的测试,得到了同样的错误。 我想知道为什么调用被路由到集群应用程序 vip 而不是 OTCS 应用程序 vip。

2015-12-15 更新

还按照@Matthew Barben 的建议验证了安全参数配置设置,但没有成功。 似乎默认允许每个IP调用OTCS系统,实际上从帮助页面读取:

Content Server Client Hosts

The Content Server Client Hosts field contains the IP addresses of servers from which requests are to be accepted. By default, the field is blank, and all client connections are accepted.

最佳答案

检查已部署的 CWS Web 服务的 web.xml(Tomcat 端)或 web.config(IIS 端)文件。在第一行检查 livelink.host 值并修改它以反射(reflect)您的系统配置

?xml version="1.0" encoding="utf-8"?> <configuration>   <appSettings>
    <add key="livelink.host" value="yourContentServerHost.yourdomain.com" />
    <add key="livelink.port" value="2099" />

这个参数处理web服务和CS之间的连接

重新启动网络服务并测试您的自定义应用。

关于java - 在集群 OpenText CS/AS 服务器环境上调用用户验证时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224887/

相关文章:

.net - 如何仅使用物理 wsdl 文件生成服务引用

documentum - 如何清理 Documentum 呈现队列?

java - 如何使用 JAXWSProxyHandler 传递 SOAP header

Java 正确的方法将对象转换/转换为 Double

java - Collections.sort 是否保持相等元素的顺序?

java - B b 和 A<B> b 之间的区别

java - 奇怪的 ForkJoinPool 行为

java - 从 Java 应用程序使用 Sharepoint Office 365 Web 服务

java - 必须了解 header http ://docs. oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd 检查失败:安全性