我在Mule 2.2中配置CXF传输时遇到一个小问题,即使用HTTPS / SSL调用暴露的服务上的WS方法。使用普通HTTP调用相同的方法可以正常工作。我在这个问题上搜索了很多,并在以下链接中找到了以下链接:
http://www.mulesoft.org/documentation/display/MULE2CB/Using+HTTPS+with+CXF
这很有帮助,但仍有一些我不太了解的事情:
CXF端点配置如下:,即它位于cxf命名空间中。 cxf命名空间是否与https命名空间有任何关系,用于配置链接中描述的内容?
更令人困惑的是,骡子的东西是我从以前的开发人员手中接过的东西,据说它原样通过SSL工作但是在Mule配置文件中我找不到任何https的痕迹:连接器配置。从链接中的信息我得到的印象是它是强制性的,至少是“服务器密钥存储”和“信任存储”,如:
<https:connector name="myHttpsConnector">
<https:tls-key-store path="serverKeystore" keyPassword="mulepassword"
storePassword="mulepassword"/>
<https:tls-server path="trustStore" storePassword="mulepassword"/>
</https:connector>
当我尝试连接到启用HTTPS的WS时,我在Mule日志中得到的内容如下所示,它与SSL密钥明显相关,但我错过了最后一篇文章以使其全部落实到位。对此事的任何帮助和评论都会受到很大的关注。
/奥拉
********************************************************************************
Message : Failed to invoke lifecycle phase "initialise" on object:
HttpsConnector{this=a7769e, started=false, initialised=false,
name='connector.https.0', disposed=false, numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[https],
serviceOverrides=null}
Type : org.mule.api.lifecycle.LifecycleException
Code : MULE_ERROR-70228
JavaDoc : http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/LifecycleException.html
********************************************************************************
Exception stack is:
1. The Key password cannot be null (java.lang.IllegalArgumentException)
org.mule.api.security.tls.TlsConfiguration:290 (null)
2. Failed to invoke lifecycle phase "initialise" on object:
HttpsConnector{this=a7769e, started=false, initialised=false,
name='connector.https.0', disposed=false, numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[https],
serviceOverrides=null} (org.mule.api.lifecycle.LifecycleException)
org.mule.lifecycle.DefaultLifecyclePhase:277 (http://www.mulesource.org/docs/site
/current2/apidocs/org/mule/api/lifecycle/LifecycleException.html)
********************************************************************************
Root Exception stack trace:
java.lang.IllegalArgumentException: The Key password cannot be null
at
org.mule.api.security.tls.TlsConfiguration.assertNotNull(TlsConfiguration.java:290)
at org.mule.api.security.tls.TlsConfiguration.validate(TlsConfiguration.java:208)
...
..
答案 0 :(得分:1)
如果没有Mule https:连接器,则可能意味着外部服务正在执行SSL部分(如JBoss服务器)。我自己也没有经验。
但如果一切都是通过Mule完成的,您还需要设置客户端属性(如您提到的链接中所述):
<https:tls-client path="clientKeystore" storePassword="mulepassword" />
回顾各种钥匙店(这可能令人困惑):
但是您收到的错误消息表明缺少密钥密码。如果您已正确设置密钥存储区和https连接器,则不应该发生这种情况。