Я пытаюсь использовать веб-сервис .NET из Java-клиента , созданного в JDeveloper IDE.
У меня есть серверные и клиентские сертификаты. Я успешно вызываю эту службу в SoupUI, просто указав * SSL Keystore = client_cert.pfx * для запроса.
Я добавляю сертификат сервера в хранилище ключей Java с помощью следующей команды:
keytool -import -alias client_alias -file client_cert.cer
-keystore cacerts
Когда я пытаюсь запустить мой автономный клиент Java , я получаю
javax.net.ssl.SSLKeyException: FATAL Alert: BAD_CERTIFICATE - Получен поврежденный или неиспользуемый сертификат.
Вот трассировка стека:
jdk160_21 \ bin \ javaw.exe -client
-agentlib: jdwp = transport = dt_socket, server = y, address = 49995 -cathpath C: \ JDeveloper \ 777 \ Application1.adf; C: \ JDeveloper \ 777 \ Application1 \ Client \ classes; C: \ Oracle \ Middleware \ wlserver_10 .3 \ сервер \ Lib \ weblogic.jar; C: \ Oracle \ Middleware \ oracle_common \ модулей \ oracle.jrf_11.1.1 \ jrf.jar; C: \ Oracle \ \ Промежуточных модулей \ com.oracle.toplink_1.0.0.0_11 -1-1-4-0.jar; C: \ Oracle \ Middleware \ Modules \ org.eclipse.persistence_1.0.0.0_2-1.jar; C: \ Oracle \ Middleware \ модули \ com.bea.core.antlr .runtime_2.7.7.jar; C: \ Oracle \ Middleware \ oracle_common \ Modules \ oracle.toplink_11.1.1 \ javax.persistence_2.0_preview.jar
-Djavax.net.ssl.trustStore = C: \ Oracle \ Middleware \ wlserver_10.3 \ сервер \ Lib \ DemoTrust.jks
-Dhttp.proxyHost = 127.0.0.1 -Dhttp.proxyPort = 8888 -Dhttp.nonProxyHosts = <- loopback> | localhost | localhost.localdomain | 127.0.0.1 | :: 1-Dhttps.proxyHost = 127.0.0.1
-Dhttps.proxyPort = 8888 -Dhttps.nonProxyHosts = <- loopback> | localhost | localhost.localdomain | 127.0.0.1 | :: 1 |
client.proxy.WSHttpBinding_IQueryServiceClient Прослушивание для транспорта
dt_socket по адресу: 49995 Отладчик подключен к локальному процессу.
<27042299 SSL3 / TLS MAC>
<27042299 получил рукопожатие>
(Неизвестный источник) в
com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages (Неизвестно
Источник) в
com.certicom.tls.record.MessageInterpreter.interpretContent (Неизвестно
Источник) в
com.certicom.tls.record.MessageInterpreter.decryptMessage (Неизвестно
Источник) на com.certicom.tls.record.ReadHandler.processRecord (Неизвестно
Источник) на com.certicom.tls.record.ReadHandler.readRecord (Неизвестно
Источник) в
com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete (Неизвестно
Источник) в
com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake (Неизвестно
Источник) на com.certicom.tls.record.WriteHandler.write (Неизвестный источник)
в com.certicom.io.OutputSSLIOStreamWrapper.write (Неизвестный источник) в
java.io.BufferedOutputStream.flushBuffer (BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush (BufferedOutputStream.java:123)
в java.io.FilterOutputStream.flush (FilterOutputStream.java:123) в
weblogic.net.http.HttpURLConnection.writeRequests (HttpURLConnection.java:162)
в
weblogic.net.http.HttpURLConnection.getInputStream (HttpURLConnection.java:376)
в
weblogic.net.http.SOAPHttpsURLConnection.getInputStream (SOAPHttpsURLConnection.java:37)
в
weblogic.net.http.HttpURLConnection.getHeaderField (HttpURLConnection.java:720)
в
weblogic.net.http.HttpURLConnection.getResponseCode (HttpURLConnection.java:980)
в
com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage (HttpClientTransport.java:215)
в
com.sun.xml.ws.transport.http.client.HttpTransportPipe.process (HttpTransportPipe.java:204)
в
com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest (HttpTransportPipe.java:124)
в
com.sun.xml.ws.transport.DeferredTransportPipe.processRequest (DeferredTransportPipe.java:121)
на com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:866) наcom.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:815) в com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:778) в com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:680) на com.sun.xml.ws.client.Stub.process (Stub.java:272) на com.sun.xml.ws.client.sei.SEIStub.doProcess (SEIStub.java:153) на com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:115) на com.sun.xml.ws.client.sei.SyncMethodHand.вызвать (SyncMethodHandler.java:95) в com.sun.xml.ws.client.sei.SEIStub.invoke (SEIStub.java:136) в $ Proxy34.getListForDropdown (Неизвестный источник) в sun.reflect.NativeMethodAccessorImpl.invoke0 (Method) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lankeho.j.jj.jj.jjweblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke (ClientInstanceInvocationHandler.java:84) по адресу $ Proxy35.getListForDropdown (неизвестный источник) по адресуent.proxy.WSHttpBinding_IQueryServiceClient.main (WSHttpBinding_IQueryServiceClient.java:66)
javax.xml.получено.в com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage (HttpClientTransport.java:218) в com.sun.xml.ws.transport.http.client.HttpTransportPipe.tava.tcess) H4в com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest (HttpTransportPipe.java:124) в com.sun.xml.ws.transport.DeferredTransportPipe.processRequest (DeferredTransportPipe.java.sun1 в at1).xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:866) на com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:815) на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:778) на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:680) на com.sun.xml.ws.client.Stub.process (Stub.java:272) в com.sun.xml.ws.client.sei.SEIStub.doProcess (SEIStub.java:153) в com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler)..java: 115) на com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:95) на com.sun.xml.ws.client.sei.SEIStub.invoke (SEIStub.java:136) в $ Proxy34.getListForDСвернутьlang.reflect.Method.(WSHttpBinding_IQueryServiceClient.java:66) Причина: javax.net.ssl.SSLKeyException: FATAL Alert: BAD_CERTIFICATE - Получен поврежденный или неиспользуемый сертификат.в com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException (неизвестный источник) в com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent (неизвестный источник) в com.certicom.tls.record.handshake.HandshakeHlerlerв com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages (Неизвестный источник) в com.certicom.tls.record.MessageInterpreter.interpretContent (Неизвестный источник) в com.certicom.tls.record.MessageInterptessMage (Unknown Unryntess)на com.certicom.tls.record.ReadHandler.processRecord (неизвестный источник) на com.certicom.tls.record.ReadHandler.readRecord (неизвестный источник) на com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete (неизвестно)Источник) на com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake (неизвестный источник) на com.certicom.tls.record.WriteHandler.write (неизвестный источник) на com.certicom.io.OutputSSLIOStreamWrapper.write (неизвестный источник) на java.io.BufferedOutputStream.flushBuffer (BufferedOutputStream.java:65) в java.io.BufferedOutputStream.flush (BufferedOutputStream.java:123) в java.io.FilterOutputStream.flush (FilterOutputStream.java:123hh) на веб-сайте.HttpURLConnection.writeRequests (HttpURLConnection.java:162) по адресу weblogic.net.http.HttpURLConnection.getInputStream (HttpURLConnection.java:376) по адресу weblogic.net.http.SOAPHttpsURLConnection.getInon.pur.http:.HttpURLConnection.getResponseCode (HttpURLConnection.java:965) по адресу com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage (HttpClientTransport * * * * 10 * 10 * 10 10 ... 10 22) 10 2024 и более
Пожалуйста, помогите! Спасибо за любой совет, который вы можете иметь.