在MyEclipse下用XFire创建web服务及使用

一、WEB服务简介

1Web服务是为实现“基于WEB无缝集成”的目标而提出的全新概念,它为调用者提供一个通过web进行调用的API,使用调用者能用编程的方式通过WEB调用来开发应用程序;

2Web是在internet上提供服务,所以Web也遵循web协议,Web服务各层之间数据传递的格式为XML,封装和交换信息的默认协议是SOAPsimple 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 如果没错误提示,即发布成功,注:accpservices.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工程

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞



点击finish之后,MyEclipse会自动生成services.xml以及相应的目录,

WEB-INF/web.xml文件中配置了xfire自己的servlet系统完成不必修改;

 

 

2、编写接口,实现类  

service.xml的配置如下

 

        这三步我们可以用new web service向导完成:图如下

  在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

          

              单击Next

           在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                        (5)

           在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                      (图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服务

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞


(图7

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                

                    (图8

  客户端调用

1、先将web服务的接口导成jar包默认存在workspace;

右击接口所在包:选Export

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

            (9)

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                (图10

 

2、新建java工程client,右击选属性在LibrariesAddExternal JARS..导入刚才生成的cc.jar

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                (11)

3、客户端的ClientTest类如下

 

注意:需要在此工程下导入XFire的包;

        在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                (12)

  

 

4、客户端可以用MyEclipse自动生成,如下图

单击Fileànewàotherà

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

                    (图13

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

 

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞


在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞 在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞
 

 

            (14)

创建成功后客户端结构如下

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

 

自动生成的文件

 
在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

 

   

 

webClient.java文件中的main方法如下:

 


5、下面是如何在c#中调用

1)新建项目:ClientTest,添加一个按钮和一个lable,做一个按钮事件,并添加WEB引用

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

        (16)

                (17)

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞    “添加引用”后VS会自动生成给客户端调用的类web

   在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

            (18)

     

        按钮件事件调用web服务如下:

 

 

   

一、            常用对象的使用方法

  

      运行点击按钮结果如下:

      在MyEclipse下用XFire创建web服务及使用 - 狼之舞 - 狼之舞

            (图19

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace ClientTest

{

    public partial class Form1 : Form

    {       

        public Form1()

        {

            InitializeComponent();                       

        }

        private void button1_Click(object sender, EventArgs e)

        {

            localhost.web ss = new ClientTest.localhost.web();//实例web服务

            this.label1.Text = ss.ddaa();//调用web服务中的方法

        }

    }

}

 

 

public static void main(String[] args) {

     webClient client = new webClient();

       

       //create a default service endpoint

        webPortType service = client.getwebHttpPort();

         service.ddaa();//发布服务中的方法;

    }

 

 


 


 

package test;

import java.net.MalformedURLException;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import org.codehaus.xfire.XFireFactory;

import org.codehaus.xfire.client.XFireProxyFactory;

import face.add;

public class ClientTest {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

Service service=new ObjectServiceFactory().create(add.class);//addweb服务的接口名;

 String url="http://localhost:8000/werservice/services/web";//web 服务的地址;

        try {

           add cc=(add) new XFireProxyFactory().create(service,url);

           System.out.print(cc.ddaa());//ddaa()web服务接口中的方法;

       } catch (MalformedURLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

      

       }

   

 

}

 

 

 

 
 

 

       <?xml version="1.0" encoding="UTF-8"?>

       <beans xmlns="http://xfire.codehaus.org/config/1.0">

        <service>

       <name>web</name>//发布的WEB服务名

       <serviceClass>face.add</serviceClass>//接口类

       <implementationClass>imple.Mimple</implementationClass>//实现类

       <style>wrapped</style>

       <use>literal</use>

       <scope>application</scope>

        </service>

       </beans>

 

 

 
 

           package imple;

 

            import face.add;

 

             public class Mimple implements add {

 

                 public String ddaa() {

               // TODO Auto-generated method stub

                return "我是services服务!";

                }

 

}

 

      

 

package face;

 

public interface add {

public String ddaa();

}

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值