使用Netbeans部署和测试Portlets

开发 后端
本文使用Netbeans部署和测试Portlets,Portal是一个包含很多自定义的、可定制网页的Web应用。具体的部署过程看下文。

Portal是一个包含很多自定义的、可定制网页的Web应用。一个Portal应用里面包含有多个Portlets,而Porlets是一些web组件,可以嵌入到Portal应用里面。在上一篇文章《SOA概念的一些个人见解》中,我提到过SOA的服务包含表示层服务,这些Portlets可以看作是表示层的服务。下图是一个Portal的应用的例子:

在这个网站中,我们可以看到,整个网站又多个小窗口组成,这些窗口可以最小化,最大化和关闭,这些小窗口就是一个个的Portlets。Portlets和Servelet一样,需要一个容器来管理,Servelet需要一个WEB容器来管理,而Portlets则需要用一个Portal容器来进行管理。在这篇文章里,我将介绍如何在Netbeans里创建和管理Portlets。

Netbeans部署和测试软件需求:

1、JDK1.6以上版本

2、OpenPortal Portlet Container 2.0 beta

3、Netbeans 6.0以上版本(我使用的是Netbeans 6.1),并安装这些插件:jMaki Ajax Support,OpenPortal Portlet Container, Generic Portlet。

Netbeans部署和测试实验步骤

1、把Portal容器配置到glassfish中:下载OpenPortal Portlet Container 2.0 beta,下载的文件是一个jar包,把该jar包的路径拷贝到命令行中,用java -jar portlet-container-configurator.jar命令执行安装,并选择glassfish的安装路径,如下图所示:

点击OK即可进入下一步。

2、配置Portal服务器:打开"Service"窗口,右键单击"server"-"Add Server",在弹出的窗口中选择"OpenPortal Portlet Container 2",点击下一步,这一步要选择WEB容器,默认是GlassFish Server,在GlassFish Home中把路径指向glassfish的安装目录即可,如:C:\Program Files\glassfish-v2ur2。另外还需要输入admin的口令,默认是adminadmin。点击下一步并完成即可配置好。

3、新建一个web工程:File - New - Web - Web Application,命名为MyPortlet,点击下一步,其中Server选择"OpenPortal Portlet Container 2.0",点击下一步,选择框架时,必须把Portlet Support及jMaki Ajax Framework选中,在选中Portlet Support时,注意要把"Create Portlet"选中,并把Portlet Class Name和Portlet Name都改为MyPortlet,注意,这两个名称必须一致,如下图所示:

选中jMaki时,把CSS Style选为No CSS Style,如下图所示:

4、工程建立完毕以后,我们展开WEB-INF文件夹,可以看到以下结构:

在一个Portlet里面,我们不再需要index.jsp,因此可以先把index.jsp删除。Portlet的视图是在WEB-INF下的jsp目录下的MyPortlet_view.jsp。Netbeans IDE为我们生成了一个非常重要的源文件,那就是源包中的com.test.MyPortlet.java。这个java文件相当于Portlet的一个控制器,它继承了GenericPortlet这个基类,doView,doEdit,doHelp方法分别会被GenericPortlet里的render()方法调用,为Portlet指定视图、编辑页面及帮助页面。

5、右键单击项目的"Build",生成项目并运行,你可以看到如下的页面:

由于MyPortlet_view.jsp中只有一句:MyPortlet - VIEW MODE,因此,我们看到窗口中只有一句话:MyPortlet - VIEW MODE。注意MyPortlet窗口右上角的那些按钮,都是可以使用的,大家可以尝试点按一下它们,体验一下Portlet的含义。

6、下面我们来为该Portlet添加一些动态和静态的内容,包括RSS订阅的功能。

首先,打开WEB-INF/jsp/MyPortlet_view.jsp,我们来在主视图中添加一个多页选项卡:
把MyPortlet - VIEW MODE这行去掉,在组件面板中拖一个Yahoo的ViewTab到jsp代码中,在jsp代码中生成了以下代码:

  1. value="{items:[  
  2. {label : 'My Tab', content : 'Some Content'},  
  3. {id : 'bar', label : 'My Tab 2', include : 'test.jsp ', lazyLoad : true },  
  4. {label : 'My Tab 3', content : 'More Content', selected : true}  
  5. ]  
  6. }" /> 

点击项目的右键,选择Undeploy and deploy,再运行一下项目,你可以看到以下的页面:

点击MyTab2时,得到一个消息"Unable to load URL test.jsp .",那是因为MyTab2指向一个jsp文件,而我们并没有创建这个文件。将MyPortlets_view.jsp的那段Widget的代码用以下的替换:

现在,我们来创建3个jsp文件。点击Web Pages的右键,注意,是Web Pages的右键,而不是WEB-INF/jsp的右键,因为我们现在不是要创建Portlet的视图,而是在Portlet中引用其他的页面,注意到上面这段代码中,Tab里面的URL的上下文都是MyPortlet。分别创建download.jsp,fundamentals.jsp和whatsnew.jsp三个jsp文件。

打开download.jsp,用以下这段代码来替换body里面的代码:

  1. Downloads for New Developers 

 


Sun SITE下载中心

NetBeans IDE

MySQL Database

打开fundamentals.jsp,把正文部分的
JSP Page
去掉,从组件面板中拖一个jMaki Widgets的Blog List到正文body部分,生成如下代码:

生成的代码只是一些示例的文本,我们把代码替换为以下:

 

  1. Java Technology Fundamentals  

如果你需要完成RSS订阅的功能,必须把service设置为service="/xhp?id=rss",而每一个使用jMaki框架的应用,在应用上下文中(也就是web.xml)都配置了一个jmaki.xhp.XmlHttpProxyServlet的Servlet,其URL映射为/xhp。因此,我们在请AJAX代理时,一定要引入这个上下文。你可以修改xhp.json文件来自定义需要订阅的内容。打开xhp.json,我们可以看到最后一项数据是:

  1. {"id": "rss",  
  2. "url":"http://weblogs.java.net/blog/ludo/index.rdf",  
  3. "xslStyleSheet": "rss.xsl"  

在这段代码中,url指定了RSS订阅的地址是http://weblogs.java.net/blog/ludo/index.rdf,这里,我们改为:
http://blogs.sun.com/JavaFundamentals/feed/entries/rss
另外,我们还需要在whatsnew页面中订阅另外一个RSS,因此,把原有的那段代码用以下的替换:


 

  1. {"id": "rss", "url":"http://blogs.sun.com/JavaFundamentals/feed/entries/rss", "xslStyleSheet": "rss.xsl" }, {"id": "rss2", "url":"http://developers.sun.com.cn/blog/scut/feed/entries/rss", "xslStyleSheet": "rss.xsl" } 

注意,两个id之间必须要有个逗号分隔开来。接下来,打开whatsnew.jsp,用以下静态内容替换body部分的代码:What's PopularThe Java Tutorial
Java Technology Fundamentals
Core Tech Tips
Easy Web Site Creation in the NetBeans IDE
The Java EE 5 Tutorial
What's New然后,在组件面板中拖一个Blog list出来,并替换为以下:7、配置Widget的样式。打开resources/jmaki/bloglist/component.css,把height : 75px; 替换为height : 25px; 另外,在component.htm中,把
@{description}
删掉,因为我们只需要保留标题,而不需要显示详细的内容。 8、重新部署项目,点击项目右键,选择Undeploy and deploy,再运行,就可以看到自己定制的Portlet了:

9、再新建一个Portlet,创建的顺序与上一个Portlet相同,在编辑Portlet的View时,简单地拖两个widget进去进行调试,这里,我拖的是Yahoo的Search和Dojo的Clock,部署并运行,我们在Portlet管理页面上就可以同时看到这两个Portlet了:

【编辑推荐】

  1. NetBeans 6.0模块快速入门教程
  2. Netbeans 6.0发布,支持Ruby、移动开发和集成的剖析器
  3. NetBeans 6.0预览版发布 Sun再引惊呼
  4. NetBeans成为Ruby开发者的新伙伴(3)
  5. 八大技术牛人点评NetBeans 6.5
责任编辑:张燕妮 来源: csdn
相关推荐

2009-05-27 14:31:53

NetBeansEclipsPHP

2009-06-15 15:26:00

NetBeans连接数使用JSTL

2009-06-11 10:06:50

NetBeans使用

2009-06-09 13:02:30

NetBeans使用教程

2009-06-11 09:39:33

netbeans 生成Webservice

2015-02-11 09:15:46

云部署嵌套虚拟化PaaS

2009-06-12 11:36:42

Netbeans插件DTrace GUI

2023-06-29 08:00:40

蓝绿部署策略Docker

2009-06-15 14:28:00

NetBeansJavafx

2009-06-04 15:59:53

Netbeans操作MMySQL数据库

2009-06-15 15:16:00

netbeans sw平台开发

2009-06-09 16:01:36

NetBeansIDEjava

2009-06-05 15:22:28

NetbeansEclipse

2011-05-24 10:30:31

PythonNetBeans ID

2020-03-24 07:00:00

UbuntuLinuxNetbeans

2009-08-07 10:27:45

Eclipse和Net

2020-03-20 18:19:05

UbuntuLinuxNetbeans

2009-10-09 13:22:47

Eclipse 3.6Netbeans 6.

2018-04-16 13:56:31

GitHubPythonFlask

2009-06-15 16:05:00

NetBeans ID编译odinms
点赞
收藏

51CTO技术栈公众号