跳转到内容

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://127.0.0.1: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://127.0.0.1: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

华夏公益教科书