图解利用Eclipse3+Lomboz3+Tomcat开发JSP

来源:互联网 发布:网络赌托 编辑:程序博客网 时间:2024/05/18 00:06

转贴自  http://www.cnblogs.com/sharewind/archive/2007/03/12/671326.html

 

1、  环境:
WIN2000pro
JDK 1.4.2_05 – Sun官方网站下载
Eclipse release 3.0 – Eclipse 官方网站下
Tomcat 5.0.16 – Jakarta官方网站下载
Lomboz 3.0 for Eclipse 3.0 – Lomboz官方网站下载,包括两个文件emf-sdo-runtime-2.0.0.zip,lomboz.3.zip。

2、  安装软件、配置环境变量(下面为我自己的环境)
JDK:
JAVA_HOME:C:/j2sdk1.4.2_05
PATH: %SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/j2sdk1.4.2_05/bin;
CLASSPATH: .;C:/j2sdk1.4.2_05/lib/tools.jar;C:/j2sdk1.4.2_05/lib/dt.jar;

TOMCAT:
TOMCAT_HOME: C:/Tomcat5

Lomboz:
先将emf-sdo-runtime-2.0.0.zip解压到Eclipse3的目录下;
然后 lomboz.3.zip 解压到Eclipse3的目录下

Eclipse:
与Eclipse 2不同,插件并不是解压到Eclipse中在启动Eclipse后就可以被发现。
需要在Help—Software Updates—Manager Configuraton...中启用所安装的插件。
如下图:


启动EMF2.0.0和SDO2.0.0
工具栏上应该出现,Lomboz J2EE View的图标了。

3、  详细配置
以下配置皆在windows—Perferences中进行。
(1)  Build Path
如图:01


(2) Lomboz
如图:02

(3)Lomboz—Server Definitions
Server Types选择Apache Tomcat v5.0.x
a、  Properties
如图:03

b、  Server Classpath
如图:04


c、  Project Classpath
如图:05

4、创建测试工程和页面
并在C:/Tomcat5/conf/server.xml中加入如下内容,连接到项目。
//... ...
<Context debug="0"
docBase="D:/workspace/myJSP/test"
path="/test" reloadable="true" workDir="D:/workspace/myJSP/j2src/org/apache/jsp"/>

</Host>

</Engine>
//... ...

建立工程,選擇java lomboz project后,會有創建向導,幫助你創建LOMBOZ項目。
向導其中一個步驟就是“create j2ee module”,會有一個分頁窗体,其中“webmodule”中應該建立project容器目錄,相當與一個web發佈目錄,我的容器目錄起名“test”;在“TargetedServers”你的project運行所依靠的應用服務器(app server),根据目前的配置选择“Apache Tomcatv5.0.x”。 
如图:06

啓動lomboz項目,你單擊工具欄上的lomboz按鈕,會有一個lomboz的工作窗体,其中有stop,run,refresh等功能。在這個窗体中選擇你的lomboz工程,右鍵會有一個彈出菜單,選擇run server就可以運行了。
启动Lomboz,然后在IE中测试页面。
如图12

终于OK了,在配置过程中几乎所有的问题都出在Server Classpath中,经过试验后,上面截图中所包含的jar文件,就可以保证你的LOMBOZ在运行过程中不会出错了。

即使出现了问题,也不要着急,看清楚提示,然后检查是否有Jar包没有加到Server Classpath路径上。

哦,心情舒爽了很多,外面夜雨也开始哗哗的下了起来。
风把带有雨的气息吹进屋内,呵呵,
可以安心、踏实的睡觉了。


另外在配置lomboz的过程中的一些问题,我是如下配置解决的:
1、关于el的问题:
在Server Classpath中导入TOMCAT_HOME/common/lib/commons-el.jar

2、在解析jsp页面时出现runtime的错误:
在Server Classpath中导入TOMCAT_HOME/common/lib/jasper-runtime.jar

3、在解析jsp页面时出现compiler的错误:
在Server Classpath中导入TOMCAT_HOME/common/lib/jasper-compiler.jar

这样一些常见的问题都可以解决。
其实Eclipse+Lomboz+Tomcat的使用中,出现比较多的挠人的问题都在配置上,所以冷静下来仔细分析问题,一般都可以解决。比如“NoClassDefFoundError”一般产生原因都是因为classpath中缺少必要的类文件。你就检查是否在serverclasspath中包含了该类文件所需要的jar包。

4、配置文件workDir="D:/workspace/myJSP/j2src/org/apache/jsp"中的/org/apache/jsp什么意思啊??

如果你用的是Tomcat4的话,lomboz和tomcat搭配不能生成自己工作环境,这是由tomcat4.x自身原因导致的,所以必须:
1).在Tomcat的config目录下的server.xml文件中添加以下行(具体位置请参见server.xml相关的文献):
<Context path="/TestJsp" docBase="D:/DebugJsp/debugJsp"workDir="D:/DebugJsp/j2src/org/apache/jsp">
其中,path表示Web应用的URL名字;docBase表示web应用的物理位置;workDir表示jsp所对应的java文件产生的位置,必须创建org/apache/jsp这样的目录结构和名称。
2).根据org/apache/jsp在对应的j2src目录下创建相对应的子目录结构,同时把j2src设置为工程的source目录。
因此,你没有在j2src设立org.apache.jsp目录结构,所以在编译时会报,找不到package org.apache.jsp。

但是Tomcat5x后这个问题已经更正了,不需要再设立org.apache.jsp的目录结构,就可以正确编译,如果你打开j2src目录会发现已经自动创建了org.apache.jsp。所以Tomcat5下只要声明:
workDir="D:/workspace/myJSP/j2src“就可以了。
如图:09

如果你一定要加上目录结构像这样:
workDir="D:/workspace/myJSP/j2src/org/apache/jsp"
你会发现tomcat5在编译时,就会默认把workDir作为工程编译目录,仍会在目录最末层创建org.apache.jsp的package结构。
如图:10

5、使用哪个Tomcat版本的问题
另外关于使用哪个Tomcat版本的问题,我个人觉得只要是Lomboz官方发布的版本中支持的Tomcat版本都应该可以配置成功。所以,那种说换个版本就成功了,可能在出问题的tomcat版本配置上还是有一定问题。

6、Lomboz3不支持Tomcat5.0.27吗?
Lomboz3不支持Tomcat5.0.27在国外论坛已经能找到问题所在了。是Lomboz3针对Tomcat5x的支持文件有一个莫名错误。
在%ECLIPSE_HOME%/plugins/com.objectlearn.jdt.j2ee_3.0.1/servers/tomcat50x.server文件中,查找“-Djava.endorsed.dirs”字符串,正确的设置应该是-Djava.endorsed.dirs="${serverRootDirectory}/common/endorsed",要删去一个莫名路径。一共要修改两处。修改完了,Tomcat就能顺利起来了。

Tomcat5.0.28好像没有这个问题吧,我用的5.0.28是没问题的,以前用Tomcat5.0.27确实存在这个问题,照Lomboz网站上所说的方法修改后Tomcat确实能启动了,但是我发现修改那个文件之后会产生新的问题,所以建议用Tomcat5.0.27的朋友们不要在Lomboz中启动Tomcat,直接把发布方式改成写xml文件的方式进行调试,或者干脆换个版本的Tomcat。

7、lomboz project中关于servlet如何自动加到web.xml中
关于Servlet的mapping问题,目前我也是手工加入的。如果你能找到好的办法也请通知我。

8、servlet如何自动生成在web-inf/classes目录下?
关于Servlet的保存目录,如果使用lomboz生成的web project默认servlet保存在bin目录下。为了方便调试和发布,正常情况下应该在classes目录下,需要如下设置:
在project属性中,按图片中所示设置。
这样servlet编译后的class文件就会按照你的package结构自动放置在classes下面了。
如图:11

9、怎么解决lomboz从.jsp文件转.java(servlet)文件时候中文乱码的问题
关键是jsp文件中要设定编码格式。
<%@ page language="java" contentType="text/html;charset=gb2312" %>
下面的gif图片,说明了当jsp文件中加入上面的标签后,原来在servlet中乱码的中文现在可以正确的显示了,观察一下servlet发现,增加了
response.setContentType("text/html;charset=gb2312");
但该句对代码中的中文是否是乱码,并没有起到关键作用,只是告诉servlet,要将代码中的中文以指定的编码格式输出(是为了执行结果而指定的中文编码格式)。导致servlet代码中的中文可以正确显示的原因,在于lomboz在将.jsp文件解析为.java时,因为发现了<%@ pagelanguage="java" contentType="text/html;charset=gb2312"%>这个标签,所以将.jsp编译为.java时,对其中的中文字符做了相应的编码转化。所以一句话,保证servlet代码中不出现乱码,关键在jsp文件中。
如图: