云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Flex2.0中有三種機制與服務器交互數據:RPC(Remote precedure call), Data Service, publish-subscribe messaging
          后面兩種需要Flex Enterprise Service的支持.
          RPC: 發送異步請求到遠程服務,并將結果直接返回給Flex應用.
          RPC服務可以是HTTP URL, SOAP兼容的Web service, Java Web應用的Java對象. 客戶端的RPC服務組件是HTTPService, WebService和Remoting Object.
          HTTPService和WebService的使用不需要Flex Enterprise service的支持. Remoting Object必須有Flex Enterprise service的支持.
          缺省情況下,Flash Player不允許跨域訪問.因此,RPC服務必須在同一個域中,或者在crossdomain.xml文件中定義.

          RemoteObject組件使得可以使用服務端對象的方法, 而不需要將其配置成WebService. 你需要將服務端對象配置成遠程服務目標.
          WebService組件使得可以與Web Services交互. Web Services需要在WSDL文件中配置
          HTTPService組件可以接收和發送HTTP GET, POST請求. HTTPServie在不能將接口定義為WebSerice和RemotingObject的時候,是一個非常好的選擇.
          比如: JSP, Servlet, Asp等等.

          Flex應用將會被編譯成二進制的SWF文件,送到客戶端. 當Flex應用與外部服務交互時, SWF不需要重新編譯,也不需要再次刷新.

          可以直接使用Web Services或者HTTP Services, 而不需要在服務器的文件中進行配置. 方法如下:
          在HTTPService組件中在url屬性中直接引用wsdl值, 而不使用destination屬性, 并且將useProxy屬性設置為false
          <mx:HTTPService
          id="yahoo_web_search"
          url="

          <mx:WebService
          id="macr_news"
          wsdl="

          或者在Action Script中這樣使用:
          // Import required packages.
          import mx.rpc.http.HTTPService;
          import mx.rpc.soap.WebService;

          // Declare an HTTPService component.
          private var yahoo_web_search:mx.rpc.http.HTTPService = new HTTPService();
          yahoo_web_search.url =
          "
          empoyeeHTTP.useProxy = false;

          // Declare a WebService component.
          private var macr_news:mx.rpc.soap.WebService = new WebService();
          macr_news.wsdl = "
          macr_news.useProxy = false;

          RPC Service組件的destination屬性引用一個Flex Enterprise Services定義的一個目標.

          posted @ 2006-03-01 01:16 云自無心水自閑 閱讀(1692) | 評論 (0)編輯 收藏

          今天一個項目要使用RMI,于是開始寫了一個小示例運行一下。
          1. 寫接口繼承Remote,并給出要實現的方法
          2. 寫一個方法繼承UnicastRemoteObject,并實現上面的接口
          3. 寫Server,進行Naming.rebind
          4. 運行rmic(在JDK的bin目錄,而不是在JDK\jre\bin目錄下)生成Stub。
          這中間有一個小麻煩,舉例來說如果第2步中的類名是TestObj,放在com.test包中。
          那么典型的目錄結構是WEB-INF\classes\com\test目錄下有一個TestObj.class
          這時候需要在WEB-INF\classes目錄下運行命令 rmic com.test.TestObj
          注意:如何運行的路徑和方式不正確的話, 會出現找不到TestObj.class的錯誤.
          5. 寫Client端代碼,Naming.lookup. 然后調用遠程方法。
          6. 運行start rmiregistry
          7. java com.test.TestObjServer, 這時候出問題了,總是報告說找不到TestObj_Stub.class,奇怪啊,這個Class明明很安靜地躺在目錄下啊?
          經過一番查找,最后目標鎖定在java的版本上,因為機器安裝了Oracle,而Oracle自帶了JDK,而且版本較低,在環境變量中調換了JDK使用的順序,重新運行命令。
          成功了!
          8. 生成policy.txt
          9. java -Djava.security.policy=policy.txt TestObjClient
          得到正確結果!

          注意點:
          啟動server時如果遇到找不到stub問題,原因是rmiregistry找不到stub,而不是java com.Server找不到stub,解決方法,在stub的類同一個目錄下啟動rmiregistry.

          posted @ 2006-03-01 00:58 云自無心水自閑 閱讀(3581) | 評論 (0)編輯 收藏

          spring不重復發明輪子。Spring使你能創建一個一致的、可管理的系統應用。

          Spring可以集成的框架包括:
          1. 持久框架
          Hibernate
          JDO implementation
          TopLink
          Apache OJB
          iBATIS

          所有的集成方式是統一的。Spring使用DAO接口,都拋出DataAcessException異常。
          Spring提供helpers(比如模板)實現統一的編程風格。
          如果要使用SQL-BASED的數據存取,那么Spring自身的JDBC Framework是適合的。
          重要的是:Spring允許你混合使用數據存取的方法---比如:Hibernate和JDBC代碼共用一個數據庫連接。這對于復雜的應用來說是非常有益的,因為使用單獨的持久框架很可能不能完成所有的持久操作。

          2. Web framework
          Struts
          WebWork
          Spring MVC
          Tapestry
          JSF

          Spring對于Web框架的集成與持久框架的集成是不一樣的。Spring提供了自己完整的Web框架。Spring在與其他Web框架很好集成的同時,提供一些特殊的便利給自己的Web框架。比如:使用一些先進的依賴注入功能,或者應用AOP建議到Web控制中。

          3. AOP Framework
          Spring提供基于代理的AOP框架,這可以解決大多數J2EE應用的問題。
          但是如果你需要使用一些基于代理的框架無法提供的功能,比如:用new創建對象,而且不由任何工廠管理。
          為支持這種需求,Spring集成了AspectJ和AspectWerkz,2種最好的基于類交織的AOP框架。

          4. Other Framework
          Spring還可以和許多框架集成,Quartz Scheduler,Jasper Reporter, Velocity,FreeMaker 模板引擎。

          posted @ 2006-02-25 22:14 云自無心水自閑 閱讀(325) | 評論 (0)編輯 收藏

          一個統一的異常層次結構對于提供服務抽象是必需的. 最重要的就是org.springframework.dao.DataAccessException以及其子類了. 需要強調的是Spring的異常機制重點在于應用編程模型. 與SqlException和其他數據存取API不同的是: Spring的異常機制是為了讓開發者使用最少, 最清晰的代碼.

          DataAccessException和其他底層異常都是非檢查性異常(unchecked exception). spring的原則之一就是基層異常就應該是非檢查性異常. 原因如下:
          1. 基層異常通常來說是不可恢復的.
          2. 檢查性異常將會降低異常層次結構的價值.如果底層異常是檢查性的, 那么就需要在所有地方添加catch語句進行捕獲.
          3.try/catch代碼塊冗長混亂, 而且不增加多少價值.
          使用檢查異常理論上很好, 但是實際上好象并不如此.
          Hibernate3也將從檢查性異常轉為非檢查性異常.

          posted @ 2006-02-17 00:08 云自無心水自閑 閱讀(446) | 評論 (0)編輯 收藏

          1. 創建J2EE工程
          2. 在windows->preference->MyEclipse正確配置Tomcat5(需要Tomcat5以上)設置
          3. Deployee MyEclipse J2ee Project to server(也就是點工具欄中MyEclipse的第1個按鈕)
          4. 點擊Add, 將工程部署到Tomcat中.
          5. Run Appliction Server, 選擇Tomcat5
          然后, 在Jsp中設置斷點, IE中瀏覽相應的網頁時, 就會跳到Debug Perpective中了, 在視圖中可以在.jsp中調試.


          遇到的問題和解決:
          如何Tomcat設置的JRE路徑是指到完整的JDK的bin目錄, 比如: d:\jdK1.5\bin
          在Run Application Server時會遇到
          " A configuration error occurred during startup. Please verify the
          preference filed with the prompt: Transport dt_socket failed to
          initialize, rc = 509. " 錯誤.
          解決方法: 把d:\jdK1.5\jre\bin目錄下的dt_socket.dll拷貝到d:\jdK1.5\bin目錄下.

          posted @ 2006-02-16 16:19 云自無心水自閑 閱讀(2694) | 評論 (0)編輯 收藏

          在main.jsp中加入下面的語句
          <jsp:include page="footer.jsp" flush="true" />

          結果main.jsp中的中文能夠正確顯示, 而footer.jsp的頁面中文亂碼.

          方法:
          在footer.jsp中, 添加<%@ page contentType="text/html;charset=GBK"%>這一行.

          posted @ 2006-02-16 10:30 云自無心水自閑 閱讀(1657) | 評論 (0)編輯 收藏

          Spring這個三角形一共有三條邊
          第一條邊: IoC
          第二條邊: AOP
          這兩條邊不需要多說了.

          那么第三條邊是什么呢:
          3. Service Abstraction

          Spring使用service abstraction而不依賴于標準J2ee的API(比如: JNDI)或者其他的開源項目(比如Hibernate), 原因如下:
          1. 是否依賴于特定的API取決于API的本身而不是起源(原文:Whether it's desirable to depend on a particular API depends more on the nature of that API than its provenance). 比如: 如果依賴于一個特定的API導致單元測試困難的話, 就應該進行抽象封裝. 典型的例子就是: JavaMail.
          2. 依賴于Spring, 可以把依賴關系控制在一個比較小的范圍之內, 只與一系列接口相關. 這種依賴簡單而明確.
          3. Spring的抽象接口適用范圍廣.  而如果你綁定了JTA, 那么你如果使用的是Tomcat的話, 就還需要加一個JTA的第三方實現.
          4. Spring的API是面向程序開發員的, 而不是藏在幕后的. 比如JTA就是藏在EJB之后,因此JTA的異常處理就非常麻煩.

          正是這三條邊組成了一個穩定的Spring三角形.

          posted @ 2006-02-15 22:51 云自無心水自閑 閱讀(283) | 評論 (0)編輯 收藏

          僅列出標題
          共29頁: First 上一頁 21 22 23 24 25 26 27 28 29 
          主站蜘蛛池模板: 合肥市| 东兰县| 连平县| 内乡县| 道孚县| 海南省| 东山县| 略阳县| 洪洞县| 罗甸县| 保靖县| 景东| 布尔津县| 屏山县| 宕昌县| 柘城县| 双桥区| 惠东县| 沅江市| 郓城县| 新野县| 灌南县| 深州市| 西乌| 晋宁县| 濉溪县| 西和县| 平果县| 嘉兴市| 彰化市| 白朗县| 休宁县| 合水县| 汶上县| 彭阳县| 台东县| 井陉县| 商河县| 阿鲁科尔沁旗| 岳普湖县| 永定县|