首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Apache cxf soap通过代理建立隧道

无法使用Apache cxf soap通过代理建立隧道
EN

Stack Overflow用户
提问于 2019-05-16 17:28:28
回答 1查看 905关注 0票数 1

我正在尝试使用Apache CXF通过HTTPS代理上的SOAP进行调用。

这是一个运行在Cloud Foundry上的Java应用程序。代理作为Cloud Foundry服务提供。Rest调用是通过RestTemplateCustomizer中的配置来使用的。

我尝试了以下方法(我尝试了所有推荐的语句,但都没有成功):

代码语言:javascript
复制
    PortType port = cs.getServicePort();
    assert port instanceof BindingProvider;
    BindingProvider bp = (BindingProvider) port;
    bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, serviceURL);
    //bp.getRequestContext().put("https.proxyHost", endpoint.getHost());
    //bp.getRequestContext().put("https.proxyPort", endpoint.getPort());

    final Client client = ClientProxy.getClient(port);
    final HTTPConduit http = (HTTPConduit) client.getConduit();

    http.getClient().setProxyServer(endpoint.getHost());
    http.getClient().setProxyServerPort(endpoint.getPort());
    http.getProxyAuthorization().setUserName(configProperties.getUser());
    http.getProxyAuthorization().setPassword(configProperties.getPassword());

    //http.getProxyAuthorization().setAuthorizationType("Basic");
    //http.getClient().setProxyServerType(ProxyServerType.SOCKS);

    http.getAuthorization().setUserName(configProperties.getUser());
    http.getAuthorization().setPassword(configProperties.getPassword());
    //http.getAuthorization().setAuthorizationType("Basic");

Stacktrace看起来像这样:

2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0输出javax.xml.ws.WebServiceException:无法发送消息。2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.jaxws.JaxWsClientProxy.mapException(JaxWsClientProxy.java:183) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at com.sun.proxy.$Proxy288.getConfigurations(Unknown Source)

2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT原因: java.io.IOException: IOException调用https://service.com/services/Service/v1:无法通过proxy隧道。Proxy返回"HTTP/1.1 407 Proxy Authentication Required“2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1402) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.transport。http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1386) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:673) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT在org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0在org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531) 2019-05-16T11:11:53.76+0200 APP/PROC /PROC/WEB/0 OUT at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:440) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313) 2019-05-16T11:11:org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140) 2019-05-16T11:11:53.76+0200 APP/PROC/WEB/0 OUT ...省略131个常用框架

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 20:33:06

找到了解决方案。我必须设置以下标志:

代码语言:javascript
复制
-Djdk.http.auth.tunneling.disabledSchemes=""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56165261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档