Я пытаюсь преобразовать веб-сервис http в https.Я добавил теги в веб-сервис.
@SecurityDomain(value = "jboss-ssl")
и
@WebContext(contextRoot="/path/one", // already here
urlPattern="/X", // already here
authMethod = "CLIENT-CERT", // added
transportGuarantee = "CONFIDENTIAL") // added
Но когда мой клиент пытается подключиться к https://hostname:80/path/to/ws
, я получаю исключение:
Caused by: java.io.IOException: HTTPS hostname wrong: should be <hostname>
.
(вся вещь показана ниже).Я подозреваю, что это связано с используемым сертификатом.Я думаю, что мне нужно использовать Java Keytool, чтобы решить эту проблему.Если бы кто-то мог проверить для меня, это было бы очень признательно.
javax.xml.soap.SOAPException: java.io.IOException: Could not transmit message
at org.jboss.ws.core.soap.SOAPConnectionImpl.callInternal(SOAPConnectionImpl.java:115)
at org.jboss.ws.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:66)
at com.alcatel.tpapps.common.utils.SOAPClient.execute(SOAPClient.java:146)
at com.alcatel.tpapps.common.utils.SOAPClient.main(SOAPClient.java:233)
Caused by: java.io.IOException: Could not transmit message
at org.jboss.ws.core.client.RemotingConnectionImpl.invoke(RemotingConnectionImpl.java:192)
at org.jboss.ws.core.client.SOAPRemotingConnection.invoke(SOAPRemotingConnection.java:77)
at org.jboss.ws.core.soap.SOAPConnectionImpl.callInternal(SOAPConnectionImpl.java:106)
... 3 more
Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker. HTTPS hostname wrong: should be <hostname>.
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:368)
at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:148)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:141)
at org.jboss.remoting.Client.invoke(Client.java:1858)
at org.jboss.remoting.Client.invoke(Client.java:718)
at org.jboss.ws.core.client.RemotingConnectionImpl.invoke(RemotingConnectionImpl.java:171)
... 5 more
Caused by: java.io.IOException: HTTPS hostname wrong: should be <hostname>
at sun.net.www.protocol.https.HttpsClient.checkURLSpoofing(HttpsClient.java:490)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:415)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:857)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:288)
... 10 more
Обновление 1
Я попробовал следующее, но это не оказало влияния на исключение:
hostname[username:/path/two/path][525]% keytool -genkey -keystore server.keystore -alias hostname
...
...
Обновление 2
На самом деле не уверенто, что я сделал в обновлении 1, было правильным, потому что мне не нужно было указывать имя хоста там ...
обновление 3
Я указал имя хоста в качестве имени псевдонима
и
What is the name of your organizational unit?
[Unknown]: hostname
Но это все равно не решило мою проблему.Есть ли конкретный способ добавить имя хоста?
Я почти уверен, что этот пост решает проблему, однако он слишком загадочный, чтобы его понимать.Вернись к этому.
http://forums.sun.com/thread.jspa?threadID=5315653