跳轉到內容

ZK/操作指南/如何使用Eclipse WTP和XAMPP搭建ZK環境

華夏公益教科書,開放的書籍,開放的世界

為了使用Eclipse作為IDE開發使用ZK框架的web應用程式,通常也需要資料庫訪問。本操作指南展示了在Eclipse與ZK、XAMPP、MySQL、Tomcat和JDBC一起執行的環境中建立環境的基本步驟。通常發生的錯誤將被描述。所述安裝在Windows 2000機器上執行。

以下軟體包應下載

如何在Eclipse中設定ZK將在如何使用Eclipse WTP搭建ZK環境中討論。

Apache發行版安裝在${XAMPP}資料夾中。Tomcat伺服器位於${XAMPP}/tomcat資料夾中:${TOMCAT}。MySQL聯結器放置在${TOMCAT}/common/lib資料夾中。Eclipse會自動找到此資料夾中的所有jar檔案,因此無需將其手動新增為專案的外部jar檔案。Eclipse中的專案在${APPL}資料夾中執行(可以位於Tomcat容器之外)。

繫結在一起

[編輯 | 編輯原始碼]

與[1]相反,有關資料庫連線的資訊將儲存在以下檔案中:${APPL}/META-INF/context.xml和${APPL}/WEB-INF/web.xml。Eclipse添加了“更新Web模組MyProject的根上下文”選項,該選項在“在伺服器上執行”時使用此資訊[Alt+Shift 執行,執行].

檔案內容

[編輯 | 編輯原始碼]

在${APPL}/WEB-INF/web.xml中,應在<web-app>鍵下新增以下引用

<!-- JDBC -->
  <resource-ref>
    <description>
      Resource reference to a factory for java.sql.Connection
      instances that may be used for talking to a particular
      database that is configured in the server.xml file.
    </description>
    <res-ref-name>jdbc/nicedatabasename</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

並且${APPL}/META-INF/context.xml應具有以下內容

<Context path="/MyProject" docBase="MyProject" 
      debug="5" reloadable="true" crossContext="true">
    <Resource name="jdbc/nicedatabasename" 
      username="youknow" password="secretexceptifcalledsecret"
      url="jdbc:mysql://:3306/actualdatabasename"
      auth="Container" defaultAutoCommit="false"
      driverClassName="com.mysql.jdbc.Driver" maxActive="20"
      timeBetweenEvictionRunsMillis="60000"
      type="javax.sql.DataSource"/>

可能會出現錯誤接連不斷的錯誤。這些是常見的錯誤。錯誤按一定的順序出現。如果出現有關空JDBC驅動程式的錯誤,則意味著對web.xml檔案中的資源的引用已正確找到。如果出現有關字元集的錯誤,則意味著找到了JDBC驅動程式。

未繫結在上下文中

[編輯 | 編輯原始碼]

有關錯誤名稱的錯誤

javax.naming.NameNotFoundException: Name **** is not bound in this Context

當web.xml中的<resource-ref>與context.xml中的資源名稱不相同時,就會發生此錯誤。

空的JDBC驅動程式

[編輯 | 編輯原始碼]

有關空JDBC驅動程式的錯誤

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' 
for connect URL 'null'

此錯誤可能與使用的Tomcat伺服器版本有關。5.5版本使用上述語法。5.0版本喜歡帶有ResourceParams元素的語法

  <Resource name="jdbc/nicedatabasename" auth="container" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/nicedatabasename">
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>

    <parameter>
      <name>url</name>
      <value>jdbc:mysql://:3306/actualdatabasename?autoReconnect=true</value>
    </parameter>
  </ResourceParams>

Tomcat伺服器可能需要重新啟動。

字元集

[編輯 | 編輯原始碼]

有關使用的字元集的錯誤

java.sql.SQLException: Unknown initial character set index ’48’ received from server.
Initial client character set can be forced via the ‘characterEncoding’ property.

可能是從www.mysql.org下載的MySQL Connector/J JDBC軟體版本5.0.4存在錯誤。這不是Eclipse或QuantumDB問題。如果降級到MySQL Connector/J JDBC軟體版本3.1.14,則該問題將得到解決。

Windows提示

[編輯 | 編輯原始碼]

啟動MySQL伺服器(作為服務) - 不是使用[Win+X] & “services.msc”,而是使用一個快捷方式,其目標為

%windir%\system32\net.exe start "MySQL Server"

“MySQL Server”是服務在“services.msc”中的名稱。屬性“start”和“stop”被識別。Tomcat伺服器可以直接從Eclipse啟動,不需要快捷方式。

有關包含在XAMPP中的MySQL伺服器啟動的資訊儲存在${XAMPP}/mysql/bin/my.cnf中。在Windows中,預設情況下不能編輯*.cnf。開啟一個命令提示符視窗,並透過“edit my.cnf”進行編輯。字元集可以在元素[mysqld](伺服器)、[mysql]、[client]下新增或更改。phpMyAdmin工具可用於透過GUI介面中的編輯框執行此操作。

參考文獻

[編輯 | 編輯原始碼]

[1]. “使用Eclipse Web Tools Project建立Web應用程式”,Eclipse Developer's Journal,作者Boris Minkin。

[2]. “MySQL 5.0參考手冊”。

[3]. “使用Eclipse開發ZK應用程式”,ZK小談,作者Andrew Ho

華夏公益教科書