本文讲述基于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的复杂来说,发布服务是如此的简单
分享到:
相关推荐
使用Tuscany插件,将Java类打包为SCA服务组件,并配置发布为Web Service。 2.4. 测试Web Service 通过测试客户端或使用Eclipse内建的工具,验证Web Service是否正常工作。 通过以上内容,你可以了解到如何利用...
《Tuscany SCA在行动》一书深入探讨了Service Component Architecture(SCA)与Apache Tuscany项目,这是IT领域内对服务组件架构及其实现的重要研究资料。以下是基于标题、描述、部分目录和标签生成的相关IT知识点:...
总结来说,“Tuscany发布Web服务实例”是一个实践性的教程,旨在教会开发者如何使用Apache Tuscany来快速搭建和发布Web服务。通过这个实例,你可以掌握SOA的基本概念,以及如何利用Tuscany的特性来实现服务的创建、...
Apache Tuscany SCA(Service Component Architecture)是Apache软件基金会开发的一个开源项目,它提供了一个用于构建、部署和管理服务的框架。SCA是一种服务导向架构(SOA)标准,旨在简化不同技术间的互操作性,使...
通过Tuscany,开发者可以使用简单的企业级编程模型,基于Plain Old Java Objects (POJOs)来构建服务,这使得在SOA环境中编写和组装服务变得更加简单。 对比ServiceMix和Tuscany/SCA,我们可以看到它们各有侧重点。...
Apache Tuscany 是一个致力于提供基于SCA和SDO的SOA运行时的开源项目。它当时处于Apache孵化器阶段,提供了Java和C++的实现。Java实现与Apache Tomcat和Axis一起运行,目标是未来能够支持更强大的运行时环境,如...
- **SCDL (Service Component Definition Language)**:一种用于描述服务组件的标准语言,是SCA的核心组成部分之一。 #### 四、部分开源实现 1. **Tuscany** - **概述**:Apache Tuscany是一个开源项目,致力于...
SCA是一种SOA(Service-Oriented Architecture)编程模型,能够帮助企业级应用快速地构建和集成各种服务。 SCA的主要特点包括: * 语言无关性:SCA不依赖于具体的编程语言,可以在不同的语言和平台上实现。 * 平台...
【Tuscany实战源代码】是一份非常宝贵的资源,它主要涵盖了Apache Tuscany的相关实践与源码解析,旨在帮助那些无法便捷访问网络的学习者深入理解Tuscany框架的内部工作原理和应用方法。Apache Tuscany是一个开源的...
Apache Tuscany是一个在Apache软件基金会孵化器中的开源项目,致力于简化面向服务架构(Service-Oriented Architecture, SOA)中复合应用的开发、组装、部署和管理。该项目实现了由OASIS OpenCSA定义的服务组件架构...
- UDDI (Universal Description, Discovery and Integration): 提供了一个注册中心,用于发布、查找和集成Web服务。 - SOAP (Simple Object Access Protocol): 一种轻量级协议,用于交换结构化的和与应用程序无关...
SCA是一种面向服务的架构(SOA)标准,它提供了一种用于构建、组装和部署分布式应用和服务的方法。在这个过程中,我们将深入探讨SCA的组件、接口、绑定、组装方式以及在实际生产环境中的部署策略。 在SCA中,一个...
SCA 提供了一种统一的方式来组织和连接各种服务,无论这些服务是基于Java、Web服务还是其他技术。而“Java 运行环境”则指的是Java虚拟机(JVM),它是运行Java程序所必需的基础平台。 **描述解析:** 描述中的 ...
本节将指导你如何使用Apache Tuscany在Eclipse中创建一个基于SCA技术的Web商店购物车应用。该应用由四个服务组成: 1. **目录服务(Catalog Service)**:提供商品目录信息。根据其货币代码属性配置,可以返回商品...
SCA(Service Component Architecture)是一种用于构建服务导向架构(SOA)的应用框架,它提供了一种标准的方式来组合、部署和管理软件组件。在本文档中,我们将深入探讨如何配置和安装SCA开发环境,以便进行相关...
例如,一个SCA组件可以通过提供WS服务并引用CORBA服务,使外部调用者通过WS协议间接调用CORBA服务,实现跨协议调用。数据格式的转换则通过Tuscany内部的消息转换器完成,如将SDO转换为其他格式,这背后的转换路径...