webservice helloworld案例
所需加入的jar包
cxf-2.6.1.jar
geronimo-annotation_1.0_spec-1.1.1.jar
geronimo-jaxws_2.2_spec-1.1.jar
geronimo-ws-metadata_2.0_spec-1.1.3.jar
jetty-continuation-7.5.4.v20111024.jar
jetty-http-7.5.4.v20111024.jar
jetty-io-7.5.4.v20111024.jar
jetty-server-7.5.4.v20111024.jar
jetty-util-7.5.4.v20111024.jar
neethi-3.0.2.jar
slf4j-api-1.6.2.jar
wsdl4j-1.6.2.jar
xmlschema-core-2.0.2.jar
服务端的接口
1 @WebService 2 public interface HelloWorldService { 3 4 public String sayhello(@WebParam(name = "name") String name); 5 6 }
接口实现
1 import javax.jws.WebService; 2 3 @WebService 4 public class HelloworldServiceImpl { 5 6 public String sayhello(String name) { 7 System.out.println("hello" + name); 8 return "enen"; 9 } 10 11 }
测试代码 1 import javax.xml.ws.Endpoint; 2
3 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 4 import org.apache.cxf.phase.Phase; 5 6 import com.testhelloworld.loggin.BaseLogging; 7 import com.testhelloworld.service.HelloWorldService; 8 import com.testhelloworld.service.HelloworldServiceImpl; 9 10 public class Helloworld { 11 12 /** 13 * <b>function:</b>发布WebService 14 * 15 * @author hoojo 16 */ //这另外一种部署方式 17 public static void deployService() { 18 System.out.println("Server start ……"); 19 HelloworldServiceImpl service = new HelloworldServiceImpl(); 20 String address = "http://localhost:9000/WebServiceTest/helloworldserver"; 21 Endpoint.publish(address, service); 22 } 23 24 public static void main(String[] args) { 25 26 // deployService(); 27 28 JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean(); 29 factoryBean.setServiceClass(HelloWorldService.class); 30 factoryBean.setAddress("http://localhost:9000/WebServiceTest/helloworldserver"); 31 // factoryBean.getInInterceptors().add(new LoggingInInterceptor()); 32 // factoryBean.getInInterceptors().add(new LoggingOutInterceptor()); 33 // 添加请求和响应的拦截器,Phase.RECEIVE只对In有效,Phase.SEND只对Out有效 34 factoryBean.getInInterceptors().add(new BaseLogging(Phase.RECEIVE)); //这里我们使用的自己实现的logging实现当然也可以使用他们的 35 factoryBean.getOutInterceptors().add(new BaseLogging(Phase.SEND)); 36 HelloWorldService serviceImpl = (HelloWorldService) factoryBean.create(); 37 String name = serviceImpl.sayhello("666"); 38 System.out.println(name); 39 } 40 41 }
下面是BaseLogging的源码
1 package com.testhelloworld.loggin; 2 3 import org.apache.cxf.interceptor.Fault; 4 import org.apache.cxf.message.Message; 5 import org.apache.cxf.phase.AbstractPhaseInterceptor; 6 7 public class BaseLogging extends AbstractPhaseInterceptor<Message> { 8 9 public BaseLogging(String phase) { 10 super(phase); 11 } 12 13 @Override 14 public void handleMessage(Message arg0) throws Fault { 15 System.out.println("++++++++++++++++++"); 16 System.out.println(arg0); 17 if (arg0.getDestination() != null) { 18 System.out.println(arg0.getId() + "#" + arg0.getDestination().getMessageObserver()); 19 } 20 if (arg0.getExchange() != null) { 21 System.out.println(arg0.getExchange().getInMessage() + "#" + arg0.getExchange().getInFaultMessage()); 22 System.out.println(arg0.getExchange().getOutMessage() + "#" + arg0.getExchange().getOutFaultMessage()); 23 } 24 25 } 26 27 }
转载于:https://www.cnblogs.com/holdouts/articles/5840188.html
webservice helloworld案例相关推荐
- 02 HelloWorld案例
HelloWorld案例 程序:能够完成指定功能的计算机指令的集合,即数据结构+算法. 编辑软件:第三方公司的高级记事本软件:everedit.notepad++.editplus.sublime.. ...
- WebService入门案例
关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...
- Java基础知识编写一个HelloWorld案例
常用dos命令 1.1.1 打开控制台 – win + R,然后cmd回车 1.1.2 常用命令 – d: 回车 盘符切换 – dir(direct ...
- Java0基础学习笔记、心得-day01(Java入门需知、Java入门概述、Java语言相关知识、JDK与JRE关系,常用DOS命令、JDK的下载安装与HelloWorld案例实现与常见问题。)
一.Java入门需知 * 1.你为什么要学习编程?--兴趣.职业.薪资? * 2.具体Java开发岗位薪资可以参考-智联招聘 前程无忧 BOSS直聘等APP * 3.如何进入IT行业:前端工程师 ...
- java写helloworld_java编写helloworld怎么编写?HelloWorld案例常见问题
每一个刚开始写java程序的时候,都会写helloworld相关的程序,其实这个程序还是很简单的,那么几年我们就来给大家讲解一下这方面的内容. 一.创建Java应用程序源文件 1)打开文本编辑器Not ...
- 控制台输出HelloWorld案例
1.编辑工具介绍 1.记事本 2.高级记事本: 在记事本的基础上增加了一些颜色变化提示.模板等功能,提升了记事本开发的效率 java中常用的高级记事本:notepad++ EditPlus ...
- Windows安装Scala:scala安装、idea的scala插件安装、helloworld案例
目录 准备 安装配置scala idea安装Scala插件 离线安装 在线安装 hello world案例 准备 重要:安装好JDK1.8!!! 安装配置scala 1.下载Scala Install ...
- Java使用MyEclipse构建webService简单案例
什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web ...
- Java开发Mye_Java使用MyEclipse构建webService简单案例
什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web调 ...
最新文章
- MySQL Antelope和Barracuda的区别分析
- hdu3074 线段树求区间乘积(单点更新)
- Linux(Ubuntu)------常用命令汇总
- F1 Query: Declarative Querying at Scale
- qt使用样式表来设置不规则按钮
- html5 video在uc不自动播放,uc浏览器无法播放视频怎么办
- javascript中动态加载js、vbs脚本或者css样式表
- Python中的第三方模块(微信为例)
- jquery的ajax查询数据库,jquery中使用ajax获取远程页面信息
- AttributeError: module 'socketio' has no attribute 'Server'
- 预备作业02 1501 李俊
- C语言在当代人工智能背景下的作用,人工智能对于当代社会的意义
- Github 汉化插件教程
- mysql语句翻译_mysql语句翻译成SQL语句
- Ardupilot飞控添加使用诺瓦泰GPS
- Jedis的基本使用
- html5行星环绕,Two.js实现星球环绕动画效果
- csig 市场部 外包_市场部主要工作职能是什么,5大职能让你了解市场部的全貌...
- miui主题编辑器和java jdk_安装高版本 JDK 后 Appium 和 uiautomatorviewer 的一个坑
- Blueprint could not be loaded because it derives from an invalid class.
热门文章
- ffmpeg 从内存中读取数据(或将数据输出到内存)
- H.264视频质量评价算法(基于偏最小二乘法回归)
- MediaInfo源代码分析 4:Inform()函数
- 【代码源 Div1 - 102】#323. 最长因子链(dp)
- VBScript脚本
- c语言有趣的编程代码,一个有趣的小程序
- java使用bks双向认证_android客户端SSL单向双向认证
- Servlet→DWR实现JAVA服务器端向客户端推送消息
- JavaScript创建对象的三种方式之利用构造函数创建对象及使用方法(3)
- Lc19删除链表的倒数第N个节点