简介: 我有一个 SAAJ 客户端,它通过 HTTPS 调用远程网络服务。客户端和服务器都需要通过证书进行身份验证。在 IDE 中运行 JUnit 测试时,我可以成功调用该服务,但在 JBoss 中运行时无法连接。
密钥库/信任库配置详细信息:在IDE和JBoss中,我通过系统属性设置密钥库和信任库:javax.net.ssl.keyStore
,javax.net.ssl.keyStorePassword
,javax.net.ssl.trustStore
,javax.net.ssl.trustStorePassword
日志配置:在JBoss中,我已经通过系统属性< code>javax.net.debug=SSL启用了SSL调试日志。我还通过logging.properties文件启用了CXF日志记录。
JBoss SSL 日志记录输出摘要:
JBoss CXF日志记录输出摘要:
>
CXF日志记录显示POST通过管道null.http-CONDUCT发送到服务
CXF日志显示,该管道“配置为纯http”,没有“信任决策器”,也没有“身份验证供应商”(我不完全确定这一切意味着什么,但听起来很相关)
堆栈跟踪:这是我得到的实际堆栈跟踪
Caused by: javax.xml.soap.SOAPException: JBWS024004: SOAP message could not be sent
at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:124)
at my.client.soap.MySAAJClient.invoke(MySAAJClient.java:37) [my-client-0.0.1-SNAPSHOT.jar:]
... 17 more
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '403: Forbidden' when communicating with https://remote.service.url.here/
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1542)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:120)
... 19 more
其他信息
我的尝试:我一直专注于CXF,因为在我的IDE中执行时,这一切都运行良好,其中CXF不起作用,而且CXF日志中说管道已“配置为纯http”,这让我感到害怕。我尝试过包含<code>jboss CXF。xml,jbossws和cxf。xml
,或cxf。xml
我的WAR中的配置文件,包括密钥库和信任库配置。这不起作用,我甚至无法判断CXF是否正在查看这些文件。
我的问题(更新)
>
我有没有办法指示 JBoss(也许通过 jboss-部署-结构.xml?)使用不同的 SAAJ 实现进行部署?
你对我应该研究的其他事情有什么想法吗?
更新1
我相信我已经确认 JBoss-CXF 集成是问题所在。我能够通过修改文件{JBOSS_HOME}/模块/系统/层/基/组织/jboss/ws/saaj-impl/main/module.xml来删除JBoss的SOAP连接Impl。我注释掉了模块依赖关系
进行此更改后,我的应用程序能够毫无问题地连接到远程服务。
虽然这表明 JBoss-CXF 集成是这个问题,但我不能以这种方式修改部署环境。我需要确定另一种解决方案。
我会选择系统属性(或者至少知道系统的配置),因为它们可能会覆盖您在部署中指定的任何内容。
在部署环境中使用的是什么版本的cxf?您有关于在部署环境中配置cxf的任何信息吗?从留档(http://cxf.apache.org/docs/ws-security.html)中,我可以看到您需要为cxf 2.0. x或更早版本配置WSS4J拦截器,这样您就可以检查在您的部署环境中是否可以这样做。
我的入口pod无法通过IP访问两个集群IP服务。有很多其他集群IP服务它没有到达困难。包括在同一个命名空间中。另一个pod到达服务没有问题(我在同一个命名空间中尝试了默认后端,一切正常)。 我应该去哪里?以下是我的实际服务,它无法到达第一个,但可以到达第二个: 我的入口吊舱:
我在一个网站上工作,这是用来重置LDAP用户的密码。我无法通过SSL与服务器建立连接。我尝试了各种代码和身份验证类型。 这是服务器上用于与网站所在的LDAP连接的内容。我还用两个ssl端口测试了它。636和3269。 我在网站上使用以下代码 获取异常“LDAP服务器不可用”。我尝试了389端口和没有ssl的代码,它工作得很好。 请让我知道哪里出了问题。
问题内容: 我正在尝试使用mysql_connect从PHP通过SSL连接到远程MySQL服务器: 并得到最严重的错误: 我在my.cnf中添加了以下参数: 所以我可以使用终端从终端成功连接到远程mysql 因此,到mysql服务器的连接正常工作,据我了解,问题出在php / mysql合作中。可能我缺少一些参数。 不幸的是我不能使用mysqli lib,因为pdo_mysql有太多可用的适配器。
我一直在寻找一个解决办法,但没有找到一个有效的解决办法。 我已经在我的MacBook中使用brew安装了postgres(),并且我目前正在使用brew服务运行它(将postgres显示为正在运行的服务)。但是,当我尝试运行时,我得到以下错误。 PSQL:无法连接到服务器:没有这样的文件或目录是本地运行并接受Unix域套接字“/tmp/.s.pgsql.5432”上的连接的服务器吗? 有人已经解决
我跟踪了服务,当它们部署在localhost中(通过eclipse)时,它们工作得很好。但在部署为单独的docker容器时无法调用rest服务。 我是一个新的docker并且参加了教程来了解这是如何工作的。 祖尔阿皮门路 用户服务 尤里卡注册服务信息 注意:“DE4396A354EA”是“用户服务”的容器id 请提供关于如何解决此问题的指导,并提供任何链接,我可以在这些链接中获得关于在docker