使用maven创建tuscany-quickstart项目,其实就是maven web项目,主要是使用自动生成的架构,如下所示
maven引用如下
hello.composite配置文件如下
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://st"
name="st">
<component name="HelloComponent">
<implementation.spring location="applicationContext.xml"/>
</component>
</composite>
spring配置文件applicationContext.xml如下,注意为了能够支持SCA标签,需要添加域名空间。但是http://www.springframework.org/schema/sca现在访问不到,会导致该文件报错,但不影响运行。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sca="http://www.springframework.org/schema/sca"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/sca
http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd">
<sca:service name="HelloService" target="HelloServiceImpl" />
<bean id="HelloServiceImpl" class="st.HelloServiceImpl" />
</beans>
类和web.xml文件跟
Tuscany发布Web Service示例这篇博客里的一样,注意项目名和包名可能不一致,按实际情况修改。将项目部署于tomcat下运行,测试如下
package test;
import org.apache.tuscany.sca.TuscanyRuntime;
import org.apache.tuscany.sca.Node;
import org.oasisopen.sca.NoSuchServiceException;
import st.HelloService;
public class HelloTest {
public static void main(String[] args) throws NoSuchServiceException {
Node node = TuscanyRuntime.runComposite("hello.composite","target/classes");
try {
HelloService service = node.getService(HelloService.class,"HelloComponent");
System.out.println(service.sayHello("World"));
} finally {
node.stop();
}
}
}