读书人

基于SCA(tuscany)的SOA实践之二(访

发布时间: 2012-10-24 14:15:58 作者: rapoo

基于SCA(tuscany)的SOA实践之二(访问web服务是如此的简单)
本文讲述基于SCA(tuscany)的SOA实践,本篇讲如何通过tuncany访问web服务
先说一下开发环境jdk6+eclipse3.4+wst+stp+tuscany1.3.1
1 建立一个动态java工程tuscanyclient,源文件目录是src/main/java,资源文件目录是src/main/resources,引用上一篇的tuscany所需要的jar包,并引用上一篇的IUserservice接口和User对象

2 建立Client类,代码如下

package com.tuscanytest.client;import java.util.List;import org.apache.tuscany.sca.host.embedded.SCADomain;import org.osoa.sca.annotations.Reference;import com.tuscanytest.service.IUserservice;import com.tuscanytest.service.User;public class Client {private IUserservice userservice;public List<User> getAll(){return userservice.getAll();}public IUserservice getUserservice() {return userservice;}@Referencepublic void setUserservice(IUserservice userservice) {this.userservice = userservice;}public static void main(String[] args) {SCADomain domain = SCADomain.newInstance("client.composite");Client client = domain.getService(Client.class, "ClientImpl");List<User> all = client.getAll();for (User user : all) {System.out.println(user.getId());System.out.println(user.getName());System.out.println(user.getAddress().getStreet());}}}


3 把上篇服务的描述文件UserService.wsdl放在src/main/resources/目录下
可以直接通过浏览器访问服务的wsdl,然后保存下来

4 在src/main/resources/下定义client.composite文件,代码如下
<?xml version="1.0" encoding="ISO-8859-15"?><composite xmlns="http://www.osoa.org/xmlns/sca/1.0"xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" name="tuscanyclient"targetNamespace="http://client.tuscanytest.com"><component name="ClientImpl"><implementation.java /></component><reference name="userservice" promote="ClientImpl/userservice" target="UserService"><interface.java interface="com.tuscanytest.service.IUserservice" /><binding.ws url="http://localhost:9080/tuscanytest/IUserService"  wsdlElement="http://service.tuscanytest.com/#wsdl.port(IUserserviceService/IUserservicePort)"/></reference></composite>


5 启动上篇的服务,然后执行前面的client类,可以看到控制台的输出,这些就是调用ws服务后获得的数据
id0name0street0id1name1street1id2name2street2id3name3street3id4name4street4id5name5street5id6name6street6id7name7street7id8name8street8id9name9street9


通过tuscany作为客户端访问web服务真的很简单,当然并不是所有的服务都会提供给你java的接口和类,不过好在tuscany有另外的方法来完成,以后会陆续介绍

运行你的程序,还出现如下错误 5 楼 jackyrong 2009-02-08 另外我的版本是JDK 5,应该没关系吧 6 楼 紧急下潜 2009-03-03 jackyrong 写道
另外我的版本是JDK 5,应该没关系吧

从上面的描述来看,可能有影响,你用jdk6试试

读书人网 >Web前端

热点推荐