本文讲述基于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的复杂来说,发布服务是如此的简单
分享到:
相关推荐
毕业论文,基于SCA的SOA架构研究与实现
SOA之SCA导航-Apache Tuscany篇,Apache Tuscany入门指南。
Tuscany SCA in Action
5个代码例子使用的是 Tuscany1.5版本。请在官网下载jar包。 下载地址:http://archive.apache.org/dist/tuscany/java/sca/1.5/apache-tuscany-sca-1.5.zip 5个例子从不同的角度讲解了tuscany的整体架构思想。文档...
技术文档PPT;技术文档PPT技术文档PPT技术文档PPT技术文档PPT技术文档PPT技术文档PPT技术文档PPT技术文档PPT
SCA、SOA与OSGi概念浅析SCA、SOA与OSGi概念浅析
#资源达人分享计划#
基于SCA规范Tuscany的SOA的实现
NULL 博文链接:https://irwenqiang.iteye.com/blog/1083282
apache-tuscany-sca-1.6.2 包括源码实例
soa sca服务构件架构spring构件实现方案
基于SCA的Composite实现的服务递归组合,吴奇,,SCA作为SOA的编程模型得到了世界很多厂商的支持,它的出现不光弥补了Web Service在服务组合方面的不足,也为我们提供了一整套的基于SOA�
Apache Tuscany SCA 用户指南
SCA服务构件架构Spring构件实现规范,SOA规范
使用tuscany配置和发布简单的webservcie接口例子
面向服务的架构(SOA)是全球IT供应商广泛讨论的热门话题,IBM、Hawlett-Packard、Software AG、oracle、SAP、及Microsoft等公司都已成为SOA的支持者,许多供应商都在开发基于SOA的产品.但国内很多软件公司对SOA的认知...