- 浏览: 1846656 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (665)
- 闲话 (17)
- ruby (1)
- javascript (40)
- linux (7)
- android (22)
- 开发过程 (11)
- 哥也读读源代码 (13)
- JVM (1)
- ant (2)
- Hibernate (3)
- jboss (3)
- web service (17)
- https (4)
- java基础 (17)
- spring (7)
- servlet (3)
- 杂记 (39)
- struts2 (10)
- logback (4)
- 多线程 (2)
- 系统诊断 (9)
- UI (4)
- json (2)
- Java EE (7)
- eclipse相关 (4)
- JMS (1)
- maven (19)
- 版本管理 (7)
- sso (1)
- ci (1)
- 设计 (18)
- 戒烟 (4)
- http (9)
- 计划 (4)
- HTML5 (3)
- chrome extensions (5)
- tomcat源码阅读 (4)
- httpd (5)
- MongoDB (3)
- node (2)
最新评论
-
levin_china:
勾选了,还是找不到
用spring annotation声明的bean,当打包在jar中时,无法被扫描到 -
GGGGeek:
我用的maven-3.5.0,还没有遇到这种情况,使用jar ...
用spring annotation声明的bean,当打包在jar中时,无法被扫描到 -
GGGGeek:
受益匪浅,从组织项目结构,到技术细节,讲的很到位,只是博主不再 ...
一个多maven项目聚合的实例 -
Aaron-Joe-William:
<?xml version="1.0" ...
hibernate逆向工程 -
li272355201:
http://archive.apache.org/dist/ ...
tomcat源码阅读(一)——环境搭建
本次项目要通过https方式,调用外部的web service,所以在cxf的配置文件里进行配置如下:
结果发现影响了系统原有的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协议,但是配置文件里配置了
以上配置会对所有的cxf客户端都生效,所以报异常
将这段配置改成:
仅针对目标https地址的web service客户端进行配置,对原有的web service客户端就不会造成影响了
总结:
1、<http:conduit>标签是对cxf的客户端,即<jaxws:client>产生影响,对<jaxws:endpoint>没有影响
2、<http:conduit name="*.http-conduit">会对所有的cxf客户端都生效,可以通过name属性,来指定生效范围
<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属性,来指定生效范围
发表评论
-
XML-RPC与web service
2013-06-05 12:44 2150前段时间公司的办公环 ... -
cxf集成spring,精简版
2012-08-15 17:40 2986上次总结了spring集成cxf的方法,不过有些地方说得不清楚 ... -
替换证书,造成bad_certificate
2012-05-14 21:47 5370系统调用外部的web service,走https方式,今天测 ... -
cxf生成endpoint,使用soap1.1和soap1.2
2012-04-25 23:31 3120开发了一个web service服务,客户居然不认,查看客户发 ... -
cxf配置方式实现日志和https请求
2012-04-21 01:21 7874这篇博客介绍一下怎么通过配置方式配置https和cxf的日志功 ... -
一次艰难的web service对接开发
2012-04-19 23:10 3744这次的需求是将我们的系统与一个客户系统对接,对接的方式是通过w ... -
根据已有的wsdl,开发web service的服务端和客户端
2012-04-11 23:13 18181折腾了好长时间,今天终于把这次web service对接的需求 ... -
用cxf生成的方式,开发web service应用
2012-04-09 23:08 9847这次开发web service对接,用的是cxf2.0.13 ... -
cxf和spring集成的一些事
2012-03-30 20:31 6426环境: cxf-2.1.3,jdk6,jboss7.0.2,s ... -
解决cxf的jar包冲突
2012-03-28 20:23 15941本次做web service开发,遇到了一些问题,最终解决了, ... -
用soapUI调试web service
2012-03-27 21:00 3031用soapUI调试web service是很方便的,可以省掉自 ... -
对web service和cxf的个人理解
2012-02-29 23:59 1856个人理解很粗浅,只是谈谈感受,希望能抛砖引玉。就从本次项目的实 ... -
用cxf发布和调用web service
2012-02-29 23:03 18051最近我们的系统需要和一个第三方系统对接,对接的方式是通过web ... -
cxf和spring mvc的集成
2012-02-29 22:27 17818Spring MVC是通过DispatcherServlet来 ... -
我个人理解的什么是web service
2012-01-05 20:26 1830有一些乱七八糟的想法,还不成章法,先记录下来,以后再回头看看 ... -
关于B/S和C/S的想法,兼谈web service
2011-08-24 20:31 3191最近做的这个项目,是 ...
相关推荐
在"apache-cxf-2.4.6.zip"压缩包内,你会找到CXF的库文件、文档、示例代码和配置文件等。通过解压并导入到你的项目中,你可以开始利用这些组件构建和部署你的Web服务。不过,值得注意的是,由于这是较早的版本,可能...
<http:conduit name="{http://cxf.apache.org/transports/http/configuration}*.http-conduit"> <http:client Authorization="Basic realm='My Realm'"/> </http:conduit> ``` 这段配置将所有CXF HTTP服务的请求都...
5. **cxf-rt-transports-http-2.7.12.jar**: HTTP传输模块,负责处理HTTP/S协议的通信,使得CXF能够通过HTTP和HTTPS进行Web服务调用。 6. **cxf-rt-databinding-aegis-2.7.12.jar**: Aegis数据绑定模块,提供了一种...
cxf配置的详情信息说明,与springMVC的集成,以及相关文档配置
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。CXF这个名字是“CXF = XFire + XSB”,其中XFire是早期的项目,而XSB代表XML Web Services Bus。这个版本,"apache-cxf-2.4.0...
- `<http:conduit>` 定义了一个 HTTP 连接器,其中 `<http:tlsClientParameters>` 设置了 TLS 客户端参数,包括禁用 CN 检查以及信任管理器的配置。 - `<jaxws:client>` 定义了一个 Web Service 客户端,指定了服务...
Apache CXF是一个开源的Java框架,它允许开发者构建和消费Web服务,支持多种协议如SOAP、RESTful HTTP以及WS-*规范。 【描述】提到的“CXF视频:1、使用CXF实现简单的HelloWorld”,意味着这个教学视频将详细介绍...
- CXF特定配置:可能还会有如`cxf-servlet.xml`这样的配置文件,用于设置CXF的拦截器、行为和故障处理器等。 3. 运行流程: - 服务器启动时,Spring容器加载配置文件并创建服务实现类的实例。 - `jaxws:endpoint...
在上述配置中,`<jaxws:endpoint>`元素定义了服务的实现类和端点地址,而`<cxf:bus>`元素中的`<cxf:features>`部分可以添加额外的功能,如日志记录。 ### 4. 运行与测试 完成配置后,启动应用服务器,CXF服务就会...
在上面的配置中,`<cxf:features>`元素启用了JSON支持,`<cxf:jsr311/>`则支持JAX-RS标准,使得CXF可以处理RESTful请求。`<jaxws:endpoint>`定义了服务的实现类和访问地址。 然后,创建一个Java类(如`...
你可以配置`<cxf:bus>`元素下的`<cxf:features>`或`<cxf:properties>`标签来控制日志级别和实现。 - 例如,添加`<cxf:property key="org.apache.cxf.logging.FrontendLoggerClass" value="org.apache.cxf.common....
通过Spring配置,我们可以轻松地声明CXF服务端点,并且利用Spring的IoC容器来管理服务实例,这样可以实现服务的松耦合和可测试性。 2. **CXF_Spring源码分析** 在`CXFSpring`目录中,可能包含了CXF与Spring整合的...
在本文中,我们将详细介绍如何安装和配置Apache CXF 2.2.10,并将其添加到系统的环境变量中。 首先,了解Apache CXF的基本概念至关重要。它是一个用于创建Web服务的工具,支持多种协议和标准,如SOAP、RESTful HTTP...
总的来说,"cxf配置swagger2"涉及到的步骤包括:添加依赖、创建Swagger配置类、配置Spring Boot应用扫描、以及在CXF服务中注册Swagger2 Feature。通过这些步骤,我们可以为CXF RESTful服务生成漂亮的文档并提供交互...
以下是配置 CXF 环境的基本步骤: 1. **下载 Apache CXF**:从官方下载页面获取最新版本的 CXF 二进制包,例如 `apache-cxf-2.1.3`。 2. **解压 CXF**:将下载的压缩包解压到一个适当的目录,如 `D:/opensource/...
CXF的主要功能是提供一个灵活的服务框架,支持多种协议和服务标准,如SOAP、RESTful HTTP、XML、JSON等。在3.1.0版本中,该框架已经相当成熟,为开发者提供了丰富的功能和良好的社区支持。 首先,CXF的jar文件是...
</cxf:features> </cxf:bus> <bean id="myService" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="address" value="http://localhost:8080/myService"/> ``` 3. 创建Web服务:...
</cxf:features> </cxf:bus> <jaxws:endpoint id="helloWorldServiceEndpoint" implementor="#helloWorldService" address="/HelloWorld"/> ``` 6. **部署与运行**:将配置好的CXF应用打包成WAR文件,...
SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验 ...通过本实验,我们可以学习到Spring Boot的自动配置和依赖管理功能、Mybatis的数据库操作功能和CXF的WebService开发功能。