使用CXF开发WebService的笔记_服务器端的
1、要实现的功能:
要实现的功能很简单,服务器端提供一个根据登陆名查询用户密码的服务,输入参数为一个String类型的,返回值也是String类型,确实很简单,简单得不能再简单了。
这里就不解释CXF是什么含义、为什么要用CXF的这些学院派的问题,不知道答案的自己去baidu和google去查找。
2、实现步骤:
我们从一个空的web工程开始说起,一步一步演示如何操作和验证。
2.0 准备文件:
下载CXF的发布文件,下载地址是http://cxf.apache.org/download.html,我下载是的最新版本是2.2.7,解压缩之后直接进去apache-cxf-2.2.7/lib,把该目录下的jar文件单独保存起来,将来要导入到web工程中。一共有66个文件26MB多呢。
2.1 新建web工程 webproject,导入cxf的jar文件,然后修改web.xml的文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:application*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!—前面两个就不用多说了,下面还是我们要关注的CXF配置-->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
这只是序幕,下面进入服务的书写步骤了。
2.2 书写服务器端的服务和配置CXF
服务接口文件的代码如下:
package com.demo.service.userinfo;
import javax.jws.WebService;
@WebService //使用jws的标注WebService
//如果不加这个标注,就不能被发布成web服务了,明白不?
public interface IUserService {
public String getPassword(String loginName);
}
服务实现类文件的代码如下
package com.demo.service.userinfo.impl;
import javax.jws.WebService;
import com.demo.service.userinfo.IUserService;
@WebService //使用jws的标注WebService
//如果不加这个标注,就不能被发布成web服务了,明白不?
public class UserServiceImpl implements IUserService {
@Override
public String getPassword(String loginName) {
System.out.println("Server's getPassord() is called:"+loginName);
return loginName+"'s password=123456";
//这是demo程序,所以随便写,正式开发还是把调试信息去掉吧
}
}
CXF的配置:在src配置一个文件applicationContext_cxf.xml,其内容如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!—这三行的配置不用去检查对应的路径下是否有对应的文件,因为cxf会自动生成的-->
<bean id="userService" class="com.demo.service.userinfo.impl.UserServiceImpl"/>
<!—userInfoService就不用解释了,这是典型的Spring配置,开发时建议采用Spring2.5的标注 -->
<jaxws:endpoint id="userWebService"
//这个要配置好,因为客户端要用到它呢,注意我用web来标识它
implementor="#userService" //这个是引用上面的userService
address="/callUserService">
//这个是调用web服务的地址,知道我为什么用call了吧,为了易于理解,right?
</jaxws:endpoint>
</beans>
上面的注释在我写程序时不会加这么多,第一个没有时间加,第二个也是多余的,所以建议ctrl+c和ctrl+v的某某同学注意一些啦,不要说我的程序有问题。
那现在有个问题:配置了这么多,怎么没有看到wsdl文件呢?没有wsdl文件,怎么知道做得对不对啊?根据上面的配置,访问wsdl的URL是多少啊?猜猜看?
http://127.0.0.1:8089/webproject/services/callUserService?wsdl
能想得出来访问wsdl的URL的值吗?(IP地址和端口号需要自己根据实际来改) 如果不能,你要好好反思一下啦。好,我们看看我们userService的wsdl的内容。参见附件的图片。
服务端的步骤做完了吗?你觉得差不多了吧?不对,还差最后一步,就是把客户端所需要的代码导成jar文件,返回发给客户端进行调试。那我们就完成这最后一步吧。
用鼠标同时选中com.demo.service.userinfo和com.demo.service.userinfo,然后:鼠标右键 —》 Export…. —》Java —> Jar file —》选中保存路径和文件名,我这里存为“ws.userinfo.jar” 。
- 大小: 109.3 KB
分享到:
相关推荐
cxf开发webservice客户端和服务器端,详细的cxf使用指令,有用的示例代码及注释。
02.CXF功能概述_CXF发展历史和使用CXF开发WebService服务器端
CXF构建WebService示例,具有一定的参考价值,可供学习
Wsdl(webservice使用说明书)重点掌握 Soap(jaxws开发webservice的传输协议)重点掌握 UDDI(了解) Webservice的使用场景分析(掌握) 学会jaxws基本开发方法(重点) Soap1.1和soap1.2区别: 跟踪soap协议 ...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
NULL 博文链接:https://jin8000608172.iteye.com/blog/1768378
cxf 开发webservice客户端 代码经过测试
CXF开发webservice服务端,希望对大家有所帮助
CXF_WebService_开发指南、技术文档
这是讲解cxf的权威开发文档 文档内容:Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services
WebService_CXF_x509
使用cxf搭建webService,客户端通过接口进行调用
03.使用CXF开发WebService客户端
CXF Webservice 开发手册
本java工程实现了spring+cxf快速开发webservice jar包齐全导入myeclipse可直接二次开发
最近用CXF开发webservice,发现老是报jar包的错误,但是又不能把所有从官网下载下来的都复制过来。官网下载的有好几十个呢,这是官网CXF的下载地址:http://cxf.apache.org/download.html。于是网上整理了一下,做个...
CXF实现WebService_1 的视频,WebService的工作原理以及SOAP的简介
2、将cxf_jar包文件夹下所有包,拷至MyCXFService与MyCXFClient项目WebRoot\WEB-INF\lib\cxf_2.7.8 目录下(注意:两个项目都需要这些jar包) 3、将两个项目都导入myEclipse 4、将MyCXFService与MyCXFClient 一起...
傻瓜试记录开发步骤,具体实现自己去完成。 如果看不懂,找自已原因。
NULL 博文链接:https://lgclove1314.iteye.com/blog/2326217