一、WebService的开发手段

使用Java开发WebService时可以使用以下两种开发手段

1、 使用JDK开发(1.6及以上版本)

2、使用CXF框架开发(工作中)

二、使用JDK开发WebService

2.1、开发WebService服务器端

1、定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:

1 package me.gacl.ws;

2

3 import javax.jws.WebMethod;

4 import javax.jws.WebService;

5

6 /**

7 * @author gacl

8 * 定义SEI(WebService EndPoint Interface(终端))

9 */

10 //使用@WebService注解标注WebServiceI接口

11 @WebService

12 public interface WebServiceI {

13

14 //使用@WebMethod注解标注WebServiceI接口中的方法

15 @WebMethod

16 String sayHello(String name);

17

18 @WebMethod

19 String save(String name,String pwd);

20 }

2、编写interface的实现类,使用@WebService注解标注实现类,实现接口中定义的所有方法,如下所示:

1 package me.gacl.ws;

2

3 import javax.jws.WebService;

4

5 /**

6 * @author gacl

7 * SEI的具体实现

8 */

9 //使用@WebService注解标注WebServiceI接口的实现类WebServiceImpl

10 @WebService

11 public class WebServiceImpl implements WebServiceI {

12

13 @Override

14 public String sayHello(String name) {

15 System.out.println("WebService sayHello "+name);

16 return "sayHello "+name;

17 }

18

19 @Override

20 public String save(String name, String pwd) {

21 System.out.println("WebService save "+name+", "+pwd);

22 return "save Success";

23 }

24 }

3、使用Endpoint(终端)类发布webservice,代码如下:

1 package me.gacl.ws.test;

2

3 import javax.xml.ws.Endpoint;

4

5 import me.gacl.ws.WebServiceImpl;

6

7 /**

8 * @author gacl

9 *

10 * 发布Web Service

11 */

12 public class WebServicePublish {

13

14 public static void main(String[] args) {

15 //定义WebService的发布地址,这个地址就是提供给外界访问Webervice的URL地址,URL地址格式为:http://ip:端口号/xxxx

16 //String address = "http://192.168.1.100:8989/";这个WebService发布地址的写法是合法的

17 //String address = "http://192.168.1.100:8989/Webservice";这个WebService发布地址的是合法的

18 String address = "http://192.168.1.100:8989/WS_Server/Webservice";

19 //使用Endpoint类提供的publish方法发布WebService,发布时要保证使用的端口号没有被其他应用程序占用

20 Endpoint.publish(address , new WebServiceImpl());

21 System.out.println("发布webservice成功!");

22 }

23 }

运行WebServicePublish类,就可以将编写好的WebService发布好了,WebService的访问URL是:http://192.168.1.100:8989/WS_Server/Webservice ,如下图所示:

二、开发客户端

客户端调用我使用的两种方式

第一种使用apche cxf生成代码进行访问

1、下载apache cxf的包,地址为:http://cxf.apache.org/download.html 如:apache-cxf-3.1.6

2、解压apache-cxf-3.1.6到任意目录

3、配置环境变量

os系统设置

1)、export CXF_HOME=/Users/moon/Desktop/tools/apache-cxf-3.1.6

2)、path后面加 :$CXF_HOME/bin

windows系统设置

1)、CXF_HOME=D:\apache-cxf-3.1.6

2)、在path后面加上 %CXF_HOME%/bin;

在命令中输入wsdl2java,如果有提示usage,就表明配置成功

4、运行wsdl2java工具

在命令中输入:wsdl2java -d \xx\xxx\xx -client http://localhost:8080/cxfWSServer/webservice/Greeting?wsdl

(\xx\xxx\xx 是客户端程序代码所在的目录,http://localhost:8080/cxfWSServer/webservice/Greeting?wsdl 是发布的webservice服务)

附wsdl2java用法:

wsdl2java -p com -d D:\\src -all xx.wsdl

-p 指定其wsdl的命名空间,也就是要生成代码的包名:

-d 指定要产生代码所在目录

-client 生成客户端测试web service的代码

-server 生成服务器启动web service的代码

-impl 生成web service的实现代码

-ant 生成build.xml文件

-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

生成后的代码直接放到client工程上面

另外新建一个client类 直接使用生成的类调用

package com.moon.cxf;

import com.moon.cxf.client.Greeting;

import com.moon.cxf.client.GreetingImplService;

public class CxfClient {

public static void main(String[] args) {

GreetingImplService serviceFactory = new GreetingImplService();

Greeting service =

serviceFactory.getGreetingImplPort();

String result = service.greeting("Jaune");

System.out.println(result);

}

}

二、使用axis调用webservice接口

引入axis 相关jar包

代码如下

package com.moon.cxf;

import java.rmi.RemoteException;

import javax.xml.namespace.QName;

import javax.xml.rpc.ParameterMode;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.encoding.XMLType;

/**

* 使用axis调用cxf发布的webservice接口

* @author moon

*

*/

public class AxisClient {

public static void main(String[] args) throws ServiceException, RemoteException {

try {

String endpoint = " http://localhost:8080/cfxWSServer/webservice/Greeting";

// 调用过程

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));

call.setOperationName(new QName("http://server.cxfWebservice.moon.com/","greeting"));// WSDL里面描述的操作名称

call.addParameter("username",

org.apache.axis.encoding.XMLType.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);// 操作的参数

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型

call.setUseSOAPAction(true);

// 给方法传递参数,并且调用方法

String temp = "good";

Object[] obj = new Object[] { temp };

String result = (String) call.invoke(obj);

System.out.println("Result is : " + result);

} catch (Exception e) {

e.printStackTrace();

}

}

}

相关代码:https://github.com/15210448683/WebServiceDemoImpl

java开发webservice接口_webservice接口的开发和调用相关推荐

  1. java webservice接口开发_php开发webservice服务端接口(wsdl)

    首先要创建两个文件Test.php Test.wsdl Test.php文件代码是处理具体业务的接口代码 Test.php代码: ?php ini_set("soap.wsdl_cache_ ...

  2. webservice 暴漏接口_webService接口是什么?

    展开全部 Web 是使应用62616964757a686964616fe59b9ee7ad9431333431366263程序可以与平台和编程语言无关的方式进行相互通信的一项技术.Web 服务是一个软 ...

  3. mysql webservice接口_WebService接口在PHP中的使用

    Web服务是一种外部使用的服务,PHP调用它实际上非常简单.可以说如果想要对web的知识点有所提升,webService也是每个学习编程人员的基础使用.本篇要带来的是WebService在php中的运 ...

  4. java和webservice接口测试_webservice接口测试

    1,用soupui进行测试 2,安装soupUI 3,测试的时候是给了一个wdsl 操作步诹:new (name , 填写地址)---导入wsdl文件---看到所有的接口 发送请求的格式 canshu ...

  5. Java开发WebService(使用Java-WS)

    前言: 初学Java,因为工作需要,直接跳到开发WebService.以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次.网上的教程各式各异 ...

  6. 用Java 开发 WebService Axis简单实例

    用 Java 开发 WebService Axis 简单实例 在开发之前, 先了解一下AXIS,axis目前出现的2版本以其灵活性,快速开发工具的集成高于xfire而使用者居其上.用Eclipse开发 ...

  7. IDEA中进行SpringBoot整合spring-ws开发webservice接口后期要修改xsd文件流程

    场景 SpringBoot整合spring-ws开发webservice接口(全流程详细教程) 参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/articl ...

  8. Webservice开发之xsd中开发请求数据的响应接口

    场景 SpringBoot整合spring-ws开发webservice接口(全流程详细教程)参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  9. Webservice开发之xsd中开发登录请求的响应接口

    场景 SpringBoot整合spring-ws开发webservice接口(全流程详细教程)参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  10. Webservice开发之xsd中开发list请求参数的接口

    场景 SpringBoot整合spring-ws开发webservice接口(全流程详细教程)参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

最新文章

  1. Flex Air程序打包成独立的exe安装文件
  2. lambda表达式python_Python中的Lambda表达式
  3. css实现自适应背景图及背景图透明度处理
  4. shell 拿到service状态_9个实战及面试会经常用到的Shell脚本!
  5. 好程序员分享大势所趋 HTML5成Web开发者最关心的技术
  6. 企业要顺应社会生态环境
  7. nginx源码分析(5)——监听socket初始化
  8. Android 4.X 系统加载 so 失败的原因分析
  9. php滑动轮播效果,js实现移动端手指滑动轮播图效果
  10. php syslog服务器,Linux Syslog日志服务器的搭建
  11. 【电路仿真】基于matlab simulink三相半波可控整流电路【含Matlab源码 331期】
  12. PAT L1 049 天梯赛座位分配
  13. 计算机485通讯原理,串口通信原理详解.ppt
  14. ROS配置DS-NAT端口映射
  15. win10系统不能多开服务器,win10游戏不能双开如何处理_win10电脑游戏双开同时运行操作方法...
  16. 时间状语:(现在完成时)/ 固定语句(现在完成时)/29主动表被动/23过去完成时:又 名 过去的过去;/过去将来时/(过去完成时)/25 过去完成时,固定搭配/26 时间状语 (将来完成时)
  17. 从程序员到项目经理:思维一换天地宽
  18. python和r语言哪个简单_python与r语言哪个简单
  19. Linux如何检查脱域,ZeroLogon的利用以及分析
  20. vue移动端使用手势库---alloytinger

热门文章

  1. 基于nodejs,tinypng的压缩图片工具
  2. 如何用五千块的电脑弹奏出价值十万钢琴的效果
  3. 基于javaweb仓库管理系统简易课程报告-软件工程
  4. 用手机怎么制作电子版证件照
  5. 五、pygame做一个简单的五子棋游戏
  6. html一行文字布局,HTML页面文字布局与文字效果
  7. python开发android应用app,python开发app开发框架
  8. 【易语言界面开发系列教程之(EX_UI使用系列教程(12)--EX组件(列表框EX))】
  9. 水经注地图发布服务中间件的适用范围
  10. >>开发工具:IDEA格式化代码无效