Webservice的cxf开发_入门(jdk1.7)
一、部署cxf+ant环境 ant:http://download.csdn.net/detail/qwkxq/9706182 cxf:http://download.csdn.net/detail/qwkxq/9706179 下载以后解压,目录结构如下 配置环境变量: ANT_HOME=D:PATHapache-ant-1.8.4 CXF_HOME=D:PATHapache-cxf-2.4.2 CATALINA_HOME=D:PATHapache-tomcat-6.0.18apache-tomcat-6.0.18 JAVA_HOME=C:Java7 PATH=%CXF_HOME%bin;%CATALINA_HOME%bin;%ANT_HOME%bin;%JAVA_HOME%bin; CLASSPATH=.;%CXF_HOME%libcxf-manifest.jar;.buildclasses cxf中常用的ant命令 “ant” 读取默认的build.xml文件构建项目(编译) “ant server” 启动webservice服务端 “ant client” ?启动webservice客户端调用服务端 “ant deploy -Dtomcat=true” 将服务端程序部署到tomcat,默认访问的是一个servlet,映射所有services/*的路径,访问地址是:“localhost:8080/项目名/services” “ant undeploy -Dtomcat=true” 卸载部署在tomcat的服务端程序 “ant clean” 清空项目 二、开发cxf入门程序 1.服务端接口
package cn.xt.test; import javax.jws.WebService; import javax.xml.ws.BindingType; @WebService @BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING) public interface IMyService { public void sayHi(); }
package cn.xt.test; import java.util.Date; import javax.jws.WebService; import javax.xml.ws.BindingType; @WebService @BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING) public class MyService implements IMyService { public void sayHi(){ System.out.println("hi......"+new Date().toLocaleString()); } } 这里的@BindingType有2个常用的值: javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING:发布soap1.1版本的服务端 javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING:发布soap1.2版本的服务端 3.发布服务
public static void main(String[] args) { IMyService service = new MyService(); JaxWsServerFactoryBean bean = new JaxWsServerFactoryBean(); bean.setAddress("http://192.168.1.3:9999/hello"); bean.setServiceClass(IMyService.class); bean.setServiceBean(service); //添加cxf拦截器 bean.getInInterceptors().add(new LoggingInInterceptor()); bean.getOutInterceptors().add(new LoggingOutInterceptor()); bean.create(); } 访问http://192.168.1.3:9999/hello?wsdl出现wsdl说明,则说明发布成功 服务端控制台会有如下打印
信息: Inbound Message ---------------------------- ID: 6 Address: http://192.168.1.3:9999/hello?wsdl Http-Method: GET Content-Type: Headers: {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8],accept-encoding=[gzip,deflate,sdch],Accept-Language=[zh-CN,zh;q=0.8],Cache-Control=[max-age=0],connection=[keep-alive],Content-Type=[null],Host=[192.168.1.3:9999],Upgrade-Insecure-Requests=[1],User-Agent=[Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/52.0.2743.116 Safari/537.36]} -------------------------------------- 4.使用cxf自带命令“wsdl2java” 生成客户端代码 wsdl2java -d . http://192.168.1.3:9999/hello?wsdl 5.调用
public static void main(String[] args) { IMyService service = new IMyServiceService().getIMyServicePort(); service.sayHi(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – 如何使用Bootstrap Mixins与Sass而不
- 一台机器如何启动多个JBoss服务器的办法!(基于jboss-eap-
- 使用bootstrap实现下拉框搜索功能的实例讲解
- Angular2路由问题和ngOnInit调用两次
- 欺骗循环/ autorefresh docker ps视图,如bash中的top/htop
- shell里的getopts
- scala.xml.RuleTransformer的复杂性是否真的呈指数级?
- bash – 使用unix shell脚本发送电子邮件
- typescript – Angular 2 – 无法使用上下文读取未定义错误
- 使用shc工具加密shell脚本详解