|
|
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Написала простой SOAP-овский WEB-сервис, продетлоин на WebLogic - сервере. Принимаю на вход ХМЛ с одним тегом - строкой, вы выходе тоже один параметр строковый. В обработчике выполняю REST-запрос к внешнему сервису, получаю информацию и отдаю ее на выход. Нужно просто через HTTP внутри моего сервиса получить некую инфу и выдать ее за свою. Вот сам метод Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. сервис удачно падает с ошибкой: 19.06.2015 11:58:17 com.sun.xml.ws.server.sei.TieHandler createResponse SEVERE: Tried all: 1 addresses, but could not connect over HTTPS to server: dadata.ru port: 443 java.net.ConnectException: Tried all: 1 addresses, but could not connect over HTTPS to server: dadata.ru port: 443 at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:299) at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:363) at weblogic.net.http.HttpsClient.New(HttpsClient.java:518) at weblogic.net.http.HttpsURLConnection.connect(HttpsURLConnection.java:239) at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:398) at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) at ru.alfastrah.dadata.webservice.CallRestServiceDadata.postExample(CallRestServiceDadata.java:54) at ru.alfastrah.dadata.webservice.WebServiceDadata.queryDadata(WebServiceDadata.java:21) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92) at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:95) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:892) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:841) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:804) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:706) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:430) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:640) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:265) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:163) at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:171) at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:708) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146) at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSecurityHelper.java:103) at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:311) at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:336) at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:99) at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServlet.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:221) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3284) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1513) at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Сервис по данному адресу доступен и выполняется в любом браузере с моей машине. Подскажите пож-та, как выполнить HTTP запрос изнутри моего сервиса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 12:20 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Если это полное исключение, то, возможно, weblogic.net.http.HttpsClient кривой клиент, так как он скрыл cause - изначальную причину ошибки. SOAP и REST вообще не одно и то же. Не понимаю зачем вы их смешиваете. Возможно у вас криво составлен запрос и сервер его быстро отрубает. Клиент распознаёт это как ConnectException. DataOutputStream - бесполезный класс. Он вам не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 12:40 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
BlazkowiczSOAP и REST вообще не одно и то же. Не понимаю зачем вы их смешиваете. Возможно у вас криво составлен запрос . Дело в том что наши системы работают через SOAP, а партнеры предоставили только REST-сервис. Соответственно запрос этот написан внешней компанией, но он очень шустро работает в браузере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 13:03 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015Дело в том что наши системы работают через SOAP, а партнеры предоставили только REST-сервис. Ну, это как пихать USB штепсель в mini-USB розетку. И там и там ведь USB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 13:16 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015Соответственно запрос этот написан внешней компанией, но он очень шустро работает в браузере Смотрите дампы HTTP запросов и сравнивайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 13:16 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Может, все-таки использовать javax.net.ssl.HttpsURLConnection, а не weblogic.net.http.SOAPHttpsURLConnection. У вас же запрос идет к обычному REST сервису. И никто наличия SOAP Envelope не ожидает. Через SoapUI получается обратиться к сервису? Как вы через браузер к сервису обращаетесь? Авторизуетесь правильно "Authorization: Token ${API_KEY}" ? Я из трейса поняла, что это сервис от dadata.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 13:36 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Может, еще вот это поможет http://stackoverflow.com/questions/18512009/weblogic-net-http-soaphttpsurlconnection-cannot-be-cast-to-javax-net-ssl-httpsur ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 13:50 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
yelenaЧерез SoapUI получается обратиться к сервису? Да, к сервису обращаюсь, он живой, но выдает fault-тный ответ yelenaКак вы через браузер к сервису обращаетесь? Авторизуетесь правильно "Authorization: Token ${API_KEY}" ? Я из трейса поняла, что это сервис от dadata.ru Да, это дадата, Авторизация есть, просто на форуме ее не выкладывала. Из браузера запрос работает yelenaМожет, все-таки использовать javax.net.ssl.HttpsURLConnection, а не weblogic.net.http.SOAPHttpsURLConnection. У вас же запрос идет к обычному REST сервису. И никто наличия SOAP Envelope не ожидает. Да, как раз начинала с этого, но возникла проблема та, что по ссылке http://stackoverflow.com/questions/18512009/weblogic-net-http-soaphttpsurlconnection-cannot-be-cast-to-javax-net-ssl-httpsur, решила ее несколько неправильно, сейчас попробую то, что предлагают: авторwe are using Weblogic server , we must define "set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true" in the class path inside the Server Domain. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 14:21 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Спасибо, помогло именно использовать javax.net.ssl.HttpsURLConnection и прописать: set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true, в домене в папке BIN в файле setDomainEnv Но теперь другая проблема: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Видимо что-то (прокси, файервол) не пропускает коннект( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 16:33 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015, Может у вас в браузере прописан прокси? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 16:36 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, комп корпоративный, прокси есть, но в браузере запрос то проходит, прокси вроде не мешает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 16:45 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015комп корпоративный, прокси есть, но в браузере запрос то проходит, прокси вроде не мешает "Да, записная книжка у меня тоже есть" (с) Вопрос был не в том есть прокси или нет. Вопрос был в том прописан ли он в браузере. В браузере прописан, а в Java - нет. Ни на какие мысли не наводит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 16:51 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторВопрос был в том прописан ли он в браузере. В браузере прописан, а в Java - нет. Ни на какие мысли не наводит? Use proxy settings from your default browser to connect to the Internet - это в JAVA, в браузере прокси прописан, попробовала в Жаве прописать, как в браузере, но не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 17:13 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015Use proxy settings from your default browser to connect to the Internet - это в JAVA, в браузере прокси прописан, Это не в JAVA, а в Java Plug-in. Вашему WebLogic серверу на этот чекбоксик наплевать. MVS_2015попробовала в Жаве прописать, как в браузере, но не помогло. А вы не в Жаве попробуйте прописать а в WebLogic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 17:16 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
MVS_2015yelenaЧерез SoapUI получается обратиться к сервису? Да, к сервису обращаюсь, он живой, но выдает fault-тный ответ Дело ясное, что дело темное. Если к серверу удается обратиться через SoapUI, значит, в этом клиенте прокси сервер уже прописан. А это клиент, написанный на Java. Значит, как я понимаю, если в свой код добавить Код: java 1. 2. то что-то уже должно с места сдвинуться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 17:46 |
|
||
|
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
|
|||
|---|---|---|---|
|
#18+
BlazkowiczMVS_2015Use proxy settings from your default browser to connect to the Internet - это в JAVA, в браузере прокси прописан, Это не в JAVA, а в Java Plug-in. Вашему WebLogic серверу на этот чекбоксик наплевать. MVS_2015попробовала в Жаве прописать, как в браузере, но не помогло. А вы не в Жаве попробуйте прописать а в WebLogic А где это прописывается - в консоли? в настройках домена (setDomainEnv/startManagedWebLogic/startWebLogic)? или другой вариант?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2015, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38987976&tid=2125276]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
217ms |
get topic data: |
16ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 561ms |

| 0 / 0 |
