"Открыть", веб-сервис, который вызывает другую веб-службу - программирование

"Открыть", веб-сервис, который вызывает другую веб-службу

Я создал приложение Tomcat 7 в Openshift, и я развернул там свои веб-службы. проблема в том, что мой веб-сервис должен вызвать другую услугу. Результаты не отображаются. Я протестировал службу в localhost, и она отлично работала, но не в openshift!

Должен ли я изменить URL-адрес служб на myapp-myDomain.rhcloud.com? или что проблема?

Обновление

Имеет ли это какое-то отношение к переадресации портов, поскольку мое приложение пытается вызвать другую веб-службу, развернутую в tomcat, и одну внешнюю из URL-адреса wsdl url (роль веб-службы клиента), все развернутые в Openshift?

Получаю следующее исключение, которое выглядит как проблема Permission wrt Axis на Openshift.

Полный StackTrace

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

org.apache.axis2.AxisFault: Permission denied
    org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197)
    org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:404)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)
    org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
    org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
    org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
    org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

java.net.BindException: Permission denied
    java.net.PlainSocketImpl.socketBind(Native Method)
    java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    java.net.Socket.bind(Socket.java:631)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:139)
    org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
    org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:621)
    org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193)
    org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:404)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)
    org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
    org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
    org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Простой пример с деталями найден здесь

4b9b3361

Ответ 1

Это может быть связано с проблемой перекрестной политики. Я не уверен. Проверьте URL-адрес ниже. Надеюсь, это поможет.

https://spring.io/guides/gs/rest-service-cors/

Ответ 2

Это проблема разрешения. Вы должны запустить ваш сервер как пользователь root, чтобы открыть порт 80. В противном случае вы получите исключение.

Смотрите привилегированный порт