`
紧急下潜
  • 浏览: 19449 次
  • 性别: Icon_minigender_1
  • 来自: 大陆
文章分类
社区版块
存档分类
最新评论

基于SCA(tuscany)的SOA实践之一(发布web服务是如此的简单)

阅读更多
本文讲述基于SCA(tuscany)的SOA实践,第一篇讲发布服务,tuscany支持N多协议,这里主要是针对webservice
先说一下开发环境jdk6+eclipse3.4+wst+stp+tuscany1.3.1
1   建立一个动态web工程tuscanytest,源文件目录是src/main/java,资源文件目录是src/main/resources,web 目录是src/main/webapp,把tuscany的jar复制到src/main/webapp/WEB-INF/lib/目录下

2   接口,sca中接口可以有java和wsdl2种方法,本例使用java
    定义接口 IUserservice,代码如下
package com.tuscanytest.service;

import java.util.List;

import org.osoa.sca.annotations.Remotable;

@Remotable
public interface IUserservice {
//如果服务是分布式的,就需要使用@Remotable声明
    List<User> getAll();
}

3 定义User和Address类,都是简单的pojo对象,代码如下
User类
package com.tuscanytest.service;

public class User {

    private String id;
    private String name;
    private String password;
    private Address address;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

}
Address类
package com.tuscanytest.service;

public class Address {

    private String street;

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

}  

4 定义IUserservice的UserServiceImpl实现类,这里只是简单的从内存中获得模拟数据,代码如下
package com.tuscanytest.service;

import java.util.ArrayList;
import java.util.List;

public class UserServiceImpl implements IUserservice {

    private static List<User> users = null;
    static {
        users = new ArrayList<User>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setId("id" + i);
            user.setName("name" + i);
            user.setPassword("password" + i);
            Address address = new Address();
            address.setStreet("street" + i);
            user.setAddress(address);
            users.add(user);
        }
    }

    public List<User> getAll() {
        return users;
    }

}

5 在src/main/resources/下定义default.composite文件,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
    xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" name="tuscanytest"
    targetNamespace="http://serivce.tuscanytest.com">
    <component name="UserServiceImpl">
        <implementation.java class="com.tuscanytest.service.UserServiceImpl"></implementation.java>
    </component>
    <service name="UserService" promote="UserServiceImpl">
        <interface.java interface="com.tuscanytest.service.IUserservice" />
        <binding.ws></binding.ws>
        <!--定义了发布服务绑定的协议,使用webservice,还有其他多种协议绑定,可参考tuscany文档-->
    </service>
</composite>
文件最终部署到webapp/WEB-INF/classes/目录下即可

6 定义sca-contribution.xml,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
              targetNamespace="http://serivce.tuscanytest.com"
              xmlns:tuscanytest="http://serivce.tuscanytest.com">
   <deployable composite="tuscanytest:tuscanytest"/>
</contribution>
文件最终部署到webapp/META-INF/目录下即可

7 修改webapp/WEB-INF/web.xml文件,添加如下的filter
    <filter>
        <filter-name>tuscany</filter-name>
        <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>tuscany</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

8 然后启动部署到web服务器上,访问地址http://localhost:9080/tuscanytest/UserService?wsdl,就可以看到wsdl服务描述文件

看你只需要增加一行配置,一个普通的java类就变成了web服务了
比起axis2的复杂来说,发布服务是如此的简单

3
3
分享到:
评论

相关推荐

    SOA之SCA导航-Apache Tuscany篇

    使用Tuscany插件,将Java类打包为SCA服务组件,并配置发布为Web Service。 2.4. 测试Web Service 通过测试客户端或使用Eclipse内建的工具,验证Web Service是否正常工作。 通过以上内容,你可以了解到如何利用...

    Tuscany SCA in Action

    《Tuscany SCA在行动》一书深入探讨了Service Component Architecture(SCA)与Apache Tuscany项目,这是IT领域内对服务组件架构及其实现的重要研究资料。以下是基于标题、描述、部分目录和标签生成的相关IT知识点:...

    tuscany发布webservice实例

    总结来说,“Tuscany发布Web服务实例”是一个实践性的教程,旨在教会开发者如何使用Apache Tuscany来快速搭建和发布Web服务。通过这个实例,你可以掌握SOA的基本概念,以及如何利用Tuscany的特性来实现服务的创建、...

    Apache Tuscany SCA 用户指南StepByStep

    Apache Tuscany SCA(Service Component Architecture)是Apache软件基金会开发的一个开源项目,它提供了一个用于构建、部署和管理服务的框架。SCA是一种服务导向架构(SOA)标准,旨在简化不同技术间的互操作性,使...

    How does ServiceMix compare to Tuscany or SCA

    通过Tuscany,开发者可以使用简单的企业级编程模型,基于Plain Old Java Objects (POJOs)来构建服务,这使得在SOA环境中编写和组装服务变得更加简单。 对比ServiceMix和Tuscany/SCA,我们可以看到它们各有侧重点。...

    SOA2007_en_Mike%20edwards_SCA_SDO_Implementations_May_2007.pdf

    Apache Tuscany 是一个致力于提供基于SCA和SDO的SOA运行时的开源项目。它当时处于Apache孵化器阶段,提供了Java和C++的实现。Java实现与Apache Tomcat和Axis一起运行,目标是未来能够支持更强大的运行时环境,如...

    SOA相关标准规范简介

    - **SCDL (Service Component Definition Language)**:一种用于描述服务组件的标准语言,是SCA的核心组成部分之一。 #### 四、部分开源实现 1. **Tuscany** - **概述**:Apache Tuscany是一个开源项目,致力于...

    SCA学习笔记

    SCA是一种SOA(Service-Oriented Architecture)编程模型,能够帮助企业级应用快速地构建和集成各种服务。 SCA的主要特点包括: * 语言无关性:SCA不依赖于具体的编程语言,可以在不同的语言和平台上实现。 * 平台...

    Tuscany实战源代码

    【Tuscany实战源代码】是一份非常宝贵的资源,它主要涵盖了Apache Tuscany的相关实践与源码解析,旨在帮助那些无法便捷访问网络的学习者深入理解Tuscany框架的内部工作原理和应用方法。Apache Tuscany是一个开源的...

    Tuscany-SOAWorld

    Apache Tuscany是一个在Apache软件基金会孵化器中的开源项目,致力于简化面向服务架构(Service-Oriented Architecture, SOA)中复合应用的开发、组装、部署和管理。该项目实现了由OASIS OpenCSA定义的服务组件架构...

    SOA相关标准规范初步整理

    - UDDI (Universal Description, Discovery and Integration): 提供了一个注册中心,用于发布、查找和集成Web服务。 - SOAP (Simple Object Access Protocol): 一种轻量级协议,用于交换结构化的和与应用程序无关...

    SCA产品部署

    SCA是一种面向服务的架构(SOA)标准,它提供了一种用于构建、组装和部署分布式应用和服务的方法。在这个过程中,我们将深入探讨SCA的组件、接口、绑定、组装方式以及在实际生产环境中的部署策略。 在SCA中,一个...

    TuncanySCA2-Tuncany SCA Java 运行环境

    SCA 提供了一种统一的方式来组织和连接各种服务,无论这些服务是基于Java、Web服务还是其他技术。而“Java 运行环境”则指的是Java虚拟机(JVM),它是运行Java程序所必需的基础平台。 **描述解析:** 描述中的 ...

    Getting Started with Tuscany.pdf

    本节将指导你如何使用Apache Tuscany在Eclipse中创建一个基于SCA技术的Web商店购物车应用。该应用由四个服务组成: 1. **目录服务(Catalog Service)**:提供商品目录信息。根据其货币代码属性配置,可以返回商品...

    SCA环境配置,安装

    SCA(Service Component Architecture)是一种用于构建服务导向架构(SOA)的应用框架,它提供了一种标准的方式来组合、部署和管理软件组件。在本文档中,我们将深入探讨如何配置和安装SCA开发环境,以便进行相关...

    SCA 学习-装配规范

    例如,一个SCA组件可以通过提供WS服务并引用CORBA服务,使外部调用者通过WS协议间接调用CORBA服务,实现跨协议调用。数据格式的转换则通过Tuscany内部的消息转换器完成,如将SDO转换为其他格式,这背后的转换路径...

Global site tag (gtag.js) - Google Analytics