在eclipse中调试turbine代码

来源:互联网 发布:大连 大数据 招聘 编辑:程序博客网 时间:2024/05/17 22:09

一、下载Eclipse3.2eclipse.org的最新版好像已经升到3.2.1了)

二、安装适合Eclipse3.2MyEclipse

我的版本是MyEclipseEnterpriseWorkbenchInstaller_5.0M2_E3.2.exe,在网上找到一个可用的序列号是:

Subscriber: www.1cn.biz

Subscriber Code: jLR8ZC-444-55-4467865481680090

接下来要做的是配置MyEclipse,点击Window->Preferences…,展开MyEclipse->Application Server->Tomcat 5,选择Tomcat ServerEnable,然后分别输入:

Tomcat Home DirectoryD:/jakarta-tomcat-5.0.28

Tomcat Base DirectoryD:/jakarta-tomcat-5.0.28

Tomcat Temp DirectoryD:/jakarta-tomcat-5.0.28/temp

请根据你的Tomcat实际安装路径来进行调整,点击“OK”保存设置。

 

三、导入工程到eclipse3.2.0

导入helloworld工程之前,请确认在helloworld目录下运行了maven eclipse命令。导入成功之后,右键单击工程“helloworld”,在上下文菜单中选择MyEclipse->Add WebProject Capabilities…

Add MyEclipse WebProject Capabilities对话框中,修改Web Context Root为不同于helloworld的一个名称,比方说hw,然后点击Finish结束。

为什么要为helloworld改名呢,原因是MyEclipse会将你的工程发布到tomcatwebapps目录里,而maven也编译你的工程,然后部署到webapps里,为了让二者不打搅,只好修改MyEclipse的发布路径。

 

添加完成后,[src]目录和[target]目录中分别会有一个xml文件显示红叉,那个是因为dtd验证失败引起的,不用理会。

 

四、调整helloworld的目录结构使其适合MyEclipse发布

比较一下你的helloworld工程目录和maven发布到tomcat中的helloworld,你可以发现目录结构有很大的不同。为了让helloworld工程在eclipse中(安装了MyEclipse插件)便于发布和调试,我们必须调整helloworld工程为maven打包后的结构。

1、  首先复制部署在tomcathelloworld目录下 WEB-INF目录中的[conf]web.xmlhelloworld工程目录的 WEB-INF目录中(注意:添加了MyEclipse WebProject Capabilities后才有的WEB-INF)。

2、  回到上一层目录,复制除了tomcathelloworld目录下WEB-INF外的目录[images][logs][resources][scripts][style][templates]helloworld工程目录中。

3、  eclipse中,选择你的helloworld工程,按F5刷新一下工程。

 

五、添加测试代码

1、  helloworld/templates/screen目录下添加文件HelloWorld.vm(注意,以后编辑和修改的vm文件所属目录均指helloworld/templates,而不是helloworld/src/templates

2、  编辑其内容为

<h1>A field</h1>

The contents of content_field is $content_field <br>

3、  展开target/src源码包,在org.apache.turbine.app.helloworld.modules.screens下添加一个java类,取名为HelloWorld。编辑其代码为:

package org.apache.turbine.app.helloworld.modules.screens;

 

import org.apache.velocity.context.Context;

import org.apache.turbine.modules.screens.VelocityScreen;

import org.apache.turbine.util.RunData;

 

public class HelloWorld extends VelocityScreen {

    public void doBuildTemplate(RunData data, Context context) {

       try {

           context.put("content_field", "some text");

       } catch (Exception e) {

           return;

       }

    }

}

4、  修改templates/screen目录下的Index.vm文件,在文件顶部增加一行代码:

<a href="$link.setPage('HelloWorld.vm')">helloWorld</a>

 

六、部署启动Tomcat

1、  点击点击这个 这个按钮部署你的工程到Tomcat5Project处选择helloworld,点击Add按钮,在New Deployment对话框中,选择ServerTomcat 5Deploy typeExploded Archive(如果选择Packaged Archive会自动将你的应用打包成一个.war文件),点击Finish完成部署。

2、  然后点击xxx下拉箭头,选择Tomcat 5->Start,以后每次可以直接点击xxx 启动Tomcat5

3、  打开浏览器,输入网址http://localhost:8080/hw,即可查看你的网页,不同的是,点击helloWorld的链接,你还可以看到如下页面:

A field

The contents of content_field is some text

没错,HelloWorld.vm中的$content_field变量已经被替换为HelloWorld.java中的some text了。

 

七、在eclipse中调试turbine代码

保持eclipsetomcat的启动状态,双击HelloWorld.java

context.put("content_field", "some text");

之前空白处,为其设上断点。然后重新刷新浏览器中http://localhost:8080/hw/app/template/HelloWorld.vm页面,你将会跳转到eclipsedebug模式下调试你的代码。

 

应该还有更好的办法去调试turbine,毕竟我的这种办法牺牲了和maven的兼容性,如果还想使用maven turbine:deploy来部署turbine工程,则需要helloworld目录下的[images][logs][resources][scripts][style][templates]这几个目录覆盖到helloworld/src/目录下。而且就工具而言,MyEclipse是要收费的。

总之,找到一个在IDE下编辑、调试、部署应用程序的方法至关重要,好的方法会使你事半功倍,不好的方法会使你处于盲打代码的泥潭中。

 

在这里,我仅仅只是抛砖引玉,希望有志于推广和使用turbine的朋友群策群力,共同丰富turbine的文档和使用技巧。

 
原创粉丝点击