webservice的学习

最近在弄一些数据共享的问题,也就是一个系统的数据要和另一个系统的数据共享,采用webservice可以解决。

我采用的是xfire实现的,当然也可以axis等实现,不过我觉得还是xfire简单些,更容易入门。

首先大家不必被webservice吓到,其实它就是一个工程提供服务(方法),另一个工程调用这个服务里的方法,得到数据(方法的返回值)。



两个工程,其中toa充当提供服务,aj用来调用。

T_Company属于实体类

ToAj是个接口。

ToAjImpl是接口的实现类。

用xfire实现的原理:

服务端:提供接口和实现类,并且在services.xml里边配置对应的路径。接口和实现类在此略过,主要看下xml里边的配置,如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
  <name>list</name>
  <serviceClass>service.company.ToAj</serviceClass>
  <implementationClass>service.company.ToAjImpl</implementationClass>
  <style>wrapped</style>
  <use>literal</use>
  <scope>session</scope>
</service>

</beans>

  其中<serviceClass>这个节点放的是接口的路径

<implementationClass>放的是实现类路径

下面的节点都是些范围。

调用工程:

调用工程只要配置与提供服务工程相同的接口(不配实现类)和实体类就可以了(此处注意:路径必须相同,而且必须要放到service下(有待考证,反正我是放外面试了不成功))

说下调用端类HelloService.java

public class HelloService {

    public void testService1(T_Company objCompany) {
        Service srvcModel = new ObjectServiceFactory().create(ToAj.class);
        XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
        String helloWorldURL = "http://192.168.1.237:8080/toa/services/list";
        try {
            ToAj srvc = (ToAj) factory.create(srvcModel, helloWorldURL);
            //传对象
            System.out.print("返回String  "+srvc.addCompany1(objCompany));
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

    }
}

helloWorldURL这个变量就是服务端的url,(服务工程所在机器IP+端口号+工程名+services+服务工程里services.xml里边配置的name(不知道name是啥的返回前面看services.xml))

到此就配置完成了。启动两个工程。

如果访问
http://192.168.1.237:8080/toa/services/list?wsdl出现xml页面,那恭喜您,配置成功。

代码民工,不怎么会说话。

人老了,为啥现在学东西就没有以前的激情了。。。。。。

你可能感兴趣的:(webservice,xfire)