cxf配置http:conduit
本次项目要通过https方式,调用外部的web service,所以在cxf的配置文件里进行配置如下:
<http:conduit name="*.http-conduit"> <http:tlsClientParameters disableCNCheck="true" secureSocketProtocol="SSL"> <!-- 对方的证书 --> <sec:trustManagers> <sec:keyStore type="JKS" password="changeit" file="/opt/inoc/wfm/certificates/remedy.keystore" /> </sec:trustManagers> <!-- 己方的证书 --> <sec:keyManagers keyPassword="changeit"> <sec:keyStore type="JKS" password="changeit" file="/opt/inoc/wfm/certificates/wfm.keystore" /> </sec:keyManagers> <sec:cipherSuitesFilter> <sec:include>.*_EXPORT_.*</sec:include> <sec:include>.*_EXPORT1024_.*</sec:include> <sec:include>.*_WITH_DES_.*</sec:include> <sec:include>.*_WITH_NULL_.*</sec:include> <sec:exclude>.*_DH_anon_.*</sec:exclude> </sec:cipherSuitesFilter> </http:tlsClientParameters> </http:conduit>
结果发现影响了系统原有的web service客户端的功能
查看日志,异常信息如下:
2012-05-07 15:34:59,407 ERROR [STDERR] javax.xml.ws.soap.SOAPFaultException: Could not send Message.
2012-05-07 15:34:59,408 ERROR [STDERR] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
2012-05-07 15:34:59,409 ERROR [STDERR] at $Proxy146.invoke(Unknown Source)
2012-05-07 15:34:59,409 ERROR [STDERR] at com.huawei.nsm.framework.service.engine.impl.WsInvoker.invoke(WsInvoker.java:104)
2012-05-07 15:34:59,410 ERROR [STDERR] at com.huawei.nsm.framework.service.engine.ServiceEngine.invoke(ServiceEngine.java:69)
2012-05-07 15:34:59,411 ERROR [STDERR] at com.huawei.nsm.framework.service.ServiceAccessor.invoke(ServiceAccessor.java:49)
2012-05-07 15:34:59,412 ERROR [STDERR] at com.huawei.wfm.workforce.task.sch.service.calculatepriority.CalculatePriorityService.calculate(CalculatePriorityService.java:57)
2012-05-07 15:34:59,412 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2012-05-07 15:34:59,413 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
2012-05-07 15:34:59,414 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2012-05-07 15:34:59,415 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
2012-05-07 15:34:59,415 ERROR [STDERR] at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
2012-05-07 15:34:59,416 ERROR [STDERR] at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:162)
2012-05-07 15:34:59,417 ERROR [STDERR] at com.huawei.nsm.framework.utils.ClassUtil.invokeMethod(ClassUtil.java:45)
2012-05-07 15:34:59,418 ERROR [STDERR] at com.huawei.nsm.datasource.service.impl.DatasourceSaveServiceImpl.initSchedulePriority(DatasourceSaveServiceImpl.java:917)
2012-05-07 15:34:59,419 ERROR [STDERR] at com.huawei.nsm.workflow.service.AfterTicketSubmitedAsyncService$AfterTicketSubmitedAsyncRunnable.initSchedulePriority(AfterTicketSubmitedAsyncService.java:267)
2012-05-07 15:34:59,419 ERROR [STDERR] at com.huawei.nsm.workflow.service.AfterTicketSubmitedAsyncService$AfterTicketSubmitedAsyncRunnable.run(AfterTicketSubmitedAsyncService.java:183)
2012-05-07 15:34:59,420 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2012-05-07 15:34:59,421 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2012-05-07 15:34:59,422 ERROR [STDERR] at java.lang.Thread.run(Thread.java:662)
2012-05-07 15:34:59,422 ERROR [STDERR] Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
2012-05-07 15:34:59,423 ERROR [STDERR] at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)
2012-05-07 15:34:59,424 ERROR [STDERR] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
2012-05-07 15:34:59,425 ERROR [STDERR] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:449)
2012-05-07 15:34:59,426 ERROR [STDERR] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
2012-05-07 15:34:59,426 ERROR [STDERR] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:231)
2012-05-07 15:34:59,427 ERROR [STDERR] at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
2012-05-07 15:34:59,428 ERROR [STDERR] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:117)
2012-05-07 15:34:59,428 ERROR [STDERR] ... 18 more
2012-05-07 15:34:59,429 ERROR [STDERR] Caused by: java.io.IOException: Illegal Protocol http for HTTPS URLConnection Factory.
2012-05-07 15:34:59,430 ERROR [STDERR] at org.apache.cxf.transport.https.HttpsURLConnectionFactory.createConnection(HttpsURLConnectionFactory.java:126)
2012-05-07 15:34:59,431 ERROR [STDERR] at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:484)
2012-05-07 15:34:59,431 ERROR [STDERR] at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
2012-05-07 15:34:59,432 ERROR [STDERR] ... 24 more
原来系统原有的web service客户端,走的http协议,但是配置文件里配置了
<http:conduit name="*.http-conduit">
以上配置会对所有的cxf客户端都生效,所以报异常
将这段配置改成:
<http:conduit name="https://10.78.8.172:443/.*">
仅针对目标https地址的web service客户端进行配置,对原有的web service客户端就不会造成影响了
总结:
1、<http:conduit>标签是对cxf的客户端,即<jaxws:client>产生影响,对<jaxws:endpoint>没有影响
2、<http:conduit name="*.http-conduit">会对所有的cxf客户端都生效,可以通过name属性,来指定生效范围
cxf配置http:conduit相关推荐
- CXF配置,ant文件说明及运行,运行cxf中带的项目
安装CXF时需要Tomcat,ant,并设置以下环境变量: JAVA_HOME: C:\Program Files (x86)\Java\jdk1.6.0_25 CXF_HOME: ...
- WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单
现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService ...
- spring+cxf 开发webService(主要是记录遇到spring bean注入不进来的解决方法)
这里不介绍原理,只是记录自己spring+cxf的开发过程和遇到的问题 场景:第三方公司需要调用我们的业务系统,以xml报文的形式传递数据,之后我们解析报文存储到我们数据库生成业务单据: WebSer ...
- idea启动webservice_idea使用springboot的webservice基于cxf
SpringBoot整合CXF实例: 服务端构建 org.apache.cxf cxf-spring-boot-starter-jaxws 3.2.5 /*** 作者信息实体 *@authoroKon ...
- WebService学习笔记---CXF入门
2019独角兽企业重金招聘Python工程师标准>>> 一.准备 软件环境: JDK1.8, Eclipse JEE 4.4, Maven-3.2.5, Spring-4, CXF- ...
- java cxf 双向通讯_CXF 在spring boot 2 发布多个服务
0. 问题来源 之前配置cxf服务端都是在spring 3以下,后来使用spring mvc 还都是基于xml的配置文件模式,在springboot模式下,实现起来更为简单了.此次记录下spring ...
- SpringBoot2 整合 CXF 服务端和客户端
文章目录 一.CXF服务端 1. 导入依赖 2. 创建service接口 3. 接口实现类 4. cxf配置类 5. 查看wsdl结果 二.CXF客户端 2.1. 客户端 2.2. 断点调试 2.3. ...
- [转] WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单
以下文章来自 http://www.blogjava.net/jacally/articles/186655.html 现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了 ...
- Spring集成CXF发布WebService并在客户端调用
Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...
- 使用 CXF 开发 SOAP 服务
转自其它网页,用来记下学习. 今天我们将视角集中在 REST 上,它是继 SOAP 以后,另一种广泛使用的 Web 服务.与 SOAP 不同,REST 并没有 WSDL 的概念,也没有叫做" ...
最新文章
- Spring基于注解的AOP配置
- EXPRESS.JS再出发
- ddm模型公式_简单判断目前行情——从股利贴现模型切入
- Python HTMLCalendar类| 带实例的formatyear()方法
- 选课 topsort
- virtio-fs: A Shared File System for Virtual Machines
- 超多种类的报表模板,填上数据就能用,全拿走!
- 初级程序员软考重难点知识整理(持续更新)
- 深入浅出之WPF基础教程
- 四阶段法——城市交通需求预测
- springboot 接入 cachecloud redis 实践
- macbook 查看本机ip地址
- Word 用宏命令实现锁定页眉页脚的两种方式
- 【那些年学过的计算机基础】--计算机发展史(图片版)
- 被修饰成单栋的倾斜摄影处理思路
- PAT 甲级 A1010 Radix (25 分)
- ESP8266开发之旅 阿里云生活物联网平台篇② 使用云智能App,配置自己的App,无需开发
- 视频编解码-----理论基础(3)
- 【RST笔记6】scheduler
- 贪心算法之圣诞老人的礼物