Hello Tuscany

1.创建maven web 项目
2.pom.xml配置tuscany依赖
3.配置web.xml
4.创建测试接口和实现类
5.配置classpath/META-INF/sca-deployables/*.composite
6.使用REST Client 调用 http://localhost:8080/部署名/testRest/testList1?id=xxx

<!-- pom.xml -->
<dependency>
    <groupId>org.apache.tuscany.sca</groupId>
    <artifactId>tuscany-base-runtime</artifactId>
    <version>${tuscany.version}</version>
    <exclusions>
        <!-- 防止旧版本 和新版本冲突 -->
        <exclusion>
            <groupId>org.apache.neethi</groupId>
            <artifactId>neethi</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.tuscany.sca</groupId>
    <artifactId>tuscany-binding-rest-runtime</artifactId>
    <version>${tuscany.version}</version>
    <exclusions>

        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-assembly</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-xml</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-xsd</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-binding-rest</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-binding-rmi</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-common-http</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-common-java</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-common-xml</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-contribution</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-core-spi</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-extensibility</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-interface-java</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-interface-wsdl</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-monitor</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-sca-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-web-javascript</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-xsd</artifactId>
        </exclusion>

        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
        </exclusion>
        <!-- -->
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.tuscany.sca</groupId>
    <artifactId>tuscany-binding-rmi-runtime</artifactId>
    <version>${tuscany.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-binding-rmi</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- web.xml -->
<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>

//接口
@Remotable
public interface TestInterface {
    @GET
    @Path("testList1")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    List<String> testList(@QueryParam("id") String id);
}

//实现类
public class TestImp implements TestInterface {
    @Override
    public List<String> testList(String id) {
        int i = 0;
        List<String> list = new ArrayList<>();
        while (i < 10){
            list.add(i + "");
            i++;
        }
        return list;
    }
}

<!-- .composite -->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
           xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
           targetNamespace="http://com.grover.mdm.sca"
           name="mdm">
    <component name="TestComponent">
        <implementation.java class="com.grover.mdm.test.TestImp"/>
        <service name="TestInterface" >
           <tuscany:binding.rest name="testJaxrsBind" uri="/mdm/testRest">
              <tuscany:wireFormat.json />
              <tuscany:operationSelector.jaxrs />
           </tuscany:binding.rest>
        </service>
    </component>

</composite>

猜你喜欢

转载自450691503.iteye.com/blog/2256905
今日推荐