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>