| 層級 | 技術/工具 | 版本建議 | 說明 |
|---|---|---|---|
| IDE | MyEclipse | 8.x / 2019+ | 內建 Maven、Tomcat 管理、熱部署 |
| 應用伺服器 | Apache Tomcat | 6.0 / 8.5 / 9.0 | Servlet 容器,部署 BlazeDS WAR |
| Flex IDE | Flash Builder (原 Flex Builder) | 3.0 / 4.7 | 獨立版優於 Eclipse 插件版穩定性 |
| 資料庫 | MySQL | 5.0 / 5.7 / 8.0 | 配合 MySQL GUI Tools / Workbench |
| Remoting | BlazeDS | 4.x (最新) | 開源 AMF 實現,支援遠程物件、消息、代理服務 |
| 事務管理 | JOTM | 2.0.10 | 為 Tomcat 提供 JTA 分散式事務支援 |
| JDBC 驅動 | MySQL Connector/J | 5.1 / 8.0 | 放入 Tomcat lib 目錄共享 |
[TOMCAT_HOME]/lib):
jotm,複製 lib/*.jar 至 Tomcat lib。mysql-connector-java.jar 至 Tomcat lib。blazeds.war (官網 Release Builds)。[TOMCAT_HOME]/webapps,重啟 Tomcat 自動展開為 blazeds/ 目錄。https://localhost:8080/blazeds/ 見歡迎頁。// 檔案:src/tree/HelloWorld.java
package tree;
public class HelloWorld {
public HelloWorld() {}
public String getHelloWorld() { return "Hello World!"; }
}
HelloWorld.class。[TOMCAT_HOME]/webapps/blazeds/WEB-INF/classes/tree/。<!-- [TOMCAT_HOME]/webapps/blazeds/WEB-INF/flex/remoting-config.xml -->
<destination id="helloService">
<properties>
<source>tree.HelloWorld</source>
<scope>application</scope>
</properties>
</destination>
<mx:RemoteObject id="ro" destination="helloService" result="onResult(event)" fault="onFault(event)"/>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function init():void { ro.getHelloWorld(); }
private function onResult(e:ResultEvent):void { trace("Java 回傳: " + e.result); }
private function onFault(e:FaultEvent):void { trace("錯誤: " + e.fault.faultString); }
]]>
</mx:Script>
UserTransaction 查找失敗。WEB-INF/classes,勿放入 Tomcat 共享 lib,避免熱部署類載入衝突。services-config.xml 中 channel-definition id="my-amf" URL 指向 https://{server.name}:{server.port}/{context.root}/messagebroker/amf。Flex/Flash Player 已停止更新 (2020 EOL)。新專案建議: