由于项目要求,需要做一个Portlet放在门户网站来展示我们的功能方便演示。虽然感觉并不复杂,但毕竟没做过,一切都得从头学起。有道是万事开头难,虽然IBM又有一篇入门文章——“Hello World,一个简单的JSR 168 portlet”,从该网页下载了一个HelloWorld.zip,但涉及文件和操作过多,使人不知道到底自己创建一个Portlet要从何做起。经过了一番摸索,终于成功地在Pluto中部署了这个Portlet,下面以这个HelloWorld为例,说说另外要注意的重点,希望对和我一样的初学者有所帮助(可以先下载该文件,按需要解压出相应文件和目录):
1、对于初学者,使用Deploy很容易失败,各种原因都会导致部署不成功(比如这个HelloWorld中说的部署过程,因为jar文件与pluto1.0.1-rc2不一致就会出现很多类没有找到的错误,使部署过程失败)。所以我们直接在<pluto_home>\webapps目录中创建一个常规的Web应用程序,比如叫HelloWorld目录,里面还要有WEB-INF目录,该目录下还有web.xml和portlet.xml。
web.xml:


























































2005-5-13 20:32:12 org.apache.pluto.portalImpl.services.log.LoggerImpl error
严重: Error in Portlet
java.lang.NullPointerException
at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:109)
……
这个问题在Apache的MailList一直有人问,大部分可能都是这个问题。
编译好portlet后,放好目录(WEB-INF\classes下)。
2、修改<pluto_home>\webapps\pluto\WEB-INF\data下的pageregistry.xml、portletcontexts.txt、portletentityregistry.xml三个文件,这里可以按照http://portals.apache.org/pluto/install.html中Installing Portlets部分做,也可以参照pageregistry.xml、portletentityregistry.xml两个文件中现有的一个test portlet的写法改。还记得要在portletcontexts.txt中加上Web应用程序的目录“\HelloWorld”。
3、最后,在Pluto上http://localhost:8080/pluto/portal页面左侧就可以看到一个HelloWorld链接,点击后可以看到

注意修改portlet类、配置等,可能都需要重启Pluto(其实也就是Tomcat)服务器。这样之后如果通过访问servlet的方式来访问portlet:http://localhost:8080/HelloWorld/HelloWorldPortlet,应该会得到一个空页面。就是说我所知道的访问测试Portlet方式就是通过这个地址了http://localhost:8080/pluto/portal/HelloWorld。