java webservice实例教程
源代码下载地址:http://www.zuidaima.com/share/1590350954564608.htm
最近在学习web services,网上先关的资料不多,讲的都是很基础,例子也很简单,自己动手敲了敲在这里和大家分享一下,希望能对初学者有所帮助。
服务器端开发用的是XFire,版本是1.2.6,XFire现在已经成apache下面的一个项目CXF的一部分了,老早就不更新版本了,XFire过不过时我是不知道,不过还有一些人在用。
新建一个项目,可以是web project也可以是web service project,区别不大。项目建好之后:(项目名假设为:webservice)
jar包下载地址 http://xfire.codehaus.org/Download
加压下载好的文件,将lib文件夹下所有jar包添加到项目中,并且将xfire-all-1.2.6.jar加入到项目中。
1
|
public interface CalculatorService {
|
2
|
public int add( int a, int b);
|
3
|
public int sub( int a, int b);
|
4
|
public int mul( int a, int b);
|
5
|
public int div( int a, int b);
|
6
|
}
|
3、编写服务接口实现类
01
|
public class CalculatorServiceImpl implements CalculatorService{
|
02
|
|
03
|
@Override
|
04
|
public int add( int a, int b) {
|
05
|
return a+b; //To change body of implemented methods use File | Settings | File Templates.
|
06
|
}
|
07
|
|
08
|
@Override
|
09
|
public int sub( int a, int b) {
|
10
|
return a-b; //To change body of implemented methods use File | Settings | File Templates.
|
11
|
}
|
12
|
|
13
|
@Override
|
14
|
public int mul( int a, int b) {
|
15
|
return a*b; //To change body of implemented methods use File | Settings | File Templates.
|
16
|
}
|
17
|
|
18
|
@Override
|
19
|
public int div( int a, int b) {
|
20
|
return a/b; //To change body of implemented methods use File | Settings | File Templates.
|
21
|
}
|
22
|
}
|
4、编写web.xml
01
|
<?xml version= "1.0" encoding= "UTF-8" ?>
|
02
|
<web-app xmlns= "http://java.sun.com/xml/ns/javaee"
|
03
|
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
04
|
xsi:schemaLocation="http: //java.sun.com/xml/ns/javaee
|
05
|
http: //java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
06
|
version= "3.0" >
|
07
|
<servlet>
|
08
|
<servlet-name>XFireServlet</servlet-name>
|
09
|
<servlet- class >org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet- class >
|
10
|
<load-on-startup> 0 </load-on-startup>
|
11
|
</servlet>
|
12
|
|
13
|
<servlet-mapping>
|
14
|
<servlet-name>XFireServlet</servlet-name>
|
15
|
<url-pattern>/services/*</url-pattern>
|
16
|
</servlet-mapping>
|
17
|
|
18
|
<servlet-mapping>
|
19
|
<servlet-name>XFireServlet</servlet-name>
|
20
|
<url-pattern>/services/XFireServlet/*</url-pattern>
|
21
|
</servlet-mapping>
|
22
|
|
23
|
<welcome-file-list>
|
24
|
<welcome-file>index.jsp</welcome-file>
|
25
|
</welcome-file-list>
|
26
|
|
27
|
</web-app>
|
5、配置服务
在src目录下新建WEB-INF文件夹,在WEB-INF文件夹下新建xfire文件夹,在xfire下新建services.xml文件。
name表示服务的名字可以自己随便定义,serviceClass指明服务接口类,implementationClass指明服务实现类
01
|
<?xml version= "1.0" encoding= "UTF-8" ?>
|
02
|
<beans xmlns= "http://xfire.codehaus.org/config/1.0" >
|
03
|
<service>
|
04
|
<name>CalculatorService</name>
|
05
|
<serviceClass>com.young.service.CalculatorService</serviceClass>
|
06
|
<implementationClass>
|
07
|
com.young.service.CalculatorServiceImpl
|
08
|
</implementationClass>
|
09
|
|
10
|
</service>
|
11
|
</beans>
|
6、启动服务
将该项目添加到tomcat中,启动tomcat,在浏览器中输入http://localhost:8080/webservice/services就能看到该项目下所有服务,点击服务后面的[wsdl],就会看到服务的wsdl文件内容。
6、编写客户端
通过WSDL地址来创建动态客户端,代码如下
1
|
public class ClientTest {
|
2
|
public static void main(String[] args) throws Exception {
|
3
|
Client client = new Client( new URL( "http://localhost:8080/webservice/services/CalculatorService?wsdl" ));
|
4
|
Object[] results = client.invoke( "add" , new Object[]{ 1 , 2 });
|
5
|
System.out.println(results[ 0 ]);
|
6
|
}
|
7
|
}
|
项目文件目录结构如下:
7.跨语言编写客户端
前面编写的客户端采用的是java语言,与Service采用的是同一个JVM,无法直观的体会出webservice跨平台跨语言的特性
下面采用c#编写客户端
打开Visual Studio,新建一个c# console project,命名为wsclient,添加引用,选择添加web引用,输入http://localhost:8080/webservice/services/CalculatorService?wsdl
给该引用命名为CalculatorService
编写测试代码,代码如下
01
|
using System;
|
02
|
using System.Collections.Generic;
|
03
|
using System.Linq;
|
04
|
using System.Text;
|
05
|
using wsclient.CalculatorService;
|
06
|
07
|
namespace wsclient
|
08
|
{
|
09
|
class Program
|
10
|
{
|
11
|
static void Main(string[] args)
|
12
|
{
|
13
|
CalculatorService.CalculatorService cal = new CalculatorService.CalculatorService();
|
14
|
int result = cal.add( 1 , 2 );
|
15
|
Console.WriteLine(result);
|
16
|
Console.ReadKey();
|
17
|
}
|
18
|
}
|
19
|
}
|
点击运行,效果如下
java webservice实例教程相关推荐
- JAVA正则表达式实例教程(转帖收藏)
So many open source projects. Why not Open your Documents? 1 JAVA正则表达式实例教程 12/11/2008 1.正则表达式的知识要点 1 ...
- java webservice 示例_java webservice实例教程
package com.young.service; /** * Created with IntelliJ IDEA. * User: veryyoung * Email:[email protec ...
- java程序设计实例教程 刘志成_Java程序设计实例教程教学课件作者刘志成章节05_Java图形用户界面技术.PPT...
i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:gri ...
- Java基础学习总结(82)——Java泛型实例教程
1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍.总结了关于泛型的知识.希望能给你带来一些帮助. 先看下面的代码: List list = ...
- WebService 工作原理及实例教程
一.WebService到底是什么? 先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统 ...
- 孔浩老师 java 微信_孔浩老师JAVA WebService教程
课程目录:01_webservice快速实例 02_wsimport的使用 03_wsdl和soap讲解(介入了tcpmon工具) 04_SOA的分析(纯属扯淡) 05_dtd讲解 06_schema ...
- java手工注入bean_java相关:Spring中如何动态注入Bean实例教程
java相关:Spring中如何动态注入Bean实例教程 发布于 2020-3-8| 复制链接 摘记: 前言在Spring中提供了非常多的方式注入实例,但是由于在初始化顺序的不同,基于标注的注入方式, ...
- Java 使用Axis实现WebService实例
在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...
- java .net webservice_Java客户端调用.NET的WebService实例
项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...
最新文章
- EasyUI Pagination 分页的两种做法
- 编写精美的聊天界面(左边显示接收消息,右边显示发送消息)(项目已上传GitHub)
- Python3.7模块之re
- Spartacus同SAP Commerce Cloud交互的示意图
- HTML5学习笔记四: 列表, 块和布局
- 正式发布!Azure Functions OpenAPI Extension
- 博客堂怎么连个搜索功能都没有
- HTML元素参考手册 HTML Elements Reference
- Windows 7 SID 修改
- 【Python3网络爬虫开发实战】1.2.4-GeckoDriver的安装
- [VNC] 远程连接 Xfce4 桌面 tab 键不能自动补全
- linux中sudo命令_Linux中的Sudo命令
- 菜鸟学开店—电子称连接标签打印机
- 【三星笔试】给定一些汽油E,给定一段距离D,完成D这段距离...
- 在线Java/C++/C语言/Python/web网页编辑器(IDE)整理
- cad怎么设置线的粗细_CAD图纸线条粗细如何修改?CAD图纸线宽如何调整?
- 【剑指 Offe】11. 旋转数组的最小数字
- 在Java中构建响应式微服务系统——第三章 构建响应式微服务
- 测试人员花样甩锅技巧
- Vue.js + axios 实现excel下载