一、WEB服务简介
1、Web服务是为实现“基于WEB无缝集成”的目标而提出的全新概念,它为调用者提供一个通过web进行调用的API,使用调用者能用编程的方式通过WEB调用来开发应用程序;
2、Web是在internet上提供服务,所以Web也遵循web协议,Web服务各层之间数据传递的格式为XML,封装和交换信息的默认协议是SOAP(simple object access protocol,简单对象访问协议);
二、WEB服务的创建和发布
1、添加XFire库
将lib目录下的所有*.jar文件添加到XFire中,步骤:
1) 添加库和jar文件
单击:windowàPreferencesàBuild pathàUser Librariesà新建库名为:XFireà返回添加jar 文件;
2) 在工程中添加XFire库
右击工程名àPreferencesàJava Build PathàLibrariesàAdd Librariesà添加XFire库;
3) 在工程中添加XFire-all-1.2.6.jar
右击工程名àPreferencesàJava Build PathàLibrariesàAdd LibrariesàAdd Exteranl JARsà选择XFire 解压目录下的xfire-all-1.2.6.jar文件;
2、服务器端的内容
1) 创建服务接口与实现类
2) 配置工程/WebServices/services.xml
位置:src/META-INF/xfire/services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=http://xfire.codehaus.org/config/1.0>
<service>
<name>accp</name>//当前服务的名称,可随意取
<namespace>www.jbaptech.com.cn/accp</namespace>
<serviceClass>接口类所在的路径及接口名</serviceClass>
<implementionClass>实现类所在的路径和类名</implementionClass>
</service>
</beans>
3)配置工程/WebRoot/WEB-INF/web.xml文件
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、测试Web服务是否成功
在地址栏输入:http://localhost:8080/store/services/accp?wsdl 如果没错误提示,即发布成功,注:accp是services.xml文件中的<name>;
三、客户端程序
在类中调用:
String serviceURL=“http://localhost:8080/store/services/accp”;
说明:serviceURL是服务器端的地址,services:是web.xml中映射;
myservlet:是service.xml中<name>指定的服务名;
Service service=new ObjectServiceFactory().create(服务器端接口名.class);
Interface ser=new XFireProxyFactory().create(service,serviceURL);
Ser.methord();//调用方法;
具体创建WEB服务的步骤如下
1、创建web service Project工程
点击finish之后,MyEclipse会自动生成services.xml以及相应的目录,
WEB-INF/web.xml文件中配置了xfire自己的servlet系统完成不必修改;
2、编写接口,实现类
service.xml的配置如下
这三步我们可以用new web service向导完成:图如下
单击Next
(图5)
(图6)
单击Finish即可自动配置service.xml文件及web.xml;
3、 然后将此工程部署到tomcat上,通过http://localhost:8000/werservice/services/web?wsdl可以看到生成的wsdl文件。注意,在部署之后, services会被拷贝到WEB-INF/classes/META-INF/xfire目录下,xfire会自动搜索此目录并加载配置文件。我们可以编写一个client来测试web服务,你也可以点击myeclipse上的Launch the Web Services来测试web服务
(图7)
(图8)
客户端调用
1、先将web服务的接口导成jar包默认存在workspace下;
右击接口所在包:选Export
(图9)
(图10)
2、新建java工程client,右击选属性在Libraries下AddExternal JARS..导入刚才生成的cc.jar包
(图11)
3、客户端的ClientTest类如下
注意:需要在此工程下导入XFire的包;
(图12)
4、客户端可以用MyEclipse自动生成,如下图
单击Fileànewàotherà
(图13)
(图14)
创建成功后客户端结构如下
|
webClient.java文件中的main方法如下:
5、下面是如何在c#中调用
1)新建项目:ClientTest,添加一个按钮和一个lable,做一个按钮事件,并添加WEB引用
(图16)
(图17)
“添加引用”后VS会自动生成给客户端调用的类web
(图18)
按钮件事件调用web服务如下:
一、 常用对象的使用方法
运行点击按钮结果如下:
(图19)
|
|
|
|
|
|