2010年6月8日 星期二

Blazeds4 配置與Flex Remote測試 ,使用tomcat6

§Blazeds 配置與Flex Remote測試(for windows system)
注意:本文使用的是tomcat6 , Blazeds 4
Step1.至Adobe Open Source取得Blazeds。
  • Adobe Open Source頁面用IE開啟版面會跑掉,可以使用google瀏覽器開啟頁面。








 登入後按下IAgree




找到Download,下載BlazeDS binary distribution版本

  • turnkey是內含了tomcat
  • binary  distrbution單純就只有BlazeDS










Step2.將下載回來的BlazeDS壓縮檔解壓縮

  • 解壓縮後,於資料夾內會有兩隻檔案,blazeds.war  blazeds-bin-readme.htm

Step3.將blazeds.war置放於tomcat底下的webapps資料夾
  • 執行startup運行tomcat,該批次檔位於C:\[你的tomcat資料夾名稱]\bin\startup
  • Tomcat運行中遇到.war的檔案會自動將他解壓縮,會看見在webapps底下多了一個blazeds資料夾。
問題:未自動解壓,如果tomcat未自動解壓,是因為tomcat的server.xml未配置。
解決方式:
  • 編輯C:\[你的tomcat資料夾]\conf\server.xml檔。
  • 於Host參數中加入deployOnStartup="true"
  unpackWARs="true" autoDeploy="true"
  xmlValidation="false" xmlNamespaceAware="false">


  • 如果你覺得麻煩也可以用解壓縮程式來解他,但tomcat如果會自動解是比較方便。

Step4.更改解壓完blazeds資料夾
  • 將blazeds改成blazedsAMF
  • 更改完成後應為:C:\tomcat6\webapps\blazedsAMF
  • 此步驟可以不變更,依照自己的喜好習慣來決定。
Step6.於blazedsAMF\WEB-INF\src裡創建tw\com\myRemoteService的資料夾結構
  • 建立好結構:
  • C:\[tomcat資料夾]\webapps\blazedsAMF\WEB-INF\src\tw\com\myRemoteService
Step7.於\webapps\blazedsAMF\WEB-INF\src\tw\com\myRemoteService中建立一支SayHello.java


Tomcat 安裝配置 for windows

§Tomcat 安裝配置 for windows
安裝tomcat前因先安裝JDK,請參考JDK安裝配置

Step1.下載Tomcat6.x

  • Tomcat官方網站點擊DownLoad底下的Tomcat 6.x開啟下載頁面。




  • 點擊TomCat 6. x 以便開啟下載頁面。


  • Tomcat Connectors是用來讓Tomcat與apache Server連結,也可用來做Load Balancing。


  • Documentation相關於Tomcat的使用文件。




 在下載頁面中可以使用Quick Navigation的快速錨點連結到Tomcat6.x載下處






Tomcat 6.x 個版本下載連結點











32-bit/64-bit Windows Service Installer (pgpmd5),具有install方便安裝的版本。
32-bit Windows zip (pgpmd5),for 32位元 windows系統,不具install。
64-bit Windows zip (pgpmd5),for 64位元 windwos系統,不具install。
請依需求下載,本文使用32-bit Windows zip (pgpmd5)。

Stpe2:將下載完之tomcat解壓縮,並將資料夾更名為tomcat6,並將資料夾複製於C:\底下。
完成後應為: C:\tomcat6

Stpe3-1:設定環境變數 CATALINA_HOME

  • 打開環境變數設定變板:
我的電腦 → 滑鼠右鍵 → 內容 → 進階 → 環境變數。
  • 新增系統變數CATALINA_HOME:
系統變數 → 新增

變數名稱:CATALINA_HOME
變數值 :C:\tomcat6








Step3-2.設定環境變數 CATALINA_BASE

  • 新增系統變數CATALINA_BASE
變數名稱:CATALINA_BASE
變數值 :C:\tomcat6









Step4.StartUp Tomcat

  • 進入C:\tomcat6\bin底下,執行startup.bat批次檔,讓tomcat運行。
  • 檔案所在:C:\tomcat6\bin\startup

執行結果資訊:
















  • Starting Coyte HTTP/1.1 on http-8080,這是目前tomcat預設的Http協定走的Port 為8080,稍後我們再來變更config。
  • Starting Coyte AJP/1.3 ,這是連接器使用的通訊協定跟Port,是用來與apache連接的通訊方式。

Stpe5.測試Tomcat運行狀況

  • 在瀏覽器中輸入http://127.0.0.1:8080/ ,測試tomcat運作與否。
  • 若Tomcat已運行,會開啟如下畫面。












Step6. shutdown Tomcat

  • 進入C:\tomcat6\bin底下,執行shutdown .bat批次檔,讓tomcat關閉服務。
  • 檔案所在:C:\tomcat6\bin\shutdown 
  • 再次用瀏覽器開啟http://127.0.0.1:8080 ,將無法開啟tomcat歡迎頁面

Stet7.更改Http協定使用之通訊Port與編碼

  • 打開C:\tomcat6\conf下的server.xml
  • 檔案所在:C:\tomcat6\conf\server.xml
找到如:
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

將port="8080" 改成port="8400"


<Connector port="8400" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />


再次以StartUp開啟tomcat服務。

以瀏覽器開啟http://127.0.0.1:8400/
當出現tomcat歡迎頁,代表Port更改完成。

修改編輯一些config的檔案可以使用Notepad++來代替筆記本,算是一個蠻方便的工具。

Step8.編寫一個測試的index.jsp檔
  • 於webapps中建立一個myTestAPP資料夾,路徑結構如下
  • C:\tomcat6\webapps\myTestApp
  • 使用Notepad++建立一個空白的index.jsp檔,編碼格式選擇編譯成UTF-8(檔頭無BOM),先行存檔。
編寫index.jsp內容:
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>這是一個JSP的測試頁面</title>
<body>
<center>
  現在時間<%=new java.util.Date()%>
</center>
</body>
</html>
 
於瀏覽器中開啟http://127.0.0.1:8400/myTestApp/index.jsp
見到以下畫面即JSP正常運作




Step9.建立WEB-INF資料夾與建立web.xml
於myTestApp底下建立WEB-INF資料夾,並在WEB-INF資料夾中建立一個web.xml檔。
結構如下:
  • C:\tomcat6\webapps\myTestApp\WEB-INF\web.xml
編寫內容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name&gt;My Web Application</display-name>
<description>
tomcat Web page Test
</description>
</web-app>


Step10.於WEB-INF底下建立classes與source兩資料夾
完成後結構為:
  • C:\tomcat6\webapps\myTestApp\WEB-INF\classes
  • C:\tomcat6\webapps\myTestApp\WEB-INF\source
Step11.於classes建立結構tw/com/test
完成後如下結構:
  • C:\tomcat6\webapps\myTestApp\WEB-INF\classes\tw\com\test
Step12.於source中建立Servlet服務測試檔,檔名為ServletTest.java檔案內容如下:

package tw.com.test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTest extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>l;<head><title>");
out.println("This is my first Servlet");
out.println("<</title></head><body>");
out.println("<h1>Hello 綾瀨遙</h1>");
out.println("</body></html>");
}
}

 Step13.編譯ServletTest.java
輸入命令:
  • C:\tomcat6\webapps\myTestApp\WEB-INF\source>javac -d ../classes ServletTest.java
 結果:出現錯誤
















由錯誤訊息得知主要無法import javax.servlet.*與javax.servlet.http.*

Step14.新增CLASSPATH修正無法import問題
修正方式:
於原本CLASSPATH按下編輯新增以下兩個變數值
%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;
設定後CLASSPATH環境變數應為:
.;.\classes\;..\classes\;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar

Step15.再次編譯ServletTest.java
輸入命令:
  • C:\tomcat6\webapps\myTestApp\WEB-INF\source>javac -d ../classes ServletTest.java
結果:
此次通過編譯,可於
C:\tomcat6\webapps\myTestApp\WEB-INF\classes\tw\com\test
路徑裡看到編譯輸出的ServletTest.class檔。


Step16.再次打開編輯WEB-INF底下的web.xml檔,來登記ServletTest.class這隻檔案的映射服務。
 /


PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>My Web Application</display-name>
<description>
tomcat Web page Test
</description>

<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>tw.com.test.ServletTest</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
</web-app>

使用瀏覽器輸入http://127.0.0.1:8400/myTestApp/ServletTest

輸出結果:
Hello,world!



資料參考於以下兩個關於Tomcat的網站
Tomcat官方網站: http://tomcat.apache.org/
Tmcat維基百科: http://zh.wikipedia.org/zh-tw/Apache_Tomcat

2010年6月7日 星期一

Flash AMFPHP Remote 測試範例

§使用NetConnection來做AMF Remote

  • 範例雖是Flex撰寫,但由於使用NetConnection來做Remote連線,所以Flash也適用。

example:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application applicationComplete="init();" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private var _btnEnable:Boolean;
private function init():void
{
_btnEnable = true;
initNetConnection();
}

private var _nc:NetConnection;
private function initNetConnection():void
{
_nc = new NetConnection();
//回呼處理物件
_nc.client = this;
//序列化格式指定
_nc.objectEncoding = ObjectEncoding.AMF3;
//指定AMFServer服務位置
_nc.connect(amfServerUri);
_nc.addEventListener(NetStatusEvent.NET_STATUS , onStatus);
}

private var amfServerUri:String="http://127.0.0.1/flashservices/gateway.php";
private var _source:String = "tw.remote.test.Hello.sayHello";

embed SWF 實做,與問題

開發中遇到問題,先記錄起來,日後研究查詢資料後補上
在embed,SWF時,該SWF至於A網域中,而其他網域Web Server上.html頁面使用HTML標籤embed
SWF,在開發環境可以相對位置使用,但若置於web Server上就必須使用絕對位置,不然會產生,位置錯誤,如A網域中還同時置放了組態xml要給予swf使用,但由於相對位置關係,embed在B網域的swf會變成去讀取B網域中的xml,這樣就會發生錯誤情型。

詢問得知,若要開放embed的swf,xml內的資料須寫入swf,因為若是以絕對位置,會造成難以用網域來做安全管理,若是不開放就把xml寫出來,用動態載入,這樣的確也會因為安全性問題,讓有心人無法embed。

在remote端的server,或是swf想尋訪不同網域的地方都需要一個編輯一個crossdomain.xml,置放於服務server上,如此才能讓swf跨往訪問,可以用來控管不想要的網域連結

-

-


2010年6月6日 星期日

Flex 動態CSS , 動態Style ,利用StyleManager

§使用StyleManager來動態更換CSS檔(動態更換Skin)
以下將簡單表示動態更換Flex的CSS,在CSS中若有設定組件使用swf即達到動態更換Skin
Step1.在Flex專案,於Src底下建立一個css資料夾(packge)。
Step2.建立如下兩個CSS測試檔,取名為projectA.cssprojectB.css
//projectA
/* CSS file */
Panel{
borderColor: #009966;
}
 
//projectB
/* CSS file */
Panel{
borderColor: #0066ff;
}

Step3.於CSS檔上按下滑鼠右鍵,選擇Compile CSS to SWF將兩隻CSS,Compile成SWF。


 
 
 
 
Setep4.建立以下mxml測試檔

2010年6月4日 星期五

JAVA JDK 安裝與測試

§JAVA JDK 安裝與測試 For Winsows
SunJAVA官方網頁下載JDK,JDK下載頁面。

●選擇JDK下載
下載Java Platform, Standard Edition版本,點擊JAVA圖示或Download JDK進入下載選擇頁面

●選擇版本支援平台
1.選擇Windows或Windows64
2.點擊Download下載,會彈出一個登入視窗,
可以直接關掉進入下載頁面。















●點擊檔案開始下載
下載頁中,點擊jdk-6u20-windows-i586.exe下載檔案。




2010年6月1日 星期二

AMFPHP Flex Remote

§Flex AMFPHP Remote測試
承下兩篇安裝
  1. Apache2.2 + PHP + MySQL安裝配置
  2. AMFPHP1.9正式版配置
本文環境會如下
一、本文目前配置環境
OS : Windows XP
WebServer : Apache 2.2
PHP : PHP5.2 (本來使用5.3,發生回呼錯誤,先降為5.2待查5.3 bug)。
DataBase : MySQL 5.1
二、本文上個別系統配置資料夾
Apache的DocumentRoot : C:\Web Site,即網站資料夾,對應URL就是(本機上)Http://localhost/。AMFPHP1.9依官方建議資料夾改名為flashservices置放於C:\Web Site\flashservices

  • 網站資料夾建議改成webSite,不要有空白比較好,若修改記得去修改apache的httpd.conf檔。
Remote測試開始
Step1.建立資料夾
於AMFPHP Remote服務所在路徑 flashservices\services\amfphp新增資料夾結構為 tw\remote\test,新增完畢你會有如下路徑結構 flashservices\services\amfphp\tw\remote\test

Step2.建立一個Server端回呼程式
1.編輯一個Hello.php檔如下,編輯完存放於flashservices\services\amfphp\tw\remote\test
2.可以使用notepad++工具來代替筆記本做簡單編輯。
//Server端回呼程式
//請用手打,記得存成UTF-8,若用notepad++在編碼選項中,還可選擇是否檔頭要含BOM。
<?php
class Hello
{
    public function sayHello($name = null)
   {
       return "Hi $name wellcome JBlog!";
   }
}
?>