首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
OSCHINA 小程序 ——
关注技术领域的头条文章
聚合全网技术文章,根据你的阅读喜好进行个性推荐
登录
注册
Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
选框架犹如选媳妇,选来选去,最后我还是选了“丑媳妇(CXF)”,为什么是它?因为 CXF 是 Apache 旗下的一款非常优秀的 WS 开源框架,具备轻量级的特性,而且能无缝整合到 Spring 中。 其实 CXF 是两个开源框架的整合,它们分别是:[Celtix][1] 与 [XFire][2],前者是一款 ESB 框架,后者是一款 WS 框架。话说早在 2007...
作者:
黄勇
Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
x
xingms1988
2017/08/22 17:53
你好,我按照你的配置做下来,tomcate发布也没报错,但是最终访问的时候就是报404.能否帮忙解决呢
回复
举报
CmdSmith
2017/01/16 10:18
引用来自“weir2016”的评论
<jaxws:client id="helloService"
serviceClass="demo.ws.soap_spring_cxf.HelloService"
address="http://localhost:8080/ws/soap/hello"/>
我想知道,在客户端这样写demo.ws.soap_spring_cxf.HelloService 从哪里来 是不是也要WSDL 打客户端 jar 包,放在客户端才可以
这个解决了吗,我也是有这个疑问,我公司是用的动态代理客户端。
回复
举报
weir2016
2016/10/18 10:44
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Everget
2016/05/22 19:58
引用来自“Sheamus”的评论
@黄勇
大神,我按照你的步骤一步一步写的,为什么最后报404错误呢?而且我还导入你的Demo,也是不行?求解?多谢多谢!
spring-mvc.xml缺少一行 “”
回复
举报
Everget
2016/05/22 19:57
大神,spring-mvc.xml文件中缺一行
“<bean id="helloWorldImpl" class="demo.ws.soap_spring_cxf.HelloServiceImpl" />”
回复
举报
Sheamus
2016/02/02 11:13
@黄勇
大神,我按照你的步骤一步一步写的,为什么最后报404错误呢?而且我还导入你的Demo,也是不行?求解?多谢多谢!
回复
举报
云
云谷子
2016/01/21 12:17
你好楼主,看到你的博客收获非常大,但是就如楼上所问我也遇到同样的问题,代码配置都是一样的,为什么访问wsdl的时候 必须得输入项目名称才行 麻烦楼主抽空回答下 多谢啦
回复
举报
y
yongxu16
2015/11/28 22:06
引用来自“叫悟空的猴子”的评论
请教楼主,为什么我按照 3. 在 Web 容器中使用 Spring + CXF 发布 WS 做的时候,访问ws服务的地址和你的不一样呢。你直接访问了http://localhost:8080/ws,而我需要加上项目名。
而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
引用来自“happycode”的评论
我试了,是正常的
我的也是, 必须得输入项目名称才行, 怎么实现去掉项目名称??
回复
举报
y
yongxu16
2015/11/27 14:35
你好, 我想问下 客户端是另一个项目的时候 方案5中客户端代码里的HelloService 类相关信息哪里得到的啊?
回复
举报
银河缘木
2015/08/07 09:53
很不错收藏了
回复
举报
黄勇
2015/02/05 21:14
引用来自“shao373157995”的评论
使用 RI 发布 WS 这种方式好像有问题 吧
web.xml中的配置漏了~~
可以看我发布的源码,在第四篇最后放出来了:)
回复
举报
星辰努力努力在努力
2015/02/05 15:36
使用 RI 发布 WS 这种方式好像有问题 吧
web.xml中的配置漏了~~
回复
举报
aspboy
2014/11/02 10:00
非常不错,太详细了.
回复
举报
happycode
2014/10/15 22:19
引用来自“叫悟空的猴子”的评论
请教楼主,为什么我按照 3. 在 Web 容器中使用 Spring + CXF 发布 WS 做的时候,访问ws服务的地址和你的不一样呢。你直接访问了http://localhost:8080/ws,而我需要加上项目名。
而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
我试了,是正常的
回复
举报
boyart
2014/09/14 14:08
@黄勇
不是说jdk1.6已经集成了JAX-WS,可以直接发布webservice了吗?为什么在tomcat中发布webservice还需要引入RI?如果只用jdk+tomcat的话怎么发布webservice呢?
回复
举报
Liuzh_533
2014/08/19 13:28
当不依赖服务器端时,接口的实现类必须在@WebService中加上表空间,否则会报异常:
org.apache.cxf.common.i18n.UncheckedException: No operation was found with the name {http://impl.sample.webservice.xxxx.com/}say.
需要在注解上增加:
targetNamespace="http://dao.cxf.ws.com/"
回复
举报
Liuzh_533
2014/08/19 13:16
正好需要用到。。勇哥
回复
举报
maosi
2014/07/19 23:22
请问下通过spring客户端的方式是不是必须要接口的存在,能不能通过动态代理的方式实现?
回复
举报
叫悟空的猴子
2014/07/17 11:16
请教楼主,为什么我按照 3. 在 Web 容器中使用 Spring + CXF 发布 WS 做的时候,访问ws服务的地址和你的不一样呢。你直接访问了http://localhost:8080/ws,而我需要加上项目名。
而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
回复
举报
叫悟空的猴子
2014/07/14 17:44
引用来自“叫悟空的猴子”的评论
请问楼主,从http://cxf.apache.org/download.html下载下来的不是jar包,而是一个maven项目,而尝试导入Eclipse时报错,通过项目中的building.txt介绍的,使用mvn -Pfastinstall,everything也报错,怎么破?
引用来自“黄勇”的评论
先明确一件事情,你是打算下载 CXF 的源码吧?如果是,那么可以直接通过 Maven 工程来导入 Eclipse。如果你是想下载 CXF 的程序包,下载这份文件就行了 apache-cxf-3.0.0.zip,里面自带了 CXF 相关的 jar 包。
啊,osc居然没有提醒我有回复,今天才看到。我没看到还有个src和非src的区别,经你提醒已经找到。谢谢。
回复
举报
黄勇
2014/07/11 17:11
引用来自“叫悟空的猴子”的评论
请问楼主,从http://cxf.apache.org/download.html下载下来的不是jar包,而是一个maven项目,而尝试导入Eclipse时报错,通过项目中的building.txt介绍的,使用mvn -Pfastinstall,everything也报错,怎么破?
先明确一件事情,你是打算下载 CXF 的源码吧?如果是,那么可以直接通过 Maven 工程来导入 Eclipse。如果你是想下载 CXF 的程序包,下载这份文件就行了 apache-cxf-3.0.0.zip,里面自带了 CXF 相关的 jar 包。
回复
举报
叫悟空的猴子
2014/07/11 16:23
请问楼主,从http://cxf.apache.org/download.html下载下来的不是jar包,而是一个maven项目,而尝试导入Eclipse时报错,通过项目中的building.txt介绍的,使用mvn -Pfastinstall,everything也报错,怎么破?
回复
举报
黄勇
2014/07/08 11:20
引用来自“小松鼠”的评论
WEB框架已到了泛滥成灾的地步。
手误吧?WS 框架
回复
举报
小
小松鼠
2014/07/08 10:32
WEB框架已到了泛滥成灾的地步。
回复
举报
严海
2014/07/07 09:37
回复
举报
程序猿付显
2014/07/05 13:44
不知大神测试过客户端第二、三种当传递的是javabean时的场景没!我测试环境:服务器端是xfire,客户端是第三种方案,但是服务器接收到的javabean属性值都是空的,纠结了一周了,还望赐教!
回复
举报
阿信sxq
2014/07/04 10:03
不错,学习了
回复
举报
不死鸟哇
2014/07/03 17:47
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
p
paul_youqi
2014/07/03 14:06
期待!
回复
举报
ray_wang
2014/07/03 14:01
非常感谢分享
回复
举报
黄勇
2014/07/03 12:15
引用来自“不死鸟_”的评论
勇哥怎么知道那么多的啊?
其实我就知道这么一点,不知道的还有很多。
回复
举报
黄勇
2014/07/03 12:13
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Dead_knight
2014/07/03 11:33
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
不死鸟哇
2014/07/03 10:36
勇哥怎么知道那么多的啊?
回复
举报
Aaron74
2014/07/03 10:23
终于等到大神更新博客了。。。不容易呀
回复
举报
Kent_Chen
2014/07/03 09:33
跟进
回复
举报
黄勇
2014/07/02 23:11
漏了一个基于 Spring 的 WS 客户端,现已补上,见“方案五”。
回复
举报
zzuqiang
2014/07/02 23:10
写的非常棒,期待高级特性。
回复
举报
黄勇
2014/07/02 23:06
引用来自“webit”的评论
撞了,看我头像
我还在想,你怎么不来一条评论呢?结果你真的来了,哈哈!
回复
举报
zqq90
2014/07/02 22:51
撞了,看我头像
回复
举报
蛙牛
2014/07/02 21:03
赞 学到很多!
回复
举报
JFinal
2014/07/02 20:55
引用来自“JFinal”的评论
楼主思考总结相当不错,总能将复杂繁琐的问题说得很简单易懂,顶一个
引用来自“黄勇”的评论
将复杂问题简单化,是我毕生追求的目标。多谢詹总赏识!
建议你出书,造福广大工程师
回复
举报
黄勇
2014/07/02 18:15
引用来自“JFinal”的评论
楼主思考总结相当不错,总能将复杂繁琐的问题说得很简单易懂,顶一个
将复杂问题简单化,是我毕生追求的目标。多谢詹总赏识!
回复
举报
JFinal
2014/07/02 18:07
楼主思考总结相当不错,总能将复杂繁琐的问题说得很简单易懂,顶一个
回复
举报
枫桦林
2014/07/02 17:59
[79][79][79][79]
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
y
x
云
推荐博客
靠近用户侧和数据,算网融合实现极致协同
阿里云视频云
·
前天 17:28
0 评论
虚拟云网络系列 | Antrea 应用于 VMware 方案功能简介(四)
VMware中国研发中心
·
前天 13:37
0 评论
字节跳动 Flink 大规模云原生化实践
字节跳动云原生计算
·
前天 13:01
0 评论
以前端视角,漫谈「云端」
京东云开发者
·
前天 09:48
0 评论
利用Jackson序列化实现数据脱敏
京东云开发者
·
前天 09:39
3 评论
电商通用型商品中心设计
京东云开发者
·
前天 09:26
1 评论
利用自动化平台可以做的那亿点事 |得物技术
得物技术
·
03/30 20:45
0 评论
常见的项目管理问题如何应对?| 得物技术
得物技术
·
03/30 20:23
0 评论
为什么要参与到开源社区里面来
罗广明
·
03/30 19:20
0 评论
历史性的时刻!OpenTiny 跨端、跨框架组件库正式升级 TypeScript,10万行代码重获新生!
Kagol
·
03/30 16:19
0 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
引用来自“weir2016”的评论
<jaxws:client id="helloService"serviceClass="demo.ws.soap_spring_cxf.HelloService"
address="http://localhost:8080/ws/soap/hello"/>
我想知道,在客户端这样写demo.ws.soap_spring_cxf.HelloService 从哪里来 是不是也要WSDL 打客户端 jar 包,放在客户端才可以
引用来自“Sheamus”的评论
@黄勇 大神,我按照你的步骤一步一步写的,为什么最后报404错误呢?而且我还导入你的Demo,也是不行?求解?多谢多谢!“<bean id="helloWorldImpl" class="demo.ws.soap_spring_cxf.HelloServiceImpl" />”
引用来自“叫悟空的猴子”的评论
请教楼主,为什么我按照 3. 在 Web 容器中使用 Spring + CXF 发布 WS 做的时候,访问ws服务的地址和你的不一样呢。你直接访问了http://localhost:8080/ws,而我需要加上项目名。而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
引用来自“happycode”的评论
我试了,是正常的引用来自“shao373157995”的评论
使用 RI 发布 WS 这种方式好像有问题 吧
web.xml中的配置漏了~~
web.xml中的配置漏了~~
引用来自“叫悟空的猴子”的评论
请教楼主,为什么我按照 3. 在 Web 容器中使用 Spring + CXF 发布 WS 做的时候,访问ws服务的地址和你的不一样呢。你直接访问了http://localhost:8080/ws,而我需要加上项目名。而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
org.apache.cxf.common.i18n.UncheckedException: No operation was found with the name {http://impl.sample.webservice.xxxx.com/}say.
需要在注解上增加:
targetNamespace="http://dao.cxf.ws.com/"
而且,我的web.xml是这样的:
<servlet>
<servlet-name>dq-cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dq-cxf</servlet-name>
<url-pattern>/ws/dq/bomc/*</url-pattern>
</servlet-mapping>
我的spring-cxf.xml是这样的:
<jaxws:endpoint id="bomcMock" implementor="#BOMCMockImpl"
address="/mock" />
为什么我访问wsdl时地址是http://localhost:8080/td-webapp/ws/dq/bomc/ws/dq/bomc/mock?wsdl才行,而http://localhost:8080/td-webapp/ws/dq/bomc/mock?wsdl反而不行?
引用来自“叫悟空的猴子”的评论
请问楼主,从http://cxf.apache.org/download.html下载下来的不是jar包,而是一个maven项目,而尝试导入Eclipse时报错,通过项目中的building.txt介绍的,使用mvn -Pfastinstall,everything也报错,怎么破?引用来自“黄勇”的评论
先明确一件事情,你是打算下载 CXF 的源码吧?如果是,那么可以直接通过 Maven 工程来导入 Eclipse。如果你是想下载 CXF 的程序包,下载这份文件就行了 apache-cxf-3.0.0.zip,里面自带了 CXF 相关的 jar 包。引用来自“叫悟空的猴子”的评论
请问楼主,从http://cxf.apache.org/download.html下载下来的不是jar包,而是一个maven项目,而尝试导入Eclipse时报错,通过项目中的building.txt介绍的,使用mvn -Pfastinstall,everything也报错,怎么破?引用来自“小松鼠”的评论
WEB框架已到了泛滥成灾的地步。引用来自“不死鸟_”的评论
勇哥怎么知道那么多的啊?引用来自“webit”的评论
引用来自“JFinal”的评论
楼主思考总结相当不错,总能将复杂繁琐的问题说得很简单易懂,顶一个引用来自“黄勇”的评论
将复杂问题简单化,是我毕生追求的目标。多谢詹总赏识!引用来自“JFinal”的评论
楼主思考总结相当不错,总能将复杂繁琐的问题说得很简单易懂,顶一个