使用Eclipse的话还要装web tool platform很多东西,用MyEclipse一步到位,创建WebService很方便。
MyEclipse中有自己的Tomcat,要把事先在电脑上独立安装的Tomcat关掉。
1.File->New->Web Service Project
Project Name取为webservice,Framework使用XFire
下一步使用默认配置即可。
勾上HTTP Client Library
选择Yse即可。MyEclipse8.6使用的JDK最高版本是5,而我本机上已经装到6了
2.在src下添加一个包org.demo.webservice,再添加一个接口IAdd,和一个类Add
1 2 3 4 5 6 | package org.demo.webservice; public interface IAdd { public abstract int add( int num1, int num2); } |
1 2 3 4 5 6 7 8 | package org.demo.webservice; public class Add implements IAdd{ public int add( int num1, int num2){ return num1+num2; } } |
3.配置webservice包下面的services.xml。
1 2 3 4 5 6 7 8 9 | <? xml version="1.0" encoding="UTF-8"?> < beans xmlns=""> < service > < name >add</ name > <!-- 服务名称 --> < namespace >org.demo.webservice/add</ namespace > <!-- 指定命名空间 --> < serviceClass >org.demo.webservice.IAdd</ serviceClass > <!-- 指定服务的接口 --> < implementationClass >org.demo.webservice.Add</ implementationClass > <!-- 指定接口的实现类 --> </ service > </ beans > |
在WebRoot/WEB-INF下有一个web.xml,已经自动加好了XFireServlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <? xml version="1.0" encoding="UTF-8"?> < web-app xmlns="" xmlns:xsi="" version="2.5" xsi:schemaLocation=" "> < servlet > < servlet-name >XFireServlet</ servlet-name > < servlet-class >org.codehaus.xfire.transport.http.XFireConfigurableServlet</ servlet-class > < load-on-startup >0</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >XFireServlet</ servlet-name > < url-pattern >/services/*</ url-pattern > </ servlet-mapping > < welcome-file-list > < welcome-file >index.jsp</ welcome-file > </ welcome-file-list > </ web-app > |
4.在MyEclipse中运行程序Run As MyEclipse Server Application,地址输入:应用程序地址+“/services/"+服务名称+”?wsdl“
出现上图说明WebService发布成功。
当然在MyEclipse中可以很方便地创建客户端来调用WebService,不过接下来我们要在Eclipse中使用XFire来 创建客户端调用WebService
1.为Eclipse安装XFire插件
从Help->Install New SoftWare进入,地址输入http://xfire.codehaus.org/Eclipse+Plugin
2.新建Java Project名曰xfire
3.右键项目名New->other
Package的名称要小写。output directory和package的含义看生成的项目结构便知:
把service和webservice拖到src下,形成
4.右键项目属性,勾上这四项
5.src下创建包Invoke,包下创建类Tyr
1 2 3 4 5 6 7 8 9 10 11 12 | package Invoke; import service.*; public class Tyr { public static void main(String[] args) { addClient client= new addClient(); addPortType service=client.getaddHttpPort(); System.out.println(service.add( 4 , 8 )); } } |
6.运行
选择Tyr类,Console中可看到结果为12