基于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());}}}
<?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>
id0name0street0id1name1street1id2name2street2id3name3street3id4name4street4id5name5street5id6name6street6id7name7street7id8name8street8id9name9street9