博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+CXF配置HTTP代理访问Internet
阅读量:6845 次
发布时间:2019-06-26

本文共 2041 字,大约阅读时间需要 6 分钟。

hot3.png

一个典型的CXF Webservice项目部署到正式环境后,服务器不能访问外网,只能通过代理访问外网,找了很多资料,刚开始想法是不用Spring的配置文件,直接用java编程访问webservice。在java的Http请求中使用代理的方法如下:

String authentication="username:password";//用户+”:”+密码        String encodedLogin= new BASE64Encoder().encode(authentication.getBytes());        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("IP", PORT));                HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(proxy );        conn.setRequestProperty("Proxy-Authorization", " Basic " + encodedLogin);

使用JaxWsProxyFactoryBean创建client

System.setProperty("http.proxySet", "true");        System.setProperty("http.proxyHost", "IP");        System.setProperty("http.proxyPort", "PORT");                JaxWsProxyFactoryBean f = new JaxWsProxyFactoryBean();        f.setAddress("THE URL OF WEBSERVICE");        f.setServiceClass(IService.class);        IService client = (IService) f.create();

可以使用代理,但是用户名密码是不能像第一种方法中那样设置到HttpConnection里面去的。

又在网上找了很多资料,终于找到了一个配置的方法。

         
             
                                
                    
***
                    
                    
***
                                 
            
            
          
    

<http-conf:conduit name="*.http-conduit"这里的name为”*.http-conduit”时,将会对所有的client类启用这个代理,如果要配置某个client类使用代理,可以这么写

    ...  

{}里面的内容是webservice的wsdl的<wsdl:definitions name="serviceName" targetNamespace=""的targetNamespace属性

{}之后.之前的内容是

<wsdl:port name="BasicHttpBinding_IService" binding="i0:BasicHttpBinding_IService">

<soap:address location="the address" />

</wsdl:port>

的name属性。

上述wsdl对应的配置是

<http-conf:conduit name="{http://hafeyang.blogjava.net}BasicHttpBinding_IService.http-conduit> ... </http-conf:conduit>

总结: 

1、<http:conduit>标签是对cxf的客户端,即<jaxws:client>产生影响,对<jaxws:endpoint>没有影响 
2、<http:conduit name="*.http-conduit">会对所有的cxf客户端都生效,可以通过name属性,来指定生效范围

参考资料

转载于:https://my.oschina.net/u/1788620/blog/338770

你可能感兴趣的文章
韩忠恒:解读Power System智慧运算基础
查看>>
RabbitMQ之死信队列
查看>>
来自Reddit的声音:网络人员对SDN说“不”
查看>>
贵阳“小步快跑”搭上云计算的早班车
查看>>
一款高端精密的DDoS定制工具包
查看>>
IEDM大会 :TSMC和IBM公开7-nm技术细节
查看>>
CloudCC:什么样的CRM才能帮企业挖到更多客源?
查看>>
网络安全人才出现结构性短缺 实战能力超学历成企业用人首要标准
查看>>
在Docker上建立多节点的Hadoop集群
查看>>
宝德HPC助力科研机构打造全新计算平台
查看>>
配置少量固态硬盘即能大幅提升性能
查看>>
国内车载信息安全市场 东软靠技术创新的行动力独树一帜
查看>>
威胁预警通告 JavaScript引擎MuJS爆出堆栈溢出漏洞 请尽快升级最新版本
查看>>
中国银行携手IBM成功建成智能化网点
查看>>
再谈大型数据中心的运维工作
查看>>
报告显示电话监控技术处于发展浪潮
查看>>
安全研究人员发现可以利用推特控制僵尸网络
查看>>
三种在Linux上创建或扩展交换分区的简单方法
查看>>
LMD Tool:Linux恶意软件检测工具
查看>>
铜缆宽带接入即将走向末路?
查看>>