所需加入的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案例相关推荐

  1. 02 HelloWorld案例

    HelloWorld案例 程序:能够完成指定功能的计算机指令的集合,即数据结构+算法. 编辑软件:第三方公司的高级记事本软件:everedit.notepad++.editplus.sublime.. ...

  2. WebService入门案例

    关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...

  3. Java基础知识编写一个HelloWorld案例

    常用dos命令 1.1.1    打开控制台 –      win + R,然后cmd回车 1.1.2    常用命令 –      d: 回车      盘符切换 –      dir(direct ...

  4. Java0基础学习笔记、心得-day01(Java入门需知、Java入门概述、Java语言相关知识、JDK与JRE关系,常用DOS命令、JDK的下载安装与HelloWorld案例实现与常见问题。)

    一.Java入门需知  * 1.你为什么要学习编程?--兴趣.职业.薪资?  * 2.具体Java开发岗位薪资可以参考-智联招聘 前程无忧 BOSS直聘等APP  * 3.如何进入IT行业:前端工程师 ...

  5. java写helloworld_java编写helloworld怎么编写?HelloWorld案例常见问题

    每一个刚开始写java程序的时候,都会写helloworld相关的程序,其实这个程序还是很简单的,那么几年我们就来给大家讲解一下这方面的内容. 一.创建Java应用程序源文件 1)打开文本编辑器Not ...

  6. 控制台输出HelloWorld案例

    1.编辑工具介绍 1.记事本 2.高级记事本: ​ 在记事本的基础上增加了一些颜色变化提示.模板等功能,提升了记事本开发的效率 ​ java中常用的高级记事本:notepad++ EditPlus ​ ...

  7. Windows安装Scala:scala安装、idea的scala插件安装、helloworld案例

    目录 准备 安装配置scala idea安装Scala插件 离线安装 在线安装 hello world案例 准备 重要:安装好JDK1.8!!! 安装配置scala 1.下载Scala Install ...

  8. Java使用MyEclipse构建webService简单案例

     什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web ...

  9. Java开发Mye_Java使用MyEclipse构建webService简单案例

    什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web调 ...

最新文章

  1. MySQL Antelope和Barracuda的区别分析
  2. hdu3074 线段树求区间乘积(单点更新)
  3. Linux(Ubuntu)------常用命令汇总
  4. F1 Query: Declarative Querying at Scale
  5. qt使用样式表来设置不规则按钮
  6. html5 video在uc不自动播放,uc浏览器无法播放视频怎么办
  7. javascript中动态加载js、vbs脚本或者css样式表
  8. Python中的第三方模块(微信为例)
  9. jquery的ajax查询数据库,jquery中使用ajax获取远程页面信息
  10. AttributeError: module 'socketio' has no attribute 'Server'
  11. 预备作业02 1501 李俊
  12. C语言在当代人工智能背景下的作用,人工智能对于当代社会的意义
  13. Github 汉化插件教程
  14. mysql语句翻译_mysql语句翻译成SQL语句
  15. Ardupilot飞控添加使用诺瓦泰GPS
  16. Jedis的基本使用
  17. html5行星环绕,Two.js实现星球环绕动画效果
  18. csig 市场部 外包_市场部主要工作职能是什么,5大职能让你了解市场部的全貌...
  19. miui主题编辑器和java jdk_安装高版本 JDK 后 Appium 和 uiautomatorviewer 的一个坑
  20. Blueprint could not be loaded because it derives from an invalid class.

热门文章

  1. ffmpeg 从内存中读取数据(或将数据输出到内存)
  2. H.264视频质量评价算法(基于偏最小二乘法回归)
  3. MediaInfo源代码分析 4:Inform()函数
  4. 【代码源 Div1 - 102】#323. 最长因子链(dp)
  5. VBScript脚本
  6. c语言有趣的编程代码,一个有趣的小程序
  7. java使用bks双向认证_android客户端SSL单向双向认证
  8. Servlet→DWR实现JAVA服务器端向客户端推送消息
  9. JavaScript创建对象的三种方式之利用构造函数创建对象及使用方法(3)
  10. Lc19删除链表的倒数第N个节点