var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2006年04月05日

    图解用Eclipse3.1+Lomboz3.1+Tomcat5.0开发JSP

    分类:
    首先必须要有的软件:
    1、JDK 下载地址:http://java.sun.com/j2se/1.4.2/download.html
    2、Eclipse Plaform SDK 下载地址:http://www.eclipse.org/downloads/index.php
    3、Lomboz 下载地址:http://forge.objectweb.org/project/showfiles.php?group_id=97
    4、EMF Runtime 下载地址:http://www.eclipse.org/emf/
    5、Tomcat 下载地址:http://jakarta.apache.org/site/binindex.cgi

    我用的各软件版本如下:
    JDK v1.4.2_06
    Eclipse v3.1.0
    Lomboz v3.1.0
    EMF Runtime v2.1.0
    Tomcat v5.0.28

    以上的各个软件除了JDK需要安装外其他直接解压缩就可以安装了。其中Lomboz需要EMF的支持,而Lomboz和EMF Runtime是直接解压缩到Eclipse的目录下的,注意解压的目录结构要和Eclipse的一样。现在假设各个软件的安装位置是:

    JDK: C:\Java
    Eclipse: D:\Eclipse
    Tomcat:D:\Tomcat

    先保证Tomcat可以单独运行正常,这个我不废话了。

    安装好后要配置环境变量,需要添加和修改的如下(这是我机器上的配置):

    JAVA_HOME:"C:\Java"
    TOMCAT_HOME:"D:\Tomcat"
    CLASSPATH:".;C:\Java\lib\dt.jar;C:\Java\lib\tools.jar" 最前面的.一定要加上,代表当前目录
    PATH:"%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Java\bin"

    Lomboz:
    先将emf-sdo-runtime-I20041216080.zip解压到Eclipse3的目录下;
    然后 org.objectweb.lomboz_3.1.0.N20041219.zip 解压到Eclipse3的目录下

    Eclipse:
    插件被发现需要在Help—>Software Updates—>Manager Configuraton...中启用所安装的插件,注意需要显示未被激活插件。
    如下图:
    http://www.javaworld.com.tw/jute/upload/2004/07/27/43197962.jpg

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

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

    http://www.javaworld.com.tw/jute/upload/2004/07/27/66626787.jpg
    (2) Lomboz
    如图:02
    http://www.javaworld.com.tw/jute/upload/2004/07/27/90185957.jpg

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

    http://www.javaworld.com.tw/jute/upload/2004/07/27/46564563.jpg
    b、  Server Classpath
    如图:04
    http://www.javaworld.com.tw/jute/upload/2004/07/27/47932630.snap.jpg

    c、  Project Classpath
    如图:05
    http://www.javaworld.com.tw/jute/upload/2004/07/27/98497657.jpg

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


    //... ...

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

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

    http://www.javaworld.com.tw/jute/upload/2004/10/16/92765175.snap.jpg

    终于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中缺少必要的类文件。你就检查是否在server classpath中包含了该类文件所需要的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相关的文献):

    其中,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

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

    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
    http://www.javaworld.com.tw/jute/upload/2004/10/15/22696548.snap.jpg
    9、怎么解决lomboz从.jsp文件转.java(servlet)文件时候中文乱码的问题

    关键是jsp文件中要设定编码格式。

    下面的gif图片,说明了当jsp文件中加入上面的标签后,原来在servlet中乱码的中文现在可以正确的显示了,观察一下servlet发现,增加了
    response.setContentType("text/html;charset=gb2312");
    但该句对代码中的中文是否是乱码,并没有起到关键作用,只是告诉servlet,要将代码中的中文以指定的编码格式输出(是为了执行结果而指定的中文编码格式)。导致servlet代码中的中文可以正确显示的原因,在于lomboz在将.jsp文件解析为.java时,因为发现了这个标签,所以将.jsp编译为.java时,对其中的中文字符做了相应的编码转化。所以一句话,保证servlet代码中不出现乱码,关键在jsp文件中。
    如图:
    http://www.javaworld.com.tw/jute/upload/2004/10/18/43577249.gif

    分享到:

    历史上的今天:

    版权的终结 2006年04月05日