kukooBlog

look to the master, follow the master, walk with the master, see through the master, become the master.

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  213 随笔 :: 0 文章 :: 285 评论 :: 0 Trackbacks

Eclipse带有其内置的Tomcat服务器,用于支持Eclipse的Help服务。 通常在打开Help页面的时候,Help系统会启动内置的Tomcat。我们在开发基于RCP的应用系统时,也同样可以通过API来启动并且使用这个内置的Tomcat服务器(尽管Eclipse没有提供相应的文档,并且不推荐使用这类功能)。

Eclipse的org.eclipse.help.internal.appserver包中,含有一个重要的类:WebappManager,几乎所有和Tomcat相关的操作,都和这个WebappManager有关,其中比较重要的几个方法是:

  1. getHost(),返回运行Tomcat的主机名或者IP地址
  2. getPort(),返回Tomcat监听的端口号,这个端口号在每次Tomcat启动时,都不一样
  3. start(String webappName, String pluginId, IPath path),启动应用程序,其中的pluginId为包含web应用的插件ID(后面做详细解释)

在了解了基本的方法以后,我们可以实验一下:

  1. 创建一个插件(plug-in): com.kompakar.webapp,这个插件可以不需要UI的支持
  2. 插件com.kompakar.webapp需要依赖以下Eclipse插件:
    1. org.eclipse.help.appserver
    2. org.eclipse.help.base
  3. 在com.kompakar.webapp目录下面,建立WEB-INF,WEB-INF/lib和WEB-INF/classes目录。 这里的WEB-INF目录结构和普通的web application完全一致,用于存放你的JSP,Servlet和classes。 如果你的web application需要其他库的支持,那么放在WEB-INF/lib下面。
  4. 启动Tomcat: WebappManager.start("myapp", "com.kompakar.webapp", Path.EMPTY); 在启动方法中:
    1. 第一个参数myapp就是web application的上下文目录;
    2. 第二个参数就是包含了web application的插件ID;
  5. 得到完整的URL: "http://" + WebappManager.getHost() + ":" + WebappManager.getPort();
    1. 这个操作返回的结果可能是:http://127.0.0.1:52235,最后的端口号是随机的

OK,如果你启动了你的插件,并且在WEB-INF下面有一个简单的index.jsp的话,打开你的浏览器,打开: http://127.0.0.1:52235/myapp,那么你就可以看到你的index.jsp了。 如果你的插件同时捆绑了Eclipse的Web Browser插件的话,你就可以在你的插件里打开浏览器,直接访问你的web application了。

这样做有什么好处吗? 其中的一个好处是,你可以把支持web的报表系统(比如BIRT)安装在一个特殊的插件中,那么你的桌面RCP系统就有一个支持web的报表系统了,你可以通过启动Tomcat来使用你的报表。

【参考文章】Use Embedded Tomcat in Eclipse for a Webapp

Technorati :

posted on 2006-06-27 15:08 kukooBlog 阅读(3140) 评论(1)  编辑  收藏 所属分类: EclipseJavaProgramming

评论

# re: 使用Eclipse中内嵌的Tomcat服务器 2008-09-23 15:24
这个端口号能修改么  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: