Jboss Portal本身并没有提供eclipse portlet开发插件,花了整整一天才找到适合的JBoss Portal开发环境,先后试用了Pluto portlet Plugin和eclipse-portalpack,发现Pluto不能直接导出WAR包,不太方便,还是eclipse-portalpack比较实用,下文将使用一个HelloWorld实例进行说明。
1.下载最新版本的eclipse-portalpack:
插件介绍页面:https://eclipse-portalpack.dev.java.net/
插件1下载URL:https://eclipse-portalpack.dev.java.net/files/documents/6568/51760/com.sun.jsr168.portlet.plugin_1.0.0.jar
插件2下载URL:https://eclipse-portalpack.dev.java.net/files/documents/6568/51761/com.sun.server.os.portlet.container_1.0.0.jar
2.安装eclipse-portalpack:
将下载的两个JAR包直接拷贝到eclipse\plugins目录下即可
3.运行eclipse,创建Portlet项目:
eclipse启动后,选择new->other->JSR 168 Portlet Porject Creator->JSR 168 Portlet Porject Creator,如下图所示:
[img]http://wurd.iteye.com/upload/attachment/13649/1ebec6d4-2c3a-3e91-91fc-b9a2da4ab5d7.gif" width="600" height="500[/img]
点击"Next",在随后的界面中输入"Porject Name"为HelloWorld,再点击Finish即完成Portlet项目的创建。项目的结构如下图所示:
4.创建Portlet Class:
建好了Portlet Porject后,就可以创建具体的Portlet了,插件已经生成了三个基本的JSP文件:view.jsp、edit.jsp、help.jsp,因此本示例中可以不用新建JSP文件,直接创建portlet class即可,创建的方法如下:
在eclipse左边的目录数下,选中src/java点右建建立一个新的包,取名为com.portlet.test,然后再选中这个包,点右建选择new->other->JSR 168 Portlet Porject Creator->JSR 168 Portlet,再点Next,在随后的界面中输入"Name"为HelloWorldPortlet,"Super Class"选择javax.portlet.GenericPortlet,"Portlet Modes"选项中,将"View","Edit","Help"均打勾,如下图所示:
[img]http://wurd.iteye.com/upload/attachment/13653/dce14057-709a-3317-a3b3-ff6e62bbd362.jpg" width="600" height="500[/img]
点击"finish"即完成了Portlet Class的创建。
5.编辑Portlet Class:
在我进行调试的时候,发现插件生成的代码,不能直接在JBoss Portal中运行,可能是各个应用服务器对路径的识别有点差异,需要对几个路径进行更改:
在HelloWorldPortlet.java中找到
PortletRequestDispatcher dispatcher = context.getRequestDispatcher("WEB-INF/jsps/view.jsp");
PortletRequestDispatcher dispatcher = context.getRequestDispatcher("WEB-INF/jsps/edit.jsp");
PortletRequestDispatcher dispatcher = context.getRequestDispatcher("WEB-INF/jsps/help.jsp");
将其中的
WEB-INF/jsps
更改为:
/WEB-INF/jsps
即可。
6.编辑Portlet.xml文件:
遗憾的是这个插件不能自动生成Portlet的相关配置,必须手工添加。
在WEB-INF文件夹中找到Portlet.xml文件中,加入以下的配置:
<portlet>
<portlet-name>HelloWorldJSPPortlet</portlet-name>
<portlet-class>com.portlet.test.HelloWorldPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
<portlet-info>
<title>HelloWorld JSP Portlet</title>
</portlet-info>
</portlet>
7.生成Portlet WAR包:
这一步最简单,在eclipse左边的目录树中,找到build.xml文件,点右键,选择run As->Ant build,即可在当前的工作区中生成HelloWorld.war文件,将此war包直接拷到
jboss\server\default\deploy目录下,即可自动部署,部署完成后需要用管理员身份创建此portlet的实例,并发布到页面中,有关此部分内容,可参考JBoss的相关文档。