У меня есть небольшая проблема с настройкой транспорта CXF в Mule 2.2 для вызова WS-метода на открытой службе с использованием HTTPS/SSL. Вызов того же метода с использованием простого HTTP работает нормально. Я много искал по этому вопросу и нашел среди прочего следующую ссылку:
http://www.mulesoft.org/documentation/display/MULE2CB/Использование+HTTPS+with+CXF
это полезно, но есть еще несколько вещей, которые я не совсем понимаю:
Конечная точка CXF настроена так: , т. е. находится в пространстве имен cxf. Имеет ли пространство имен cxf какое-либо отношение к пространству имен https для настройки, как описано в ссылке?
Что еще больше сбивает с толку, так это то, что материал Mule — это то, что я перенял у предыдущего разработчика, и он предположительно работает через SSL как есть, но в конфигурационных файлах Mule я не могу найти никаких следов конфигурации https:connector. Из информации в ссылке у меня сложилось впечатление, что это обязательно, по крайней мере, «хранилище ключей сервера» и «хранилище доверия», например:
<https:connector name="myHttpsConnector"> <https:tls-key-store path="serverKeystore" keyPassword="mulepassword" storePassword="mulepassword"/> <https:tls-server path="trustStore" storePassword="mulepassword"/> </https:connector>
То, что я получаю в журнале Mule при попытке подключиться к WS с поддержкой HTTPS, показано ниже, и оно явно связано с ключом 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)
...
..