ZK/操作指南/如何使用Eclipse WTP和XAMPP搭建ZK环境
为了使用Eclipse作为IDE开发使用ZK框架的web应用程序,通常也需要数据库访问。本操作指南展示了在Eclipse与ZK、XAMPP、MySQL、Tomcat和JDBC一起运行的环境中创建环境的基本步骤。通常发生的错误将被描述。所述安装在Windows 2000机器上运行。
以下软件包应下载
- ZK: ZK库 (ZK主页);
- Eclipse & WTP: Eclipse IDE与Web Tools Platform的组合(WTP也可作为Callisto Project的一部分单独获得)(Web Tools Platform主页);
- XAMPP: 带有MySQL、phpMyAdmin的Apache发行版(XAMPP主页);
- Tomcat: Tomcat服务器/容器(XAMPP附加组件);
- JDBC连接器: 将JDBC(Java数据库连接)调用转换为MySQL协议的转换器(MySQL Connector/J 3.1.14,不是5.0.4).
如何在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驱动程序的错误
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,则该问题将得到解决。
启动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