您的位置:首页 > 运维架构 > Apache

《SOA思想、技术与系统集成应用详解》读书笔记四-《SOA核心技术及应用》Apache Tuscany sca安装及与eclipse结合

2010-10-14 16:48 459 查看
我们在该系列读书笔记上篇了解了SCA的组成与思想,那如何实现SCA呢?最为常用的开源项目是Apache Tuscany SCA。它共分为三部分:SCA的开源实现,实现服务的整合;SDO的开源实现,实现数据的整合;DAS数据访问服务,提供SDO到关系数据库的接口服务。而且分别提供了java和C++的实现。

Apache Tuscany SCA如何使用呢?如何用它来搭建项目呢?在eclipse中如何与Tuscany结合呢?这些是我们要进一步使用Tuscany,深入了解SCA规范的前提!相信我,网上资源虽然很丰富,但是笔者阅遍各种写法,均没有试验成功!这也是因为Tuscany正在完善,相关工具及软件包都在改进中。直接入主题,开始Tuscany的体验。

1. 安装Maven2。

解压缩,配置环境变量,将maven目录加入到path中。至于mavne2是干什么的,如何使用,哪里下载?见

http://blog.csdn.net/whuqin/archive/2010/07/02/5709551.aspx和http://blog.csdn.net/whuqin/archive/2010/07/16/5740452.aspx。笔者使用的是apache maven-2.0.9版。

2. 下载Tuscany SCA源码,用maven进行构建。

Apache Tuscany SCA下载地址http://tuscany.apache.org/sca-java-2x-releases.html,笔者下载的是Tuscany SCA java 2.0 M5版。在cmd下进入tuscany sca源代码目录D:/Program File/tuscany-sca-2.0-M5-src,输入命令mvn,下面maven就开始自动下载相关文件、构建Tuscany项目。耐心等待,下载一个长时间没反应时,按ctrl+c结束后,重新输入mvn继续Down!

3. maven与eclipse的结合。

笔者使用的eclipse是Galileo-3.5版。首先,告诉eclipse maven的中央仓库的位置-maven项目所依赖的包存储位置,一般都在C:/Documents and Settings/username/.m2下。在cmd下,输入命令:

mvn -Declipse.workspace=E:/JEE eclipse:add-maven-repo


workspace为eclipse的工作目录。

其次,输入命令:

mvn archetype:create -DgroupId=test -DartifactId=mvnTest


就会在当前目录下,构建项目mvnTest。进入mvnTest项目目录,输入命令:

mvn eclipse:eclipse


那么项目mvnTest将会转变成eclipse项目,你会发现在mvnTest目录下生成了.project和.classpath文件。经常用eclipse就会知道这些eclipse项目特有的。下面就可以打开eclipse,当然了工作目录一定是命令mvn -Declipse.workspace所指定的目录E:/JEE。在eclipse菜单里选择File-import-general-existing projects into workspace,选择mvnTest项目,点击finish完成。之后就可以在eclipse对maven项目mvnTest进行开发了。无图无真相,eclipse下maven项目结构如图:



如果项目需要更多的依赖包,可以在pom.xml中增加包依赖,然后运行命令mvn eclipse:eclipse,在eclipse中刷新项目即可引入新包了。如若嫌麻烦可使用插件m2eclipse或mavenIDE。

4. 创建Tuscany SCA项目的maven原型。

maven原型(archetype)是用于构建项目的模板。即以后用maven创建tuscany sca项目时,结构就会和我们定义的原型完全一致。

4.1 cmd下输入命令

mvn archetype:create
-DgroupId=org.apache.maven.archetype
-DartifactId=maven-archetype-tuscany-sca
-DarchetypeArtifactId=maven-archetype-archetype


按照步骤3将项目maven-archetype-tuscany-sca导入eclipse。如下图:



其中,archetype.xml为maven项目原型的描述文件。

4.2 在src/main/java/resources/archetype-resources/src/main/java下,新建文件夹resources,并在其下新建文件App.composite(SCA的模块定义文件)。代码如下:

App.composite-
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="App">
<component name="AppComponent">
<implementation.java class="${package}.App"/>
</component>
</composite>


修改原型描述文件archetype.xml为下:

<archetype>
<id>maven-archetype-tuscany-sca</id>
<sources>
<source>src/main/java/App.java</source>
</sources>
<resources>
<resource>src/main/resources/App.composite</resource>
</resources>
<testSources>
<source>src/test/java/AppTest.java</source>
</testSources>
</archetype>


修改项目对象模型文件/src/main/resources/archetype-resources/pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<packaging>jar</packaging>
<version>${version}</version>
<name>${artifactId}</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>apache.incubator</id>
<url>http://people.apache.org/repo/m2-incubating-repository</url>
</repository>
</repositories>
<dependencies>

<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-host-embedded</artifactId>
<version>1.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-implementation-java-runtime</artifactId>
<version>1.0-incubating</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca-api</artifactId>
<version>2.0-M5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<finalName>${artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tuscany.maven.plugins</groupId>
<artifactId>maven-tuscany-plugin</artifactId>
<version>2.0-M5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>


修改主java文件src/main/resources/archetype-resources/src/main/java/App.java如下:

package ${package};
/**
* Hello Tuscany!
*
*/
public class App
{
public String tuscany(){
return "Hello Tuscany";
}
}


修改java测试文件src/main/resources/archetype-resources/src/test/java/AppTest.java如下:

package ${package};
import static org.junit.Assert.*;
import org.apache.tuscany.sca.host.embedded.SCADomain;
import org.junit.Test;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* Rigourous Test :-)
*/
@Test public void testTuscany()
{
SCADomain scaDomain = SCADomain.newInstance("App.composite");
IApp app=scaDomain.getService(IApp.class,"AppComponent");
assertNotNull(app);
assertNotNull(app.tuscany());
scaDomain.close();
}

public interface IApp
{
public String tuscany();
};
}


其中${package}为包名,用maven创建项目时,会被groupId代替。到此tuscany sca项目原型修改完毕,结构如下图:



4.3 在cmd下进入maven-archetype-tuscany-sca项目目录,输入命令mvn install。该原型项目就会被打包成jar形式存入maven的中央仓库。jar包名为:maven-archetype-tuscany-sca-1.0-SNAPSHOT.jar。

至此tuscany sca项目原型已经创建完了,以后在创建tuscany sca项目时,只需要在cmd下输入命令如下:

mvn archetype:create
-DarchetypeArtifactId=maven-archetype-tuscany-sca
-DarchetypeVersion=1.0-SNAPSHOT
-DgroupId={你要创建项目的包名,如org.apache}
-DartifactId={项目名}


然后将项目导入到eclipse下即可。

Tuscany sca java项目的创建及与eclipse的结合介绍完毕。下面我们就可以创建SCA项目,深入理解SCA规范了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐