powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / REST-запрос выполнить внутри SOAP-webServicа на WebLogic
17 сообщений из 17, страница 1 из 1
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987747
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!



Написала простой 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.
//import javax.net.ssl.HttpsURLConnection;

import weblogic.net.http.SOAPHttpsURLConnection;


		public String postExample(String url) throws IOException {
	        String encoding = "*****";

	        SOAPHttpsURLConnection conn;
	        conn = (SOAPHttpsURLConnection) new URL(url).openConnection();
	        conn.setDoOutput(true);
	        conn.setRequestProperty("Authorization", encoding);
	        conn.setRequestProperty("Content-Type", "application/xml");
	        conn.setRequestProperty("Accept", "application/xml");
	        conn.setRequestMethod("POST");

	        String urlParameters = "<req>" +
	                               "  <query>7785966325</query>" +
	                               "</req>";
	        DataOutputStream wr = new DataOutputStream(
	                conn.getOutputStream ());
	        wr.writeBytes (urlParameters);
	        wr.flush ();
	        wr.close ();

	        
	        String html = readStreamToString(conn.getInputStream(), "UTF-8");

	         return html;
	    }



сервис удачно падает с ошибкой:

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 запрос изнутри моего сервиса?
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987801
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это полное исключение, то, возможно, weblogic.net.http.HttpsClient кривой клиент, так как он скрыл cause - изначальную причину ошибки.
SOAP и REST вообще не одно и то же. Не понимаю зачем вы их смешиваете.
Возможно у вас криво составлен запрос и сервер его быстро отрубает. Клиент распознаёт это как ConnectException.
DataOutputStream - бесполезный класс. Он вам не нужен.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987852
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczSOAP и REST вообще не одно и то же. Не понимаю зачем вы их смешиваете.
Возможно у вас криво составлен запрос .

Дело в том что наши системы работают через SOAP, а партнеры предоставили только REST-сервис.

Соответственно запрос этот написан внешней компанией, но он очень шустро работает в браузере
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987878
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVS_2015Дело в том что наши системы работают через SOAP, а партнеры предоставили только REST-сервис.

Ну, это как пихать USB штепсель в mini-USB розетку. И там и там ведь USB.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVS_2015Соответственно запрос этот написан внешней компанией, но он очень шустро работает в браузере
Смотрите дампы HTTP запросов и сравнивайте.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987937
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может, все-таки использовать javax.net.ssl.HttpsURLConnection, а не weblogic.net.http.SOAPHttpsURLConnection.
У вас же запрос идет к обычному REST сервису. И никто наличия SOAP Envelope не ожидает.

Через SoapUI получается обратиться к сервису?
Как вы через браузер к сервису обращаетесь?
Авторизуетесь правильно "Authorization: Token ${API_KEY}" ?

Я из трейса поняла, что это сервис от dadata.ru
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38987976
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988063
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988319
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, помогло именно использовать 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:50:10 com.sun.xml.ws.server.sei.TieHandler createResponse
SEVERE: Connection refused: connect
java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:529)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564)
	at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
	at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
	at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
	at ru.alfastrah.dadata.webservice.CallRestServiceDadata.postExample(CallRestServiceDadata.java:65)
	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)
	



Видимо что-то (прокси, файервол) не пропускает коннект(
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988325
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVS_2015,

Может у вас в браузере прописан прокси?
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988333
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

комп корпоративный, прокси есть, но в браузере запрос то проходит, прокси вроде не мешает
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988342
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVS_2015комп корпоративный, прокси есть, но в браузере запрос то проходит, прокси вроде не мешает
"Да, записная книжка у меня тоже есть" (с)
Вопрос был не в том есть прокси или нет. Вопрос был в том прописан ли он в браузере. В браузере прописан, а в Java - нет. Ни на какие мысли не наводит?
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988364
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

авторВопрос был в том прописан ли он в браузере. В браузере прописан, а в Java - нет. Ни на какие мысли не наводит?

Use proxy settings from your default browser to connect to the Internet - это в JAVA, в браузере прокси прописан,

попробовала в Жаве прописать, как в браузере, но не помогло.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988366
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVS_2015Use proxy settings from your default browser to connect to the Internet - это в JAVA, в браузере прокси прописан,

Это не в JAVA, а в Java Plug-in. Вашему WebLogic серверу на этот чекбоксик наплевать.

MVS_2015попробовала в Жаве прописать, как в браузере, но не помогло.
А вы не в Жаве попробуйте прописать а в WebLogic
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988391
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MVS_2015yelenaЧерез SoapUI получается обратиться к сервису?

Да, к сервису обращаюсь, он живой, но выдает fault-тный ответ


Дело ясное, что дело темное.
Если к серверу удается обратиться через SoapUI, значит, в этом клиенте прокси сервер уже прописан. А это клиент, написанный на Java.
Значит, как я понимаю, если в свой код добавить
Код: java
1.
2.
System.setProperty("https.proxyHost", proxyHost);  
System.setProperty("https.proxyPort", proxyPort); 


то что-то уже должно с места сдвинуться.
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988399
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)? или другой вариант?:)
...
Рейтинг: 0 / 0
REST-запрос выполнить внутри SOAP-webServicа на WebLogic
    #38988428
MVS_2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", proxyPort);

то что-то уже должно с места сдвинуться.

Спасибо! Это помогло.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / REST-запрос выполнить внутри SOAP-webServicа на WebLogic
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]