本文讲述基于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;
}
@Reference
public 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 class="com.tuscanytest.client.Client" />
</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服务后获得的数据
id0
name0
street0
id1
name1
street1
id2
name2
street2
id3
name3
street3
id4
name4
street4
id5
name5
street5
id6
name6
street6
id7
name7
street7
id8
name8
street8
id9
name9
street9
通过tuscany作为客户端访问web服务真的很简单,当然并不是所有的服务都会提供给你java的接口和类,不过好在tuscany有另外的方法来完成,以后会陆续介绍
分享到:
相关推荐
通过以上内容,你可以了解到如何利用Apache Tuscany实现SOA中的SCA架构,以及如何创建和管理服务组件,包括命令行构建和Eclipse插件辅助开发的方式。学习并掌握这些知识,将有助于你构建灵活、可扩展的分布式系统。
《Tuscany SCA在行动》一书深入探讨了Service Component Architecture(SCA)与Apache Tuscany项目,这是IT领域内对服务组件架构及其实现的重要研究资料。以下是基于标题、描述、部分目录和标签生成的相关IT知识点:...
Apache Tuscany SCA(Service Component Architecture)是Apache软件基金会开发的一个开源项目,它提供了一个用于构建、部署和管理服务的框架。SCA是一种服务导向架构(SOA)标准,旨在简化不同技术间的互操作性,使...
总结来说,“Tuscany发布Web服务实例”是一个实践性的教程,旨在教会开发者如何使用Apache Tuscany来快速搭建和发布Web服务。通过这个实例,你可以掌握SOA的基本概念,以及如何利用Tuscany的特性来实现服务的创建、...
通过Tuscany,开发者可以使用简单的企业级编程模型,基于Plain Old Java Objects (POJOs)来构建服务,这使得在SOA环境中编写和组装服务变得更加简单。 对比ServiceMix和Tuscany/SCA,我们可以看到它们各有侧重点。...
Apache Tuscany 是一个致力于提供基于SCA和SDO的SOA运行时的开源项目。它当时处于Apache孵化器阶段,提供了Java和C++的实现。Java实现与Apache Tomcat和Axis一起运行,目标是未来能够支持更强大的运行时环境,如...
【Tuscany实战源代码】是一份非常宝贵的资源,它主要涵盖了Apache Tuscany的相关实践与源码解析,旨在帮助那些无法便捷访问网络的学习者深入理解Tuscany框架的内部工作原理和应用方法。Apache Tuscany是一个开源的...
- **SCDL (Service Component Definition Language)**:一种用于描述服务组件的标准语言,是SCA的核心组成部分之一。 #### 四、部分开源实现 1. **Tuscany** - **概述**:Apache Tuscany是一个开源项目,致力于...
SCA规范包括组装、实现、语言、策略框架、绑定等多个方面,如Java、JEE、Spring、C++、BPEL、安全性、可靠消息传递、事务处理、Web服务、JMS和JCA等。它为开发者提供了构建SOA应用的模型和路径。 面向服务架构(SOA...
- WSDL (Web Services Description Language): 一种XML格式,用于描述Web服务的功能、消息格式以及如何访问这些服务。 - **SCA/JBI服务组装模型** - SCA (Service Component Architecture): 定义了一个语言中立的...
本节将指导你如何使用Apache Tuscany在Eclipse中创建一个基于SCA技术的Web商店购物车应用。该应用由四个服务组成: 1. **目录服务(Catalog Service)**:提供商品目录信息。根据其货币代码属性配置,可以返回商品...
SCA是一种面向服务的架构(SOA)标准,它提供了一种用于构建、组装和部署分布式应用和服务的方法。在这个过程中,我们将深入探讨SCA的组件、接口、绑定、组装方式以及在实际生产环境中的部署策略。 在SCA中,一个...
SCA(Service Component Architecture)是一种用于构建服务导向架构(SOA)的应用框架,它提供了一种标准的方式来组合、部署和管理软件组件。在本文档中,我们将深入探讨如何配置和安装SCA开发环境,以便进行相关...
SCA 提供了一种统一的方式来组织和连接各种服务,无论这些服务是基于Java、Web服务还是其他技术。而“Java 运行环境”则指的是Java虚拟机(JVM),它是运行Java程序所必需的基础平台。 **描述解析:** 描述中的 ...
Tuscany的基本架构围绕SCA的关键概念——Implementation、Binding、Data Binding和Interface展开,为整合不同平台的服务提供了强大的支撑。 - **Implementation**:指SCA组件的实现方式,可以采用包括POJO、EJB、...