Ubuntu搭建J2EE环境 Part2

设置tomcat和eclipse的连接


1 按照上面的方法安装完tomcat后(在/user/java/tomcat7.0.57)

2 打开eclipse,在Window->Preferences->Server->Runtime Environments 点ADD(或Search),选择tomcat的安装目录。

Note:eclipse在使用tomcat服务器来开发的时候,需要对tomcat安装目录的文件进行读写操作,所以应当赋予eclipse对tomcat目录的读写权限。

MySQL


删除老板本的时候,要把etc/my.cnf文件和/etc/mysql目录,这两个文件控制的是mysql的一些配置属性,也删除。

配置tomcat数据源


本来有三种方法:


1.局部数据源:在tomcat的conf/server.xml找到当前项目的Context节点。

或者在conf/Catalina/localhost/appName.xml中添加。

1
2
3
4
5
6
7
8
9
10
11
12
<Context docBase="G:/WebApp" path="/WebApp" reloadable="true" source="org.eclipse.jst.jee.server:WebApp">
<Resource
name="jdbc/mysql" //mysql是数据源的名字,这里可自己设置,之后用的时候要调用这个名字
scope="Shareable"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/test" //test为数据库名字
driverClassName ="com.mysql.jdbc.Driver"
username="root"
password="root"
/>
</Context>

2.全局设置,局部使用(个人感觉这个好)

server.xmlglobalNamingResource字段中添加1中的数据,再在相应webapp的context字段添加该引用即可:

1
2
3
<Context docBase="WebApp" path="/WebApp" reloadable="true">
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
</Context>

3.全局设置,全部使用(不安全)

  1. 参考第二种的第一步

  2. 找到Tomcat的context.xml,在Context节点下加一个ResourceLink节点对第一步配置的数据源进行引用,这个XML配置文件的根节点就是

1
2
3
4
<Context>
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Context>

MySQL


命令行下的常用操作

在导入*.sql时,与在phpMyAdmin下界面导入一样,要先建立一个和待导入数据库相同名字的空db,再执行source命令。

JDBC安装


详见

关于Eclipse


上面的好多方法都是之前吃亏,这次为了高清楚原理才花了几天时间研究的,各种原理都明白之后,现在来说说这个Eclipse在Ubuntu12.04的使用。

  • 我们已经清楚如何连接eclipse和tomcat了
  • 如何在eclipse上新建搭载jsp的web工程,在《李刚》中已有过程
  • 第三,要明确的是,eclipse可以将该工程直接部署在前面安装的tomcat中,也就是说,会帮我们启动tomcat,这就要求这之前我们要确保tomcat已经关闭了 ,否则会eclipse提示端口被占用。在终端./bin/shutdown.sh后,eclipse中run后成功了。

几个现象


  • 运行eclipse后在浏览器运行了脚本webDemo/index.jsp ,但发现网址栏中是:http://localhost:9090/webDemo/
  • 在终端查看/usr/java/tomcat7.0.57/webapps/目录时,没有在eclipse中已经部署成功的工程文件夹——webDemo
    (在清楚了命令行部署web工程的原理后,再查看现象2,并思考)
  • 在地址栏中localhost:9090试图登陆tomcat,404失败(注:和没有开启tomcat是不一样的界面,这里是有服务器信息反馈的)
  • 猜想是否是终端中的tomcat是关闭的,于是现在终端./bin/startup.sh 可以开启,但是登陆不上localhost:9090
  • 关闭eclipse后再重新启动tomcat,可以看到tomcat首页
  • http://localhost:9090/manager/html中以aaa导入工程(注意是eclipse自动建的*.jsp的父目录WebContent),可以成功导入,运行 localhost:9090/aaa后与在eclipse中运行的结果相同。
  • 在eclipse的workplace中,发现除了刚刚新建测项目webDemo外,还有一个servers文件夹,其中便有在IDE中设置的tomcat7.0.75的文件夹,该文件夹中包含了从/usr/java/tomcat7.0.57复制过来的几个配置文件。

  • 在eclipse中运行web工程时,如webDemo(这是一个工程文件夹),完全不用在终端来控制tomcat的开关,也不用将工程导入/usr/java/tomcat7.0.57/webapps/中。直接在浏览器输入localhost:9090/webDemo/index.jsp即可,这是因为在用eclipse建立工程时已经在工程目录下建立了Server,把这个工程文件夹交由tomcat管理。这个工程的句对路径是/nq/home/workspace/webDemo/ ,之所以能够通过webDemo直接访问,是因为此时在Server文件夹中建立了新的服务器配置文件,把/nq/home/workspace/webDemo/映射到了webDemo上,从而不需要输入绝对路径。这也是为什么命令行和eclipse不能同时打开tomcat。

  • tomcat服务器自动管理webapps目录下的所有web应用的行为,原因是tomcat将该文件夹下的应用都进行了映射,并把他们映射成虚拟目录。

这里把现象记下来是为了在下次接触时少走些弯路。

done!

那强 wechat
加个微信 成为朋友吧