<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    記錄、分享

    struts2 當spring遇到json插件時的異常 及解決(引用)

    struts2 當spring遇到json插件時的異常 及解決




    1 我的Action代碼
    package common.regist.action;
    import com.opensymphony.xwork2.ActionSupport;
    import common.regist.Interface.IRegistService;
    import domain.User;
    public class RegistAction extends ActionSupport {
    private IRegistService service;

    private String responseText;

    private String username = "";

    private User user;

    public IRegistService getService() {
      return service;
    }
    public void setService(IRegistService service) {
      this.service = service;
    }

    public User getUser() {
      return user;
    }

    public void setUser(User user) {
      this.user = user;
    }

    public String validateUserName() {
      if(service.validateUser(username).size()==0)
      {
       this.setResponseText("true");
       return ActionSupport.SUCCESS;
      }
      this.setResponseText("false");
      return ActionSupport.SUCCESS;
    }


    public String execute() throws Exception {
      service.regist(user);
      return super.execute();
    }

    public String getResponseText() {
      return responseText;
    }

    public void setResponseText(String responseText) {
      this.responseText = responseText;
    }

    public String getUsername() {
      return username;
    }
    public void setUsername(String username) {
      this.username = username;
    }

    }

    配置文件里:
    <package name="ajax" extends="json-default" namespace="/login">
      <action name="validateUserName" class="registAction" method="validateUserName">
       <result type="json"></result>
      </action>
      </package>

    發生的異常
    org.apache.catalina.core.StandardWrapperValve invoke
    嚴重: Servlet.service() for servlet default threw exception
    java.sql.SQLException: Positioned Update not supported.
    低調的貓(624767717) 15:04:17
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    at com.mysql.jdbc.ResultSet.getCursorName(ResultSet.java:1917)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:220)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
    at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
    at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
    at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
    at com.googlecode.jsonplugin.JSONWriter.write(JSONWriter.java:88)
    at com.googlecode.jsonplugin.JSONUtil.serialize(JSONUtil.java:90)
    at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:119)


    分析---------------------------------------------------------------------------------------
    在我的Action中一共有4個properties,其中有個bean是service,而且是在spring framework中已經實例化了的,問題就出在它身上了。于是在struts-config中加入該bean的exclude,再測試,成功了!
    發送action的request后,服務返回JSON數據。

    解決-----------------------------------------------------------------------------------------
    <action name="validateUserName" class="registAction" method="validateUserName">
       <result type="json">
         <param name="excludeProperties">      //序列化屬性中排除 service
                         service
       </param>

    </result>
      </action>
      </package>

    posted @ 2011-06-09 15:58 張生 閱讀(1015) | 評論 (0)編輯 收藏

    Eclipse下使用Subversion

    作者:朱先忠編譯 轉自天極http://dev.yesky.com/356/2578856.shtml
    CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse進行開發,那么你可能直到近來才能利用Subversion帶來的優點
    摘要 CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse進行開發,那么你可能直到近來才能利用Subversion帶來的優點。隨著 Subclipse的發行,Subversion可能會最終在你的Eclipse IDE環境充分發揮其威力而壓倒CVS。
    一、SCM和Subversion簡介

      軟件配置管理(SCM)是管理源碼并保持其安全的良好藝術,它能實現源碼與其他團隊成員之間保持共享,并且能夠對之加以保護。良好地利用SCM,你能夠容易地跟蹤軟件的發行和新的開發分支;這樣以來,可以更為容易地標識和修正發行產品中的錯誤。

    其實,有大量的SCM工具可用,既有開源的和也有商業化的,例如StarTeam,Perforce,BitKeeper和ClearCase。在開源 世界里,事實上的SCM標準是并發版本管理系統(CVS),它被廣泛應用于世界范圍內的成百上千的開源和商業工程。然而,CVS也存在下列許多固有的缺 陷,這使得它無法非常完美地適合于現代工程開發:

    · 實質上針對文本文件的設計使得CVS處理二進制文件能力比較差。在每一次提交時,二進制文件被以整體形式傳輸和存儲,這將帶來帶寬和磁盤空間的浪費。

    · 在CVS中,你不能移動文件和目錄。你唯一的選擇基本上就是刪除并且重新添加它們,從而失去了整個過程中的所有的文件歷史信息。

    · CVS中沒有實現原子提交的概念。比方說,你要把10個文件提交到服務器,而該提交操作往往在整個過程的中途停了下來。(這很可能會發生,如果某人同時提 交一個文件,或甚至如果你的網絡失敗或你的PC重新啟動的話。)在這種情況下,服務器將僅記錄下你的修正的一半信息,這可能會使代碼基部分處于一種潛在地 不穩定的狀態。

    Subversion是一種比較新的開源SCM工具,其設計目的是力圖從根本上克服原CVS所具有的限制。它是一種良好設計的工具,具有適合于現代開發的許多新特征:

    · 提交是原子化的。提交的文件都能夠被正確加入到一個新的修訂當中,否則倉庫不會被更新;并且每一個新的修訂僅由一次提交中的變化部分組成。

    · Subversion對文本和二進制文件使用一種巧妙的二進制技術,這既優化了網絡流量也優化了倉庫磁盤空間。

    · 在Subversion中,每一次修訂都代表了一個特定時間內完整的目錄樹拷貝。文件和目錄可以不加限制地進行移動。

    · Subversion僅存儲兩個版本之間的修改內容,這不僅節約了磁盤空間,并且意味著標識一個新版本或創建一種新的子內容幾乎可以立即實現。

    · 你可以以多種途徑來存取一個Subversion倉庫,具體則依賴于你的需要:使用HTTP或HTTPS(與WebDAV一起使用),使用快速的專利性svn:協議,或直接經由本地文件,等等。

    二、Subclipse插件與Eclipse的集成

    一種良好的SCM應該與你的工作環境緊密地集成到一起。沒有誰真正喜歡轉到命令行以把文件添加到倉庫。Eclipse很早就實現了CVS集成,但是直到 最近Subversion用戶仍沒有被引起重視。現在,新的Subclipse插件提供了在Eclipse中的一種平滑的Subversion集成。

    (一) 安裝Subclipse插件

    下面,你以通常的方法從更新站點下安裝Subclipse:

    1. 打開"Find and install"窗口("Help>Software Updates>Find and Install")。

    2. 選擇"Search for new features to install"選項并點擊Next。

    3. 點擊"New Remote Site"并且創建一遠程站點,使用名字Subclipse和URL http://subclipse.tigris.org/update_1.0.x(參考圖1)。

    4. 在結果安裝窗口中,把"Subeclipse in the Features"選擇到安裝列表中,并且通過向導來開始安裝插件。

    5. 完成這些之后,重新啟動Eclipse。現在,你可以繼續往下進行!


    圖1.安裝Subclipse插件

    (二) 建立Repository定義

    現在,既然你已經安裝完插件;那么,接下來,你需要告訴它你的工程倉庫位于何處。你是在SVN Repository視圖中實現的。打開這個視圖("Windows>Show View>Other>SVN Repository")并且在上下文菜單中選擇"New>Repository Location"以顯示一個如圖2所示的對話框。輸入適當的URL并且點擊"Finish"。


    圖2.添加一個倉庫定義


    (三) 檢出(Check Out)一個工程

    一旦建立一個倉庫,你就可以在SVN Repository視圖中瀏覽所有的內容(見圖3)。我們后面將會看到,這個視圖是一種與Subversion進行交互的非常方便的方式。




    圖3.SVN Repository視圖。



    現在,讓我們把一個工程檢出到你的Eclipse工作區中。這只需選擇你需要的Subversion倉庫,打開上下文菜單,并且選擇"Checkout"即可。這將打開一個具有兩個選項的向導:

    · Check out as a Project configured using the New Project Wizard-這個選項打開新工程向導,這可以讓你使用內建的Eclipse工程類型配置工程。這個選項通常是最好用的,因為它讓你使用相同的工程模板和 配置屏幕,而當你創建一個常規工程時你經常使用它們。

    · Check out as a Project in the Workspace-這個選項簡單地在你的包含檢出源碼的工作區中創建一個Eclipse工程。

    在以上兩種情況下,你仍然需要更新工程的構建路徑,因為在檢出該工程源碼之前,Eclipse不能確定這些Java源碼所在的位置。

    (四) 把一個新工程導入到倉庫中

    如果你只是啟動了一個新的工程,那么你需要把它導入到Subversion倉庫。Subclipse提供了一種方便的方式來直接從你的IDE內部實現這 一點。為此,只需要從Package Explorer視圖下選擇你的工程,并且在上下文菜單中選擇"Team>Share Project"。你可以使用現有倉庫之一或創建一新的倉庫定義。在你指定倉庫和工程名之后,你能指定你想放到倉庫中的文件和目錄并且提供一個初始注釋 (見圖4)。這種方法特別有用,因為它讓你有選擇地導入僅由Subversion管理的文件,即使該工程還包含其它文件(例如生成的類,臨時文件或其它不 是必需的內容等)。


    圖4.把一個工程導入到一個Subversion倉庫中

    三、在Eclipse中使用Subversion

    現在,既然你的支持Subversion的工程已經啟動并且運行起來,那么大多數必要的Subversion命令就可經由"Team"上下文菜單存取 (參考圖5)。你可以在Package Explorer中看到你的本地文件的狀態(參考圖6),其中,任何修改了的文件都被標記上一個星號。存儲在倉庫中的文件都顯示一個小黃桶圖標(代表了一 個數據庫);還沒有被添加到倉庫中的文件以一個問號顯示。


    圖5.大多數Subversion命令能被經由Team菜單存取

    圖6.你可以在Package Explorer中看到本地文件的狀態

    (一) 與Repository保持同步

    從倉庫中更新你的文件并且把你的變化提交到倉庫是相當直接的過程,這可以使用"Team>Update and Team>Commit"菜單選項來實現。在提交你的變化之前,你可能想看一下自從你的上次更新以來是否服務器上有任何文件被修改。為此,你可以使 用"Team >Synchronize with Repository"。這個命令讓你看到有哪些內容已經被局部地修改,有哪些內容在服務器上修改,以及這兩種修改之間的任何沖突(參考圖7)。你還可以 以可視化方式看到沖突的版本,并且在提交你的變化之前糾正任何比較突出的沖突。


    圖7.與倉庫保持同步

    (二) 使用屬性

    屬性是Subversion具有創新性的特征之一。在Subversion中,你可以把元數據("properties")關聯到任何文件或目錄。你可以定義任何你喜歡的屬性,但是Subversion也提供了一些有用的內置屬性,例如下面圖8中所提供的這些屬性:

    · svn:executable屬性,允許你在支持這種能力的操作系統上設置一個文件的可執行標志。

    · svn:need-lock屬性,可以用來在文件(例如,對二進制文件非常有用)上強加排斥鎖。一個定義了svn:need-lock屬性的文件一次只能 被一個人修改。當該文件被檢出時,它是只讀的。如果你想修改該文件,你需要首先使用"Team>Lock"菜單選項。之后,使用"Team> Unlock"釋放該文件,或僅提交你的變化。這一行為將釋放該鎖并且讓其它的用戶也得到該文件上的一把鎖。


    圖8.把一個Subversion屬性添加到一個文件中

    三) Tag和Branch

    在Subversion中,很容易創建新的tag和branch。你可以使用tag來標識一個特定的版本(使用一種可讀的名字,例如"Release 1.0")。;而一個branch用于新的開發工作而不影響主源碼基(稱作trunk)。在一個branch上的開發仍會繼續進行,直到開發者已經為把變 化集成回主trunk作好準備。

    在Subversion中,branch和tag都是通過制作給定修訂的一個虛擬副本(以另一個名字 和/或另一個目錄)創建的。在常規情況下,branch存儲在branches目錄下,tag位于tags目錄下,盡管在實踐中為了滿足你的工程你可以使 用自己的任何定制。

    從Eclipse中,"Team>Branch/Tag"菜單能夠使你創建branch和tag(參考圖9)。其中,Browse按鈕提供了一種方便的方法來查看有哪些branch和tag存在于倉庫中。

    當你使用"Team>Switch"創建成功一個新的branch或tag時,你可以非常容易地在branches之間進行切換。無論何時你切換 到一個不同的branch(或返回到trunk),Subversion將僅更新文件(它需要保持你的當前工作的副本與目的branch之間的同步)。


    圖9.創建一個新的branch或tag

    (四) 修訂歷史

    象大多數SCM系統一樣,Subversion讓你跟蹤你的源碼的變化。"Team>Show in Resource History"菜單選項能夠使你查詢這些變化的列表(包括對一個文件,目錄或甚至整個工程的改變)(見圖10)。

    記住,在Subversion中,提交是原子性的-一次提交由一組文件變化和一個全局注釋組成。"SVN Resource History"視圖向你顯示每一次提交的一個簡明視圖,包括修改的文件和相關注釋。


    圖10.歷史資源

    四、結論

    Subversion是一種強有力的和非常靈活的SCM工具,也是CVS的一個成功的后繼者。結合Subclipse,Subversion能最終在你的Eclipse IDE環境中得到全面的發揮。

    posted @ 2011-05-03 09:18 張生 閱讀(329) | 評論 (0)編輯 收藏

    eclipse集成SVN的server。

    以下是安裝SERVER的方法,COPY防丟失。http://www.open.collab.net/cn/downloads/desktops/installing_cdee.html?_=d
    需要注冊。


    The CollabNet Desktop – Eclipse Edition

    CollabNet Desktop – Eclipse Edition is a freely downloadable set of plugins that CollabNet provides for the Eclipse IDE. This desktop works with and is part of the CollabNet Platform.

    To find, download, and install the latest functionality, follow the instructions in the next two sections:

    • Finding the New CollabNet Desktop – Eclipse Edition Features
    • Installing CollabNet Desktop – Eclipse Edition

    Once you complete the installation, you will be asked if you want to restart the Eclipse SDK. This is not required, but it is recommended.

    Finding the New CollabNet Desktop – Eclipse Edition Features

    To find the new CollabNet Desktop – Eclipse Edition features, follow these steps:

    1. From the Eclipse Help menu, select Software Updates → Find and Install.

      Figure 1: The Eclipse Help menu


    2. In the Install/Update window, select Search for new features to install and click Next.

      Figure 2: The Install/Update window


    3. In the Install window, if you want to use the Eclipse Update Installer, select New Remote Site.

      If you can’t use the Eclipse Update Installer (for example, if your proxy servers do not allow access to the Eclipse Update Installer or if you have limited Internet access), select New Archived Site.

      Figure 3: The Install window



    1. If you selected New Remote Site, fill in the following information:
      • In the Name field, enter "CollabNet Desktop"
      • Copy one of the following into the URL field:
        • For Eclipse 3.5/3.6, copy this URL:
          http://downloads.open.collab.net/eclipse/update-site/e3.5
        • For Eclipse 3.4, copy this URL:
          http://downloads.open.collab.net/eclipse/update-site/e3.4
        • For Eclipse 3.3, copy this URL:
          http://downloads.open.collab.net/eclipse/update-site/e3.3
        • For Eclipse 3.2, copy this URL:
          http://downloads.open.collab.net/eclipse/update-site/e3.2

      When you have completed the information, click OK.


      Figure 4: The New Update Site window


    If you selected New Archived Site, follow these instructions:

    • Download the version of the CollabNet Desktop –
      Eclipse Edition you want to install:
    • In the Select Local Site Archive window, navigate to
      the location where you saved the CollabNet Desktop –
      Eclipse Edition and select Open.

      Figure 5: The Select Local Site Archive window


    • In Edit Local Site, fill in the File name, verify the path to
      the CollabNet Desktop – Enterprise Edition download,
      and press OK.

      Figure 6: The Edit Local Site window




    1. From the Install window, select CollabNet Desktop and Finish.

      Note: The Eclipse Update Manager automatically ensures that you have all the required plugins to run CollabNet Desktop – Eclipse Edition. CollabNet suggests you install everything listed in the Updates window.

      Figure 7: The Install window


      The Update Manager connects to the site or opens the local archive to find the features available to install.

      Figure 8: The Update Manager reading the remote site



    Installing CollabNet Desktop – Eclipse Edition

    To install the new CollabNet Desktop – Eclipse Edition features, follow these steps:

    1. From the Updates window, select CollabNet Desktop and click Next.

      Figure 9: The Updates window showing search results


    2. Review the license terms on the Feature License screen. If you agree to these terms, select "I accept the terms in the license agreements" and click Next.

      Figure 10: The Install window showing license information


    3. From the Install window, review the components you are about to install. If you want to install the components in locations other than the default location, specify the new location.

      Note: you can have multiple instances of Eclipse on your machine, running different feature configurations.

      Figure 11: The Install window showing the installation directories


    4. Click Finish and the Update Manager downloads the components you selected.

      Note: you can have multiple instances of Eclipse on your machine, running different feature configurations.

      Figure 12: The Install window downloading the components


    5. In the Verification window, check that you have selected the feature you want to install, and click Install All.

      Figure 13: The Verification window


      Note: If you see a warning in the Verification window about installing an unsigned feature, you can ignore it. The CollabNet features are not signed.

      The Update Manager installs the components you selected.

      Figure 14: The Update Manager installing files


    6. When the installation is complete, click OK to restart Eclipse.

    7. Figure 15: The Install/Update window asking you to restart

    posted @ 2011-04-28 11:47 張生 閱讀(1004) | 評論 (0)編輯 收藏

    eclipse集成SVN的client。

    http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

    上面網址就是安裝的方法。以下是COPY防丟失。

    Get the right version!

    Subclipse versions are tied to specific versions of the Subversion client API.  So you must have a matching version of the Subversion client API (JavaHL) for your version of Subclipse.  Any 1.x version of a Subversion client can talk to any 1.x version of a Subversion server, so generally the version does not matter too much.  However, if you use multiple client tools on the same Subversion working copy, then it is important that the version of those clients is all the same.  In addition, if you are on Linux, your distribution might only support a specific version of Subversion and JavaHL.  So you might want to stick with a specific version of Subclipse for that client.

    More information on how to get JavaHL, and the right version for each version of Subclipse can be found in the wiki

    Current Release

    Eclipse 3.2/Callisto, 3.3/Europa, 3.4/Ganymede, 3.5/Galileo +

    Subclipse 1.6.17 and 1.4.8 are now available for Eclipse 3.2+!

    See the changelog for details. Existing Subclipse users should read the upgrade instructions for important information on changes you to need to make to your Eclipse preferences to see the new version in the update manager.

    Subclipse 1.4.x includes and requires Subversion 1.5.x client features and working copy format.

    Subclipse 1.6.x includes and requires Subversion 1.6.x client features and working copy format.

    Links for 1.6.x Release:
    Changelog: http://subclipse.tigris.org/subclipse_1.6.x/changes.html
    Eclipse update site URL: http://subclipse.tigris.org/update_1.6.x
    Zipped downloads: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

    Links for 1.4.x Release:
    Changelog: http://subclipse.tigris.org/subclipse_1.4.x/changes.html
    Eclipse update site URL: http://subclipse.tigris.org/update_1.4.x
    Zipped downloads: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

    Eclipse 3.0/3.1

    Subclipse 1.0.6 is now available for Eclipse 3.0/3.1!

    See the changelog for details. Existing Subclipse users should read the 1.0.0 release announcement for details on how to upgrade to the 1.0.x release.

    Links for 1.0.x Release:
    Changelog: http://subclipse.tigris.org/subclipse/changes.html
    Eclipse update site URL: http://subclipse.tigris.org/update_1.0.x
    Zipped downloads: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

    Eclipse 2.1.3

    Subclipse 0.9.3.3 is linked against Subversion 1.1.4. Binaries for Windows are included.

    Development for this version of Eclipse is no longer active. There are no new releases planned.

    Download the Eclipse 2.x version

    Installation Instructions

    Here you will find a screenshot tour of the Subclipse installation process in Eclipse 3.x. These particular screens were captured in Eclipse 3.0.2 running on Windows XP.

     

    Install Subclipse in Eclipse 3.x

    Step 1:

    Begin the installation from the Eclipse Help menu item.

    Install screen

    Step 2:

    This screenshot show the screen as it initially comes up. In this case you will need to change the radio button to indicate that this is a new install.

    Install screen

    Step 3:

    This screen will vary depending on the features you have installed already. You want to click on the New Remote Site button. If you are behind a proxy and the Eclipse install mechanism does not work, then you can download a zipped version of the update site and then click the New Local Site button instead.

    Install screen

    Step 4:

    This screen is showing the New Remote Site dialog, filled in with the correct information to install Subclipse


    Name: Subclipse 1.6.x (Eclipse 3.2+)
    URL: http://subclipse.tigris.org/update_1.6.x

    Name: Subclipse 1.4.x (Eclipse 3.2+)
    URL: http://subclipse.tigris.org/update_1.4.x

    Name: Subclipse 1.2.x (Eclipse 3.2+)
    URL: http://subclipse.tigris.org/update_1.2.x

    Name: Subclipse 1.0.x (Eclipse 3.0/3.1)
    URL: http://subclipse.tigris.org/update_1.0.x
    Install screen

    Step 5:

    When you first come back to this screen, the site you added will NOT be selected. Be sure to select it before clicking Next.

    Install screen

    Step 6:

    This next screen shows all of the features that are available to install.

    Install screen

    Step 7:

    Click the button to accept the license agreement.

    Install screen

    Step 8:

    Confirm the install location

    Install screen

    Step 9:

    There is an Eclipse preference to turn off this next dialog. I have never seen a signed feature. Not even Eclipse.org nor IBM sign their features.

    Install screen

    Step 10:

    Just a screenshot of the in-process installation.

    Install screen

    Step 11:

    Eclipse needs to be restarted after installing Subclipse.

    Install screen

    Step 12:

    Finally, after restarting Eclipse, the first thing you will typically want to do is open the Subclipse Repository perspective where you can define your repositories. Be sure to also check the online help as well as the Subclipse preferences located under Team -> SVN.

    Install screen

    Updating Subclipse in Eclipse 3.x

    Eclipse 3.x has a feature in preference to automatically check for updates. Provided you are not behind a proxy that does not allow this feature, it should work for Subclipse. Otherwise just follow the instructions for installing Subclipse, except take the option to check for updates in Step 2.

    If you are behind a proxy that does not work with Eclipse, then to install updates you just always follow the same instructions you used to install a new version. If you always unzip the site to the same local folder, you will not have to define the local site each time.



    posted @ 2011-04-28 09:50 張生 閱讀(2881) | 評論 (0)編輯 收藏

    一款按鈕的CSS。(網絡轉載)

    <style>
    .btn {
    BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7b9ebd 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#cecfde); BORDER-LEFT: #7b9ebd 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7b9ebd 1px solid
    }
    .btn1_mouseout {
    BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#B3D997); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
    }
    .btn1_mouseover {
    BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#CAE4B6); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
    }
    .btn2 {padding: 2 4 0 4;font-size:12px;height:23;background-color:#ece9d8;border-width:1;}
    .btn3_mouseout {
    BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
    }
    .btn3_mouseover {
    BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
    }
    .btn3_mousedown
    {
    BORDER-RIGHT: #FFE400 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #FFE400 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #FFE400 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #FFE400 1px solid
    }
    .btn3_mouseup {
    BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
    }
    .btn_2k3 {
    BORDER-RIGHT: #002D96 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #002D96 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); BORDER-LEFT: #002D96 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #002D96 1px solid
    }
    </style>
    <body>

    <button class=btn title="CSS樣式按鈕">CSS樣式按鈕</button><P></p>
    <button
    class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
    onmouseout="this.className='btn1_mouseout'"
    title="CSS樣式按鈕">CSS樣式按鈕</button>  
    <button
    class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
    onmouseout="this.className='btn1_mouseout'" DISABLED>CSS樣式按鈕</button>
    <P>
    <button class=btn2 title="CSS樣式按鈕">CSS樣式按鈕</button>
    <P>
    <button class=btn3_mouseout onmouseover="this.className='btn3_mouseover'"
    onmouseout="this.className='btn3_mouseout'"
    onmousedown="this.className='btn3_mousedown'"
      onmouseup="this.className='btn3_mouseup'"
      title="CSS樣式按鈕">CSS樣式按鈕</button>
    <P>
    <button class=btn_2k3 title="CSS樣式按鈕">CSS樣式按鈕</button></body>

    posted @ 2011-04-13 11:29 張生 閱讀(476) | 評論 (0)編輯 收藏

    tomcat配置cgi 轉帖自http://blog.csdn.net/chcbz/archive/2010/11/24/6032924.aspx

    1、修改conf/web.xml

    找到并將cgi的servlet和servlet-mapping的注釋去掉

    1. <servlet>  
    2.         <servlet-name>cgi</servlet-name>  
    3.         <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>  
    4.         <init-param>  
    5.           <param-name>debug</param-name>  
    6.           <param-value>0</param-value>  
    7.         </init-param>  
    8.         <init-param>  
    9.           <param-name>cgiPathPrefix</param-name>  
    10.           <param-value>cgi-bin</param-value>  
    11.         </init-param>  
    12.          <load-on-startup>5</load-on-startup>  
    13.     </servlet>  

    注意:其中cgiPathPrefix是cgi文件的存放路徑,默認是WEB-INF/cgi,我為了方面用awstats,所以改成cgi-bin

    1. <servlet-mapping>  
    2.         <servlet-name>cgi</servlet-name>  
    3.         <url-pattern>/cgi-bin/*</url-pattern>  
    4. </servlet-mapping>  

    /cgi-bin/*意思是,訪問cgi文件的默認地址為cgi-bin/*

    2、修改conf/context.xml

    1. <?xml version='1.0' encoding='utf-8'?>  
    2. <Context privileged="true">  
    3.   
    4.     <!-- Default set of monitored resources -->  
    5.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
    6.       
    7.     <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
    8.     <!-- 
    9.     <Manager pathname="" /> 
    10.     -->  
    11.   
    12.     <!-- Uncomment this to enable Comet connection tacking (provides events  
    13.          on session expiration as well as webapp lifecycle) -->  
    14.     <!-- 
    15.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
    16.     -->  
    17.   
    18. </Context>  

    修改<Context>添加privileged="true"屬性,否則頁面提示Servlet CGI is not availabled,且tomcat會有錯誤提示java.lang.SecurityException: Restricted classclass org.apache.catalina.servlets.CGIServlet

    3、如果tomcat的版本是6以下的,必須將server/lib/目錄下的servlets-cgi.renametojar改名為servlets-cgi.jar

    有以上三步,已經可以成功配置CGI了,訪問地址如http://localhost:8080/cgi-bin/test.pl

    posted @ 2011-03-15 15:59 張生 閱讀(1125) | 評論 (0)編輯 收藏

    晚八點飛機,現在JS跨域問題解決中,解決后再來修補內容,新BLOG第一帖。

    晚八點飛機,現在JS跨域問題解決中,解決后再來修補內容

    posted @ 2011-03-15 14:53 張生 閱讀(458) | 評論 (1)編輯 收藏

    僅列出標題
    共2頁: 上一頁 1 2 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲 自拍 另类小说综合图区| 最近中文字幕mv手机免费高清| 2021在线永久免费视频| 在线视频精品免费| 在线看片人成视频免费无遮挡| 国产女高清在线看免费观看 | 在线日本高清免费不卡| 91免费精品国自产拍在线不卡| 免费的一级黄色片| 亚洲中文字幕无码久久精品1| 亚洲永久永久永久永久永久精品| 亚洲精品中文字幕无乱码麻豆| 国产成人亚洲综合无| a毛片在线还看免费网站| 在线观看www日本免费网站| 国产精品免费视频一区| 亚洲中文字幕在线第六区| 亚洲日本视频在线观看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 性做久久久久久久免费看| 午夜亚洲国产成人不卡在线| 亚洲AV永久无码区成人网站| 亚洲乱码中文字幕在线| 国产特黄特色的大片观看免费视频| 98精品全国免费观看视频| 日本一区二区三区日本免费| 亚洲欧洲精品无码AV| 精品亚洲456在线播放| 男女一边桶一边摸一边脱视频免费| 永久看日本大片免费35分钟| 又粗又大又长又爽免费视频| 亚洲综合国产精品| 色窝窝亚洲AV网在线观看| 特级精品毛片免费观看| 午夜两性色视频免费网站| 亚洲电影一区二区| 羞羞视频免费观看| 四虎成年永久免费网站| 亚洲福利在线播放| 亚洲国产最大av| 国产免费一区二区三区在线观看|