??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品久久久久无码AV片软件,麻豆亚洲AV永久无码精品久久 ,亚洲永久中文字幕在线http://m.tkk7.com/dudubird/zh-cnWed, 14 May 2025 22:33:29 GMTWed, 14 May 2025 22:33:29 GMT60webservice&SOAhttp://m.tkk7.com/dudubird/archive/2007/08/03/134198.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Fri, 03 Aug 2007 03:30:00 GMThttp://m.tkk7.com/dudubird/archive/2007/08/03/134198.htmlhttp://m.tkk7.com/dudubird/comments/134198.htmlhttp://m.tkk7.com/dudubird/archive/2007/08/03/134198.html#Feedback0http://m.tkk7.com/dudubird/comments/commentRss/134198.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/134198.htmlwebservice可以由各U^台和技术来实现QSOA则徏立一个webservice注册库,理webservice的各个接口的信息。客L通过注册库来发现webservice?br />使用SOA的理由是Q重用性、互助性、扩展性、灵zL?br />webservice实现的技术和协议QXML、SOAP(ZXML格式在分布式计算中传递消息。在客户端和服务端定义了一个通用的格?、WSDL、UDDI(定义如何发布、发现webservice注册库内的服?、WS-SecurityQ保证消息的安全Q、WS-BPELQ组合webservice成一个业务流E)?/p>

]]>
webservice实现技术(ZjavaQ?/title><link>http://m.tkk7.com/dudubird/archive/2007/08/02/134027.html</link><dc:creator>毛里求斯的化?/dc:creator><author>毛里求斯的化?/author><pubDate>Thu, 02 Aug 2007 09:17:00 GMT</pubDate><guid>http://m.tkk7.com/dudubird/archive/2007/08/02/134027.html</guid><wfw:comment>http://m.tkk7.com/dudubird/comments/134027.html</wfw:comment><comments>http://m.tkk7.com/dudubird/archive/2007/08/02/134027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/dudubird/comments/commentRss/134027.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dudubird/services/trackbacks/134027.html</trackback:ping><description><![CDATA[webservice主要包括两个部分Q一部分是serviceQ另一个就是client。客L发送请求给serviceQservice处理h的数据后讲结果返回给client端。中间的通讯协议采用的是SOAP协议来封装消息。sun推出了JAWS来实现webserviceQ消息的装和处理对于程序员来说是透明。程序员要做的主要事情是Q编写webservicecd现接口,只有wsdl配置文gQ一般的IDE已经帮我们处理,q且提供了一个很直观的界面来理。目前的JAEE5采用注解的方式来~写webserviceQ程序看上出非常的简l,比如@WebService表示此javacL一个webservice。对于客LE序的编写,首先要定义webservice的wsdl的locationQ?a href="http://localhost:8080/hello/helloservice?wsdl">http://localhost:8080/hello/helloservice?wsdl</a>Q?然后声明一个webservice的一个对象,q些都可以采用注解的方式来实玎ͼ然后通过service对象创徏你想h的某个service的代理,通过代理调用相应的接口。可以看出,因ؓIDE的帮助,webservice的实现变得非常的单了?img src ="http://m.tkk7.com/dudubird/aggbug/134027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dudubird/" target="_blank">毛里求斯的化?/a> 2007-08-02 17:17 <a href="http://m.tkk7.com/dudubird/archive/2007/08/02/134027.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javaone文档http://m.tkk7.com/dudubird/archive/2007/08/02/134022.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Thu, 02 Aug 2007 09:00:00 GMThttp://m.tkk7.com/dudubird/archive/2007/08/02/134022.htmlhttp://m.tkk7.com/dudubird/comments/134022.htmlhttp://m.tkk7.com/dudubird/archive/2007/08/02/134022.html#Feedback0http://m.tkk7.com/dudubird/comments/commentRss/134022.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/134022.htmlhttp://developers.sun.com/learning/javaoneonline/index.jsp

]]>
sakai安装配置Q四Q?/title><link>http://m.tkk7.com/dudubird/archive/2006/09/09/68723.html</link><dc:creator>毛里求斯的化?/dc:creator><author>毛里求斯的化?/author><pubDate>Sat, 09 Sep 2006 08:43:00 GMT</pubDate><guid>http://m.tkk7.com/dudubird/archive/2006/09/09/68723.html</guid><wfw:comment>http://m.tkk7.com/dudubird/comments/68723.html</wfw:comment><comments>http://m.tkk7.com/dudubird/archive/2006/09/09/68723.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/dudubird/comments/commentRss/68723.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dudubird/services/trackbacks/68723.html</trackback:ping><description><![CDATA[     摘要: 6. 开始? sakai 到此为止Q你的安装已l和配置已经基本完成Q现在可以开始? sakai 了,在这里不打算详细讲解 sakai 的用细节,只是做一个入门的?..  <a href='http://m.tkk7.com/dudubird/archive/2006/09/09/68723.html'>阅读全文</a><img src ="http://m.tkk7.com/dudubird/aggbug/68723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dudubird/" target="_blank">毛里求斯的化?/a> 2006-09-09 16:43 <a href="http://m.tkk7.com/dudubird/archive/2006/09/09/68723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sakai安装配置Q三Q?/title><link>http://m.tkk7.com/dudubird/archive/2006/09/08/68560.html</link><dc:creator>毛里求斯的化?/dc:creator><author>毛里求斯的化?/author><pubDate>Fri, 08 Sep 2006 09:16:00 GMT</pubDate><guid>http://m.tkk7.com/dudubird/archive/2006/09/08/68560.html</guid><wfw:comment>http://m.tkk7.com/dudubird/comments/68560.html</wfw:comment><comments>http://m.tkk7.com/dudubird/archive/2006/09/08/68560.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/dudubird/comments/commentRss/68560.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dudubird/services/trackbacks/68560.html</trackback:ping><description><![CDATA[     摘要: 5. 数据库配|? 5.1. 从早期版本移? ...  <a href='http://m.tkk7.com/dudubird/archive/2006/09/08/68560.html'>阅读全文</a><img src ="http://m.tkk7.com/dudubird/aggbug/68560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dudubird/" target="_blank">毛里求斯的化?/a> 2006-09-08 17:16 <a href="http://m.tkk7.com/dudubird/archive/2006/09/08/68560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sakai安装配置Q二Q?/title><link>http://m.tkk7.com/dudubird/archive/2006/09/08/68557.html</link><dc:creator>毛里求斯的化?/dc:creator><author>毛里求斯的化?/author><pubDate>Fri, 08 Sep 2006 09:14:00 GMT</pubDate><guid>http://m.tkk7.com/dudubird/archive/2006/09/08/68557.html</guid><wfw:comment>http://m.tkk7.com/dudubird/comments/68557.html</wfw:comment><comments>http://m.tkk7.com/dudubird/archive/2006/09/08/68557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/dudubird/comments/commentRss/68557.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dudubird/services/trackbacks/68557.html</trackback:ping><description><![CDATA[     摘要: 3. ~译和发? Sakai 如何使用 Maven 以下步骤仅仅是简单介l如...  <a href='http://m.tkk7.com/dudubird/archive/2006/09/08/68557.html'>阅读全文</a><img src ="http://m.tkk7.com/dudubird/aggbug/68557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dudubird/" target="_blank">毛里求斯的化?/a> 2006-09-08 17:14 <a href="http://m.tkk7.com/dudubird/archive/2006/09/08/68557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sakai安装配置Q一Q(更新了依赖清单)http://m.tkk7.com/dudubird/archive/2006/08/31/66880.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Thu, 31 Aug 2006 07:32:00 GMThttp://m.tkk7.com/dudubird/archive/2006/08/31/66880.htmlhttp://m.tkk7.com/dudubird/comments/66880.htmlhttp://m.tkk7.com/dudubird/archive/2006/08/31/66880.html#Feedback6http://m.tkk7.com/dudubird/comments/commentRss/66880.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/66880.html阅读全文

]]>
Portal Framework介绍http://m.tkk7.com/dudubird/archive/2006/08/30/66629.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Wed, 30 Aug 2006 04:01:00 GMThttp://m.tkk7.com/dudubird/archive/2006/08/30/66629.htmlhttp://m.tkk7.com/dudubird/comments/66629.htmlhttp://m.tkk7.com/dudubird/archive/2006/08/30/66629.html#Feedback0http://m.tkk7.com/dudubird/comments/commentRss/66629.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/66629.html阅读全文

]]>
portal和portlet基本概念介绍http://m.tkk7.com/dudubird/archive/2006/08/17/64125.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Thu, 17 Aug 2006 06:53:00 GMThttp://m.tkk7.com/dudubird/archive/2006/08/17/64125.htmlhttp://m.tkk7.com/dudubird/comments/64125.htmlhttp://m.tkk7.com/dudubird/archive/2006/08/17/64125.html#Feedback1http://m.tkk7.com/dudubird/comments/commentRss/64125.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/64125.html版权声明QQ何获得Matrix授权的网站,转蝲时请务必以超链接形式标明文章原始出处和作者信息及本声?/span>
作?Sunil Patil;observer
原文地址:http://www.onjava.com/pub/a/onjava/2005/10/19/challenging-java-dominance.html
中文地址:http://www.matrix.org.cn/resource/article/44/44029_Portlet.html
关键词: Portlet Java


Portlets
“Portlets是一UWeblgQ就像servletsQ是专ؓ合成页面里的内容聚集在一赯设计的。通常h一个portal面会引发多个portlets被调用。每个portlet都会生成标记D,q与别的portlets生成的标记段l合在一起嵌入到portal面的标记内。”(摘自Portlet规范QJSR 168Q?br />
本文探讨了以下内容:
1.        Portal面的元?
2.        Portal是什么?
3.        Portlets是什么?
4.        开发“Hello World?Portlet
5.        在Pluto上部|HelloWorld Portlet
6.        如何创徏Portal面
7.        l束?
8.        资源


  Portlet规范portlet定义ZU“基于Java技术的weblgQ由处理h和生成动态内容的portlet容器理”。这D话听v来是不是有些费解Q本文将说明portlets是什么以及能用它们做什么?br />

?昄了在讉K一个portal服务器时览器中面的样子?br />

? 典型的portal服务器的面Q点L看原图)

  如果仔细查看览器里的页面,׃看到面是由不同的“窗口”组成的。一个窗口用于刷新天气,另一个用于新闻,q有一个用于刷新股P{等。这里的每一个窗口都代表了一个portlets。如果看得再仔细些,q会发现每个H口都有一个标题条和一些按钮,包括最化和最大化按钮?br />
  在系l里Q这些窗口是怺独立开发、各不同的应用。新闻portlet的开发者创建应用ƈ打包成war格式的文?随后portal服务器的理员在服务器上部v该war文gq创建页面,接下来每个用户会选择在他的页面里有哪些应用。例如,如果用户对股价不感兴而对体育感兴,他可以用“体肜y窗口替换“股价”窗口?br />
  Portlet技术需要学习许多新概念Q本文不可能全都늛Q因此本文分Z部分。在W一部分里我们详l说明portals和portletsQƈ开发一个简单的“Hello World”portletQ在W二部分我们探讨一些高U主题?br />
  我们用Apache的Pluto服务器(Portlet API 1.0规范的参考实玎ͼ来测试我们的CZportletsQ我们还会花些时间探讨如何安装和使用Pluto服务器?br />
Portal面的元?/span>

?昄了Portal面的各U元素?br />

? portal面的元?br />
  每个portlet面׃个或多个portletH口l成Q每个portletH口又分Z部分Q一个是外观Q它军_了portletH口的标题条、控制和边界的样式;另一个是portletD,它由portlet应用填充?br />
  Portal服务器决定了portal面的整体观感,像标识、标题条颜色、控制图标等。通过修改几个JSP和css模板文g可以改变portal的整个观感。我们将在“如何创建portal面”部分对此做深入讨论?br />
Portal是什么?

  在了解portlet之前有必要先了解portal。在Portlet规范里是q样讲的Q“portal是一Uweb应用Q通常用来提供个性化、单ơ登录、聚集各个信息源的内容,q作Z息系l表现层的宿丅R聚集是指将来自各个信息源的内容集成C个web面里的zd”?br />
  Portal的功能可以分Z个主要方面:
1.        Portlet容器QPortlet容器与servlet容器非常cMQ所有的portlet都部|在portlet容器里,portlet容器控制portlet的生命周期ƈ为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portletsQ向portlets传送用戯求ƈ合成响应?br />2.        内容聚集QPortlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们在“如何创建Portal面”部分对此做q一步讨论?br />3.        公共服务Qportlet服务器的一个强Ҏ它所提供的一套公共服务。这些服务ƈ不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。在大部分实C都有望找到的几个公共服务有:
         o 单次dQ只需dportal服务器一ơ就可以讉K所有其它的应用Q这意味着你无需再分别登录每一个应用。例如一旦我d了我的intranet|站Q我p讉Kmail应用、IM消息应用和其它的intranet应用Q不必再分别dq些应用?br />  Portal服务器会Z分配一个通行证库。你只需要在mail应用里设定一ơ用户名和密码,q些信息以加密的方式存储在通行证库中。在你已d到intranet|站q要讉Kmail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的讉K也将照此处理?br />          o个性化Q个性化服务的基本实C用户能从两方面个性化她的面Q第一Q用户可以根据她的自w喜好决定标题条的颜色和控制图标。第二,用户可以军_在她的页面上有哪些portlets。例如,如果我是个体育迷Q我可能会用一个能提供我钟q队最C息的portlet来取代股和新闻portlets?br />        一些在个性化服务斚w领先的商业实现版本允怽建立为用hCZ么样的应用所依据的标准(如收入和兴趣Q。在q种情况下,可以讑֮一些像“对M收入为X的用hC馈赠商品的portlet”和“对M收入为X的用hC打折商品的portlet”这L商业规则?br />
        此外q有一些公共服务,比如机器译Q是由portal服务器将portlet生成的内容翻译ؓ用户要求的语a。大部分的商业portal服务器都支持手持讑֤讉Kq具有针对不同的览l端生成不同内容的能力?br />
Portlets是什么?

  与servletscMQportlets是部|在容器内用来生成动态内容的weblg。从技术角度讲portlet是一个实Cjavax.portlet.Portlet接口的类Q它被打包成war文g格式部v到portlet容器里?br />
  Portlets在以下方面与servlets怼Q?br />1.        portletsq定的容器理?br />2.        portlets生成动态内宏V?br />3.        portlet的生命周期由容器理?br />4.        portlets通过h/响应模式与web客户端交互?br />
  Portlets在以下方面与servlets相异Q?br />1.        portlets只能生成标记D,而不是整个文档?br />2.        portlets没有可供直接讉K的URL地址。不q你q是能够让别人通过URL讉K到portletQ你可以把包含该portlet的页面的URL发给他?br />3.        portlets不能随意地生成内容,q是因ؓportlet生成的内Ҏl要成ؓportal面的一部分。如果portal服务器要求的是html/textcdQ那么所有的portlets都应生成html/textcd的内宏V再比方_如果portal服务器要求的是WMLcdQ那么所有的portlets都应生成WMLcd的内宏V?br />
  portletsq提供了一些附加的功能Q?br />1.        讄参数的持久化存储Qportlets提供了一个PortletPreferences对象用来保存用户的设|参数。这些参数被存入一个持久化数据库,q样服务器重启后数据依然有效。开发者不必关心这些数据存储的具体实现机制?br />2.        h处理Qportlets提供了更为细_度的请求处理。对于用户在portlet上动作时向该portlet发出的请?一U称为活跃期的状?Q或者因用户在其它portlet上动作而引发的h面hQPortal服务器提供了两种不同的回调方法来处理?br />3.        Portlet模式Qportlets用模式的概念来表C用户在做什么。在使用mail应用的时候,你可能会用它来读信、写信或查信件――这些都是mail应用的预定功能,Portlets通常以VIEW模式提供q些功能。但q有一些活动,像指定刷新时间或Q重斎ͼ讄用户名和密码Q这些活动允许用户定制应用的行ؓQ因此它们用的是EDIT模式。Mail应用的帮助功能用的是HELP模式?br />
  如果仔细x其实q里面ƈ没有什么新东西Q它们反而大部分都是普通的业务需求。Portlet规范的作用在于它提供了一个抽象层Q这才是它对所有与之相关的人-最l用戗开发者和理员-的h值所在?br />
  作ؓ一个开发者,我会所有与VIEW模式有关的业务逻辑攑օdoView()ҎQ将与应用配|有关的业务逻辑攑օdoEdit()ҎQ将与帮助有关的逻辑攑օdoHelp()Ҏ

  q就化了理员对portlet应用的访问控制管理,因ؓ他只需改变portlet的访问权限就能决定用戯做什么。例如,如果mail应用的一个用戯够在EDIT模式下设定用户名和密码,那么可以断定他hEDIT模式讉K权限?br />
  不妨考虑q样一U情形:我是一个intranet|站的管理员Q我的公怹了一个能昄新闻信息的第三方portlet应用Q该应用允许用户指定跟踪新闻更新的URL地址Q我惛_助它ؓ用户昄公司的内部新闅R另一个需求是我不惌用户通过该应用来跟踪M其它的新M息来源。作为管理员Q我可以为所有的用户指定一个用于内部新L新的URL地址Q同旉过改变portlet应用的部|描q符来取消其它h修改该地址的权限?br />
  ׃所有的portlet应用都具有相似的UI界面Q因此采用portlets可ɾ|站Ҏl用h具吸引力。如果她想阅MQ何一个应用的帮助信息Q她可以点击帮助按钮Q她也知道点ȝ辑按钮能让她q入应用的配|屏。标准化的用L面你的portlet应用更引人?br />
4.        H口状态:H口状态决定了portal面上留lportlet生成内容的空间。如果点L大化按钮Qportlet占据整个屏q,成ؓ用户唯一可用的portletQ而在最化状态,portlet只显CZؓ标题条。作为开发者应当根据可用空间的大小来定做内宏V?br />
5.        用户信息Q通常portlets向发求的用户提供个性化的内容,Z能更加行之有效,portlets需要访问用L属性信息,如姓名、email、电话等。Portlet API为此提供了用户属性的概念Q开发者能够用标准的方式访问这些属性,q由理员负责在q些属性与真实的用户信息数据库Q通常是LDAP服务器)之间建立映射关系?br />
  我们在本文的第二部分深入讨些特点-h处理、用户信息和portlet模式?br />
开?Hello World" Portlet

  现在我们来开发一个简单的HelloWorld portlet?br />1.        创徏一个名为HelloWorld的web目Q它与通常的servlet目cMQ有一?WEB-INF/web.xml文g作ؓ目的部|描q符?br />
2.        在build path里加入portlet-api-1.0.jar文gQ该jar文g是Pluto发行包的一部分?br />
3.        在Source文g夹中按如下内容创建HelloWorld.java文gQ?br />
public class HelloWorld extends GenericPortlet{
  protected void doView(RenderRequest request,
  RenderResponse response) throws
  PortletException, IOException {
        response.setContentType("text/html");
        response.getWriter().println("Hello Portlet");
        }
}


  每个portlet都要实现Portlet接口Q该接口为portlet定义了生命周期方法。由于不惌盖所有这些方法,我们只对GenericPortletc进行扩展,它是一个实CPortlet接口的适配器类。GenericPortletcL供了所有生命周期方法的默认实现Q所以我们只需实现我们所需要的Ҏ?br />
  我们?HelloWorld portlet里要做的只是昄“Hello Portlet”,所以我们将覆盖GenericPortletcȝdoView()ҎQ该Ҏ以PortletRequest ?PortletResponse作ؓ参数。在doView()Ҏ中首先调用response.setContentType()以通知portlet容器该portlet要生成何种cd的内容-如果不这样做׃DIllegalStateException异常。一旦设|了内容的类型,可以从response对象中获得PrintWriterq开始写入?br />
4.        每个portlet应用?WEB-INF文g夹中都有一个portlet.xml文gQ它是portlet应用的部|描q符。按以下内容创徏portlet.xml文gQ?br />
<portlet>
  <description>HelloWorldDescription
        </description>
    <portlet-name>HelloWorld
        </portlet-name>
    <display-name>Hello World
        </display-name>

    <portlet-class>com.test.HelloWorld
        </portlet-class>
    <expiration-cache>-1
        </expiration-cache>
        <supports>
          <mime-type>text/html</mime-type>
      <portlet-mode>VIEW
          </portlet-mode>
        </supports>
    <supported-locale>en
        </supported-locale>

        <portlet-info>
          <title>Hello World</title>
          <short-title>Hello World
          </short-title>
          <keywords>Hello,pluto</keywords>
      </portlet-info>
</portlet>


  <portlet-name>元素声明了portlet的名字,<portlet-class>元素指定了portlet的全限定cdQ?lt;expiration-cache>元素以秒为单位指定了内容期的时间。这里面有一炚w要注意:你在portlet上的某些动作可能会导致内容刷斎ͼq与~存旉无关?br />  <supports>元素指定对于l定?lt;mime-type>有哪些模式可供支持。在CZ中我们假定HelloWorld只能生成text/htmlcd的内容,且只有view模式可支持该内容cd。如果要增加对其它内容类型的支持Q需要添加新?lt;support>元素q指定支持该MIMEcd的模式有哪些。通常portlet对于text/htmlcd有VIEW、EDIT和HELP模式可供支持Q而对于WML MIMEcd则只有VIEW模式?br />  q可以用<supported-locale>元素来指定portlet支持哪些本地化?lt;title>元素用来指定portlet的标题。如果要Ҏ题做国际化处理,可以用元?lt;resource-bundle>指定资源Q比例properties文gQ的文g名。在q种情况下,容器根据用h在的地区从适当的properties文g中选择标题?br />
5.        每个portlet应用都是一个web应用Q因此除了portlet.xml文g之外q需要有web.xml文g?br />
<web-app>
  <display-name>Hello World Portlet
  </display-name>
  <welcome-file-list
    <welcome-file>index.jsp
        </welcome-file>
  </welcome-file-list>
</web-app>


6.        接下来将q些文gq行~译q打包ؓwar文g。你可以自己完成q些工作Q或者下载带有build.xml 的示例代码(参见“资源”部分)来创建war文g?br />在Pluto上部|HelloWorld Portlet

  Pluto处于开发阶D늚早期Q因此还没有一套易于用的理工具。ؓ了能使用Pluto服务器,需要将~译和源代码两个版本都下载。需要注意的是以下说明是针对Windowsq_的,Unix用户通过修改斜杠W号和执行sh shell脚本Q不是bat批命令文Ӟ会得到类似的l果?br />
1.        创徏一个文件夹Q比如C:\PlutoInstallation?br />2.        从Pluto的网站下载pluto-1.0.1-rc1.zip和pluto-src-1.0.1-rc1.zip?br />3.        pluto-1.0.1-rc1.zip解压到C:\PlutoInstallation.文g夹,它应被解压到C:\PlutoInstallation\pluto-1.0.1-rc1文g夹下?br />4.        执行C:\PlutoInstallation\pluto-1.0.1-rc1\bin\startup.bat启动PlutoQ现在可以通过地址http://localhost:8080/pluto/portal讉KPluto服务器?br />5.        pluto-src-1.0.1-rc1.zip解压到C:\PlutoInstallation\PlutoSrc文g夏V?br />6.        q入C:\PlutoInstallation\PlutoSrc文g夹,执行maven distribute:all.Q编译ƈ下蝲q行常规理d所必需的相兌源文件。现在可以将HelloWorldPortlet.war作ؓportletq行安装了?br />7.        首先HelloWorldPortlet.war文g拯到C:\PlutoInstallation\portlets目录Q如果没q个目录创建它?br />8.        C:\PlutoInstallation\plutosrc\build.properties.sample更名为build.properties?br />9.        ~辑build.propertiesQ将maven.tomcat.home指向Pluto~译版的安装位置Q在本例中应改ؓmaven.tomcat.home=C:/PlutoInstallation/pluto-1.0.1-rc1?br />10.        Z安装portletQ进入C:\plutoInstallation\plutosrc\deploy文g夹,执行maven deploy -Ddeploy=c:\PlutoInstallation\portlets\HelloWorldPortlet.warQ应能看到“build successful”信息?br />11.        在C:\PlutoInstallation\pluto-1.0.1-rc1\webapps文g夹下Q应该有一个HelloWorldPortlet文g夏V?br />12.        现在q入C:\PlutoInstallation\pluto-1.0.1-rc1\webapps\HelloWorld\WEB-INF\ folder文g夹,打开portlet的web.xml文gQ你会发现里面自动多了几行,如下所C:
<servlet>
  <servlet-name>HelloWorld</servlet-name>
     <display-name>HelloWorld Wrapper</display-name>
      <description>Automated generated
      Portlet Wrapper</description>
      <servlet-class>org.apache.pluto.core.PortletServlet
      </servlet-class>
      <init-param>
         <param-name>portlet-class</param-name>
         <param-value>com.test.HelloWorld
         </param-value>
      </init-param>
      <init-param>
         <param-name>portlet-guid</param-name>
         <param-value>HelloPluto.HelloWorld
         </param-value>
      </init-param>
</servlet>

13.        接下来我们将该portlet加到面里。进入C:\PlutoInstallation\pluto-1.0.1-rc1\webapps\pluto\WEB-INF\data文g夹,可以看到有两个XML文gQpageregistry.xml和portletentityregistry.xml?br />14.        portletentityregistry.xml包含了portlet的定义,在该文g中加入以下几行:
 <application id="5">
   <definition-id>HelloWorld</definition-id>
     <portlet id="1">
       <definition-id>HelloWorld.HelloWorld</definition-id>
     </portlet>
</application>

  应用?lt;definition-id>应ؓweb应用所在文件夹的名字,portlet?lt;definition-id>应与web.xml中生成的portlet-guid怸致?br />15.        pageregistry.xml定义了页面中包含了哪些portletsQ对该文件做如下改动Q?br />
  <fragment name="p2" type="portlet">
    <property name="portlet" value="/blog/5.1"/>
</fragment>

16.        执行shutdown命o和startup命o重启Pluto服务器,q回到地址http://localhost:8080/pluto/portalq点几ZTest Link”-此时面中将出现我们?br />
HelloWorld portlet?/span>

?的右侧显CZHelloWorld portlet看上ȝ样子?br />

? portlet的屏q截?br />
如何创徏Portal面

?昄了portal容器如何分ȝportletsl装为页面?br />

? 创徏Portal面

  大部分的portal服务器基本上都是部v于应用服务器上的web应用Q通过servlet来处理访问portal服务器的h。查看一下Pluto的安装目录就会发现Pluto不过是一个部|于Tomcat服务器上的一个普通web应用Q再看看C:\PlutoInstallation\pluto-1.0.1-rc1\webapps\pluto\WEB-INF\web.xml会发现所有发往Pluto服务器的h都被映射到org.apache.pluto.portalImpl.Servlet上?br />
  在本文开始部分“Portal面的元素”中Q我们提到portal面׃部分l成。一部分是由面中的portlets生成的内容,另一部分是由portal服务器生成的内容?br />
  在Pluto里,只要用户发出hQ就会由servletq行控制Q根据用hh的页面来定需要显C的portlets的列表。一旦生成了列表Qservlet将控制转给q些portletsU程q收集由它们生成的内宏V?br />
  对于由portal服务器生成的内容Q像portal|站的观感及每个portlet的外观和控制之类Q则取决于C:\PlutoInstallation\pluto-1.0.1-rc1\webapps\pluto\WEB-INF\aggregation文g夹下的JSP文g。RootFragment.jsp是主JSP文gQ它军_了整体的观感和对齐方式;它还包含了Heads以定义在生成的页面中?lt;HEAD>标签里的内容。TabNavigation.jsp用来选择在banner中该昄什么(默认情况下在banner昄列表中也包扩了pluto.png囄Q。TabNavigation.jsp用来定portal|站的导航方案。这意味着只需改动该文件夹下少量的几个JSP文gQ就能改变整个portal|站的观感?br />
  PlutoҎpageregistry.xml中的讄定面中有多少行,q用RowFragment.jspd充。ColumnFragment.jsp用来填充每个栏目。PortletFragmentHeader.jsp用来填充每个portlet的页_像标题条及最大化和最化控制。footer.jsp用来填充JSP的页脚。如果去看一下portal面的HTML代码׃发现每个portletH口无非都是嵌入<TD>标签的内容块?br />
l束?/span>

  M一U新技术要惌得成功都应具备以下条Ӟ首先Q它能提升现有技术;其次Q它能解决现有技术遇到的普遍问题Q再ơ,它能提供多于一个的抽象层(有h_每抽象出一层,问题p决一半)?br />
  ׃portlet与现有的应用服务器架构兼容,q对Portlet API来说是一ơ发展servlet技术的好机会。你可以从portlet里调用EJBQ或者用它启动和参与由应用服务器控制的全局性事务。换句话_在以商业逻辑为核心的领域里,portlet完全可以做得和servlet一样好?br />
  Portlets提供了一个抽象层Q现在你不必再担心客L使用了什么样的HTTPҎQ也不必自己~写E序L获像点击按钮q样的客L事g。最后但l不是最ơ要的一ҎQportlets以提供像单次d、个性化{服务的方式解决了servlets不能解决的大部分问题?br />
资源
·本文的示例代?/a>
·JSR 168的首?http://www.jcp.org/en/jsr/detail?id=168
·Pluto的首?http://portals.apache.org/pluto/
·onjava.com:
onjava.com
·Matrix-Java开发者社?http://www.matrix.org.cn


Sunil Patil从事J2EE技术工作已?q_他感兴趣的领域包括对象关pL工兗UI框架以及portals?


]]>
新版sakaipȝ发布http://m.tkk7.com/dudubird/archive/2006/08/14/63485.html毛里求斯的化?/dc:creator>毛里求斯的化?/author>Mon, 14 Aug 2006 07:12:00 GMThttp://m.tkk7.com/dudubird/archive/2006/08/14/63485.htmlhttp://m.tkk7.com/dudubird/comments/63485.htmlhttp://m.tkk7.com/dudubird/archive/2006/08/14/63485.html#Feedback0http://m.tkk7.com/dudubird/comments/commentRss/63485.htmlhttp://m.tkk7.com/dudubird/services/trackbacks/63485.html 7 ?/span> 19 ?/span> Q?/span> sakai 基金会宣?/span> sakai 2.2.0 版正式发布。本ơ升U修正了一些缺P改善了许多功能,解决?/span> sakai C֌成员报告?/span> 500 多个问题?/span>

    以下是本版本的重要变化:

    现有工具的功能提?/span>

    资源库、作业和日程表都引入组的概c可以由教师控制组讉K。系l原有的所见即所得文本编辑器也从 HTMLArea 改ؓ功能更ؓ强大?/span> FCKeditor 。在q行内容~辑Ӟ可以方便地进入资源库q行选择q插入图片和 Flash 动画Qƈ可即时上传图片到资源库?/span>

    与开源电子档案袋目深度l合

    开源电子档案袋Q?/span> OSP Q是另一个重量的教育开源项目,同样获得 Mellon 基金会的资助。现在, OSP 的开发已l完全与 Sakai 同步了,q成?/span> Sakai 的一个备选工兗用档案袋工具Q学生可以收集、整理、反思自己在学习q程中完成的作业和作品,通过有组l的设计、编排然后发布到|上供老师?/span> 同学、家长以及未来的雇主览。此举能学生多q的学业成就充分展示出来Q对教师深入了解学生、学生提高自q自信心均大有好处。教师也可以利用档案袋整 理自q教学资源Q回、反思自q教学l历。让学生和学校能更好C解自q教学理念和教学状c档案袋已经在教育领域得到充分的研究和应用,q次?/span> Sakai 的结合?/span> Sakai 目在功能上有极大的提升?/span>

    大量备选工h成?/span>

    ?/span> Sakai 中除了通知、作业、资源库{标准工具外q存在大量由各大学负责开发的备选工兗这些工具都可以投入实际q用。备选工L出现使得 Sakai 在功能上更加?/span> 富多栗?/span> Melete Lesson Builder 是其中非帔R要的一个。该工具?/span> Foothill 学院负责开发,可以让教师在U编辑自q电子讲义q按照章节有序编排。编辑时q可方便地插 ?/span> Word ?/span> Powerpoint {文Ӟ也可插入视频、音频等多媒体文Ӟ导入、导出符?/span> IMS 标准的电子讲义也在D手之间。编辑器使用 FCKeditor Q类?/span> Word 的操作将使教师运用自如?/span> Jforum 是著名的 JAVA 开源论坛Y件。同L Foothill 学院引入 Sakai 中,?/span> 业强大的功能使得师生的在U交更加顺畅、舒适?/span> UFP 站点l计工具使得教师能随时了解学生的在线学习情况Q学生在评站点中的操作在眼底。其它备选工 兯包括与课E开攄l?/span> EDUCommons 的连接、与数字资源?/span> Fedora 的连接、自动批量发布学生成l和评语?/span> Post'em 、由剑桥大学开发的c?/span> ?/span> Google 的站内搜索引擎等{?/span>



]]>
վ֩ģ壺 ޳߹ۿ| պһƷ߲ƵһƷ| Ӱַ| ĻmvѸӰ | AVպAVþþ| 99þֻƷ| ƷAVһ| ޾Ʒþþþþο| 99ƵƷѹۿ7| һëƬѲһ| ޾߹ۿ| gogoȫ| 91Ƶѹۿ| ѿֻˬ͵Ƶ| ޹㽶| ĻѾþӰԺ| ھƵƷ| һƬѿ| ޵һӰԺ| ۺϵ| ձþþѸ| 99þ޾ƷѶ| ɫ͵͵޹| ޾Ʒþþþþ| ƷV޾ƷVպƷ| պƷƬҹѹ | һaȫƵ| պĻۺ| Ƶһ߹ۿ| ޳AVƬ߹ۿ| պѵӰ߹ۿ| 69Ƶ߹ۿ| һƵ| ޾ƷĻ| ٸ36P| ˾þô߽| ȫѹɫһ| Ƶ| 7723ձ| ƷһëƬ| һ|