用JSP調用以Web應用形式部署在Tomcat 5.5中的SCA服務元件的例子

來源:互聯網
上載者:User

Composite是部署的基本單元。在裝配檔案中,composite元素是根項目。

composite元素可以包含composite、service、component、reference等其他元素,component是非常重要的元素。

component元素可以包含0...n個Service,Reference,property 和0...1個implementation。

實現component中的implementation的方式可以有Java、BPEL、Composite等,如。

在這個例子中,就是使用Composite方式實現composite中包括的component的implementation。

在基於Web應用的SCA服務元件的裝配檔案中,是這樣表示composite實現component的。

檔案名稱為default.scdl

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
           name="CalculatorComposite">

    <component name="CalculatorServiceComponent">
        <implementation.composite name="CalculatorComposite" jarLocation="lib/sample-calculator-1.0-incubator-M2.jar"/>
    </component>
</composite>

在發布的web應用目錄的WEB-INF中,有一個lib目錄,裡面儲存著運行SCA應用運行需要的環境,也包括包含著當前web應用需要的代碼和裝配檔案組成的jar包 sample-calculator-1.0-incubator-M2.jar 。這個jar包的內容就是前面舉例(Tuscany SCA以獨立應用方式啟動並執行簡單例子 )使用的jar包,通過default.scdl應用裝配檔案載入到運行環境中。

與可獨立啟動並執行SCA服務元件不同的是,web應用服務元件環境的建立和裝配過程是通過web.xml中servlet的組件listener和filter來完成的。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

    <display-name>Apache Tuscany Simple Webapp Sample</display-name>

    <welcome-file-list id="WelcomeFileList">
        <welcome-file>calc.jsp</welcome-file>
    </welcome-file-list>

    <filter>
        <filter-name>TuscanyFilter</filter-name>
        <filter-class>org.apache.tuscany.runtime.webapp.TuscanyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>TuscanyFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.apache.tuscany.runtime.webapp.TuscanyContextListener</listener-class>
    </listener>
</web-app>

 

web服務啟動後,可以通過jsp訪問SCA服務元件。

calc.jsp

<%@ page import="calculator.CalculatorService" %>
<%@ page import="org.osoa.sca.CompositeContext" %>
<%@ page import="org.osoa.sca.CurrentCompositeContext" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    CompositeContext context = CurrentCompositeContext.getContext();
    CalculatorService calc = context.locateService(CalculatorService.class, "CalculatorServiceComponent");
%>
<html>
<head><title>Calculator sample</title></head>

<body>
<table>
    <tr>
        <th>Expression</th><th>Result</th>
    </tr>
    <tr>
        <td>2 + 3</td><td><%= calc.add(2, 3) %></td>
    </tr>
    <tr>
        <td>3 - 2</td><td><%= calc.subtract(3, 2) %></td>
    </tr>
</table>
</body>
</html>

 

<END>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.