<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評(píng)論-767  文章-3  trackbacks-3

    第三部分 Liferay Portal部署

    本部分主要內(nèi)容

    Portlet部署? ANT? 管理Portlet

    第四章 部署自己的Portlet

    Liferay PortalTomcat5.0集成在一起,從本質(zhì)上講,liferay-portal-pro-3.6.0-tomcat.zip是一個(gè)Tomcat壓縮包,只是其中將liferay作為默認(rèn)應(yīng)用,并將跟Portlet有關(guān)的操作都交給liferay應(yīng)用處理而已。因此,Liferay Portal支持所有針對(duì)Tomcat5.0的部署方式,包括:手動(dòng)部署、Ant部署,并且支持熱部署。

    第一節(jié)? 手動(dòng)部署

    手動(dòng)部署可以采用拷貝文件夾、war部署、編寫部署文件三種方式:

    、拷貝文件夾:與單純的Tomcat一樣,我們可以將{APP_HOME}\webapp目錄拷貝到{PORTAL_HOME}\webapps\下,該webapp目錄名為TestPortal。啟動(dòng)Liferay Portal(雙擊{PORTAL_HOME}\bin\startup.bat)即可。

    war部署:或者將{APP_HOME}\webapp打包成TestPortal.war,拷貝war{PORTAL_HOME}\webapps\下,啟動(dòng)Liferay Portal,讓Tomcat自動(dòng)解壓。在命令行模式下切換到{APP_HOME}\webapp目錄,執(zhí)行 jar cvf TestPortal.war *

    、編寫部署文件:

    {PORTAL_HOME}\conf\Catalina\localhost目錄下,創(chuàng)建TestPortal.xml文件,內(nèi)容如下:

    部署成功后,登錄Liferay Portal,可以在桌面底部的下拉列表中看到HelloWorldPortletHelloJSPPortlet兩個(gè)Portlet。將它們添加到桌面中。
    圖4.1-2.jpg圖4.1-3.jpg

    第二節(jié)? Ant自動(dòng)部署

    確保之前已經(jīng)安裝Apache Ant,并正確添加ANT_HOME到系統(tǒng)環(huán)境變量。

    、拷貝之前打包的TestPortlet.war{APP_HOME}/deploy目錄;

    、從http://prdownloads.sourceforge.net/lportal/Portlet-deployer-3.6.0.xml 下載Portlet-deployer-3.6.0.xml {APP_HOME}\deploy,改名為build.xml以便Ant自動(dòng)加載;

    、確保JDK1.4.2Ant 1.6安裝成功,并配置到系統(tǒng)環(huán)境變量;

    、確保Tomcat或者其他服務(wù)器已經(jīng)正確安裝,或者Liferay Portal正常安裝。

    編輯build.xml,使其只想你的應(yīng)用服務(wù)器或者Servlet容器。比如,如果你安裝JBoss+Jetty/opt/liferay目錄,那么編輯build.xml,確保只有JBoss+Jetty部分沒有被注釋,修改app.server屬性為/opt/liferay

    Build.xml默認(rèn)是開啟JBoss+Jetty部分,本文采用的是Tomcat集成包,所以將JBoss+Jetty部分注釋掉,開始Tomcat部分。修改app.server.dir屬性,指向{PORTAL_HOME}。如下圖:
    圖4.2-1.jpg

    、命令行切換到到{APP_HOME}/deploy目錄,執(zhí)行 ant deploy ,系統(tǒng)會(huì)自動(dòng)將TestPortal.war解壓,必要時(shí)修改web.xmlportlet.xml等部署文件,將解壓后的TestPortal文件夾拷貝到{PORTAL_HOME}\webapps目錄下。

    啟動(dòng)Liferay Portal之前,建議先確認(rèn)修改后的web.xmlportlet.xml等部署文件是否正確。

    第三節(jié)? 加入Liferay Portal自有列表

    之前我們提到過,Liferay Portal集成了78個(gè)默認(rèn)的Portlet應(yīng)用。這些應(yīng)用都通過{PORTAL_HOME}\liferay\WEB-INF\目錄下的portlet.xmlliferay-portlet.xmlliferay-display.xml描述。我們只要更改這些描述文件,就可以將我們自己的應(yīng)用加入到Liferay PortalPortlet列表中了,效果跟手動(dòng)部署和Ant自動(dòng)部署一樣。

    、拷貝{APP_HOME}\webapp目錄的內(nèi)容到{PORTAL_HOME}\liferay\html\Portlet目錄下,更改文件夾名稱為TestPortal

    、將TestPortal\WEB-INF\classes文件夾剪切到{PORTAL_HOME}\liferay\WEB-INF目錄下。

    、將TestPortal\WEB-INF\web.xml的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\web.xml中。刪除TestPortal\WEB-INF\web.xml

    、將TestPortal\WEB-INF\Portlet.xml中關(guān)于HelloWorldPortletHelloJSPPortlet的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\portlet.xml中。刪除TestPortal\WEB-INF\ portlet.xml

    、將TestPortal\WEB-INF\liferay-portlet.xml中關(guān)于HelloWorldPortletHelloJSPPortlet的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay-portlet.xml中。刪除TestPortal\WEB-INF\liferay-portlet.xml

    、將TestPortal\WEB-INF\liferay-display.xml中關(guān)于HelloWorldPortletHelloJSPPortlet的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay- display.xml中。刪除TestPortal\WEB-INF\ liferay- display.xml

    這個(gè)方法比較復(fù)雜,而且不容易擴(kuò)展和調(diào)試,通常不建議采用。

    第四節(jié)? 普通Java Web應(yīng)用轉(zhuǎn)化為Portlet應(yīng)用

    隨著開發(fā)的深入,我們希望能夠?qū)⒃瓉淼?/SPAN>Java Web應(yīng)用遷移到Liferay Portal,構(gòu)建真正的企業(yè)門戶。Liferay Portal靈活的二次開發(fā)機(jī)制,允許用戶將各種各樣的內(nèi)容集成到Portal平臺(tái)上來,消除信息孤島。將一個(gè)Java Web應(yīng)用轉(zhuǎn)化為Portlet應(yīng)用的步驟如下:

    、撰寫擴(kuò)展自GenericPortletPortletJSP頁面。這個(gè)Portlet可以使用PrintWriter輸出或者調(diào)用JSP頁面輸出方式。通常,如果Java Web應(yīng)用是采用MVC三層模式,那么只需要更改View層就可以了。

    、修改web.xml,增加2.6.1所述的Portlet監(jiān)聽器和Portlet標(biāo)簽庫,增加針對(duì)上步驟所寫的servletservlet映射。

    ??????

    ????????????? yourPortlet

    ????????????? com.liferay.portal.servlet.PortletServlet

    ?????????????

    ???????????????????? Portlet-class

    ???????????????????? full.name.of.yourPortlet

    ?????????????

    ????????????? 0

    ??????

    ??????

    ????????????? yourPortlet

    ????????????? /yourPortlet/*

    ??????

    、創(chuàng)建portlet.xml,增加相應(yīng)的Portlet定義信息,規(guī)范參考2.6.2

    、創(chuàng)建liferay-portlet.xml,增加相應(yīng)的Portlet定義信息,規(guī)范參考2.6.3

    、創(chuàng)建liferay-display.xml,增加相應(yīng)的Portlet類別定義信息,規(guī)范參考2.6.4

    、拷貝portlet.jarliferay-Portlet.tld到當(dāng)前應(yīng)用。其中,portlet.jarPortlet API包,作用類似servlet-api.jar,位于{PORTAL_HOME}\common\lib\ext\liferay-portlet.tldLiferay Portal提供的Portlet標(biāo)簽庫。

    、選擇適當(dāng)?shù)牟渴鸱绞剑瑢⑿薷暮蟮?/SPAN>Java Web應(yīng)用部署到Portlet平臺(tái)上。

    第四部分 附錄

    本部分主要內(nèi)容

    資源網(wǎng)站 Portlet范例 參考資料 后序

    第五章 相關(guān)資源

    作為一個(gè)開源的門戶產(chǎn)品,Liferay Portal已經(jīng)比較成熟,有比較齊全的文檔。隨著應(yīng)用的深入,開源免費(fèi)的中文化文檔也在陸續(xù)出現(xiàn)。

    第一節(jié) 資源網(wǎng)站

    Liferay Portal 官方網(wǎng)站:http://www.liferay.com?

    Liferay Portal 中文網(wǎng)站:http://www.liferay.cn?

    Liferay Portal 論壇:http://forums.liferay.com?

    Tracker http://support.liferay.com?

    郵件列表:http://sourceforge.net/mailarchive/forum.php?forum=lportal-development?

    JavaLobby專題:http://www.javalobby.org/articles/liferay/

    OSQS專題:http://cstsolaris.cst.nait.ab.ca/ist410/gerry/liferay/index.jsp?

    Leonardsoko1專題:http://www.leonardsokol.com/liferay/

    Developer專題:http://www.developer.com/java/web/article.php/10935_3372881_1

    第二節(jié)? 示例

    Liferay Portal隨程序包提供了豐富的documentation,其中的Portlet Examples對(duì)Portal內(nèi)置的Hello WorldIFrameCalendarMessage BoardsMail五個(gè)Portlet進(jìn)行了比較詳細(xì)的解說。啟動(dòng)Liferay Portal后,瀏覽這里:

    http://localhost/web/guest/documentation/development/Portlet

    另外,Liferay Portal還在官方網(wǎng)站上提供了Sample Layout TemplateSample PortletSample Themes供下載。其中,Sample Portlet包括Sample JSP PortletSample Struts PortletSample JSF SUN PortletSample JSF MyFaces Portlet。瀏覽這里:

    http://localhost/web/guest/downloads/sample_Portlet


    ?

    第六章參考資料

    、文檔

    JSR168 PORLET標(biāo)準(zhǔn)手冊漢化整理》?????????????????????? 作者:Jini

    Portlet應(yīng)用開發(fā)(JSR168)??????????????????????????????????????? 作者:Terry Lee

    (原創(chuàng)翻譯)Liferay-Portal架構(gòu)》?????????????????? 作者:eamoi

    、網(wǎng)站

    http://www.liferay.com

    http://www.liferay.cn

    ?

    后序

    研究Liferay Portal屬于半路出家。從開始到本文完成,倆月有余。作為一個(gè)開源的Portal產(chǎn)品,Liferay的確值得稱許,雖然還有不少bug。在本文截稿的時(shí)候,Liferay Portal V3.6.1已經(jīng)發(fā)版,新版本在拖拉PortletSpring遠(yuǎn)程傳輸和布局熱部署方面有比較大的提升。本文不會(huì)就此終結(jié),暫稱V1.0,作為前段工作的總結(jié)。本文的用戶策略部分參考了同事Kevin的文檔,特此感謝。

    PS:寫文章真的很費(fèi)腦筋。


    posted on 2005-10-21 09:26 eamoi 閱讀(10155) 評(píng)論(19)  編輯  收藏 所屬分類: Java

    評(píng)論:
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2005-12-18 21:25 | sunshineblue
    很不錯(cuò)的文章呢
    有空交流一下portal方面的東西  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2006-06-08 11:43 | ituser
    按照以上的步驟,創(chuàng)建了TestPortal.

    但一訪問http://127.0.0.1:8080/TestPortal/HelloWorldPortal 出錯(cuò)了

    提示:
    java.lang.NullPointerException
    com.liferay.portal.servlet.PortletServlet.service(PortletServlet.java:77)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    請問這是什么回事呢?  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2006-06-08 11:43 | ituser
    按照以上的步驟,創(chuàng)建了TestPortal.

    但一訪問http://127.0.0.1:8080/TestPortal/HelloWorldPortal 出錯(cuò)了

    提示:
    java.lang.NullPointerException
    com.liferay.portal.servlet.PortletServlet.service(PortletServlet.java:77)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    請問這是什么回事呢?  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2006-11-02 14:05 | 高薪招聘若干名Java Portal開發(fā)高級(jí)工程師
    用友軟件工程有限公司(http://www.use.com.cn)高薪招聘若干名Java Portal開發(fā)高級(jí)工程師。本文信息一周內(nèi)有效。

    職責(zé):
    1. 參與產(chǎn)品需求分析、定義。
    2. 參與產(chǎn)品設(shè)計(jì)和實(shí)現(xiàn)。

    技能要求:
    熟悉Liferay,有1年以上Java Portal and Portlet開發(fā)經(jīng)驗(yàn)。對(duì)Hibernate和structs熟悉的優(yōu)先考慮

    待遇
    根據(jù)技能高低,至少8k

    聯(lián)系方式:
    郵件 xujian@use.com.cn
    電話 82373737-8016
    聯(lián)系人 徐先生

    有意者給我發(fā)郵件吧。
      回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-01-24 15:11 | rain_zhou
    我的也是.到底怎么回事???
    java.lang.NullPointerException
      回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-01-24 15:11 | rain_zhou
    我的也是.到底怎么回事???
    java.lang.NullPointerException
      回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-04-21 21:30 | mr.white
    2007-4-21 13:19:08 org.apache.catalina.core.StandardContext listenerStart
    SEVERE: Error configuring application listener of class com.liferay.portal.servlet.PortletContextListener
    java.lang.ClassNotFoundException: com.liferay.portal.servlet.PortletContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3677)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    2007-4-21 13:19:08 org.apache.catalina.core.StandardContext listenerStart  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-04-21 21:32 | mr.white
    SEVERE: Error configuring application listener of class com.liferay.portal.servlet.PortletContextListener
    java.lang.ClassNotFoundException: com.liferay.portal.servlet.PortletContextListener

    在運(yùn)行HelloJSPPortlet 的例子的時(shí)候,監(jiān)聽老是啟動(dòng)不起來,好象找不到該類,加載不上,請各位高手指點(diǎn)一下,謝謝了  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-04-21 21:33 | mr.white
    SEVERE: Error configuring application listener of class com.liferay.portal.servlet.PortletContextListener
    java.lang.ClassNotFoundException: com.liferay.portal.servlet.PortletContextListener
    在運(yùn)行HelloWorldPortlet 的例子的時(shí)候,監(jiān)聽老是啟動(dòng)不起來,好象找不到該類,加載不上,請各位高手指點(diǎn)一下,謝謝了  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-05-22 14:42 | hello
    @mr.white

    我也碰到同樣問題了。  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-05-22 16:54 | hello
    解決了。注意下版本。如果是4.2的。要將com.liferay.portal.servlet.PortletContextListener 改成
    com.liferay.portal.kernel.servlet.PortletServlet,
    最后將portal-kernel.jar 導(dǎo)入
    就可以了。輸入http://localhost:8080/TestPortal/view.jsp就能看到結(jié)果  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-05-22 17:00 | hello
    發(fā)錯(cuò)了,應(yīng)該是com.liferay.portal.servlet.PortletContextListener==》com.liferay.portal.kernel.servlet.PortletContextListener

    com.liferay.portal.servlet.PortletServlet==>
    com.liferay.portal.kernel.servlet.PortletServlet

    兩個(gè)地方  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) [未登錄] 2007-07-31 14:17 | 飛馬
    我在liferay4.2.2按指南的操作,能夠加載portlet上下文,但登錄進(jìn)portal后,無法通過add content將portlet加入頁面,在portlet列表中沒有新建的portlet;但是在admin portlet中可以看到新建的portlet,但此處無法加入頁面。
    如何才能把新建的portlet加入頁面呢?謝謝  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) [未登錄] 2007-08-20 21:53 | test
    java.lang.NullPointerException
    com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:83)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2007-08-23 11:10 | 朱XX
    我在liferay4.2.2按指南的操作,能夠加載portlet上下文,但登錄進(jìn)portal后,無法通過add content將portlet加入頁面,在portlet列表中沒有新建的portlet;但是在admin portlet中可以看到新建的portlet,但此處無法加入頁面。
    如何才能把新建的portlet加入頁面呢?謝謝


    我也遇到同樣的問題,請教高手指點(diǎn)啊
    QQ 81009382 謝謝  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2008-05-13 17:38 | taihua
    深圳泰華天成科技有限公司(www.taihuatech.com.cn)成立于2007年,專注為大中型企業(yè)提供整體解決方案。公司擁有門戶、工作流、ESB等系列產(chǎn)品線,并已在實(shí)際項(xiàng)目中得到不同程度應(yīng)用。目前公司急缺善于跟蹤和應(yīng)用JAVA流行框架,對(duì)門戶(如liferay)、ESB、工作流方面有經(jīng)驗(yàn)的技術(shù)人才加盟共同創(chuàng)業(yè)。
    如果有興趣,或者周遍朋友有類似經(jīng)驗(yàn),真誠請您推薦加盟我們。

    簡歷投放地址:taihuatech@163.com
    聯(lián)系方式:fasit-jlle @hotmail.com,QQ:8181740
    謝謝您的關(guān)注。
      回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2009-02-09 16:22 | wzhangb
    關(guān)于Liferay 門戶,大家可以聯(lián)系大連Peter,他們是liferay中國唯一合作伙伴,我和peter 交流過,msn : eonpeter@gmail.com  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2009-11-06 12:17 | 大海之聲
    頂一下 !!!PETER人不錯(cuò)!  回復(fù)  更多評(píng)論
      
    # re: 【原創(chuàng)】Liferay Portal二次開發(fā)指南(11) 2010-08-12 20:59 | hmf0786
    中國大連Liferay服務(wù)

    QQ:1417153858 (Liferay支持)
    QQ:1410151582 (Liferay培訓(xùn))
    QQ:1492270185 (Liferay企業(yè)版)

    24小時(shí)電話聯(lián)系:
    0411-84898263 (總機(jī))
    15601156692 (市場部)

    Liferay中國服務(wù)大連QQ群: 49845872  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 久久亚洲色WWW成人欧美| 亚洲人成黄网在线观看| 亚洲成a人片在线观看中文动漫 | 亚洲一级毛片免费在线观看| av无码国产在线看免费网站| 免费无码又爽又刺激高潮 | 91麻豆精品国产自产在线观看亚洲 | 亚洲中久无码不卡永久在线观看| 亚洲色成人中文字幕网站 | 亚洲色WWW成人永久网址| 亚洲一区二区三区电影| 男人天堂2018亚洲男人天堂| 美女视频黄频a免费大全视频 | 亚洲成在人线在线播放无码| 一区二区视频在线免费观看| 一级做a爰全过程免费视频| 无码少妇一区二区浪潮免费| 亚洲AV无码一区二区三区在线观看| 亚洲级αV无码毛片久久精品| 亚洲成a人片毛片在线| 国产精品亚洲va在线观看| A片在线免费观看| 欧洲美熟女乱又伦免费视频 | 亚洲AV永久青草无码精品| 亚洲宅男精品一区在线观看| 黄网站色视频免费看无下截| 一级毛片免费毛片一级毛片免费| 国产无遮挡又黄又爽免费视频| 久久被窝电影亚洲爽爽爽| 亚洲精品无码aⅴ中文字幕蜜桃| 岛国岛国免费V片在线观看 | 亚洲AV美女一区二区三区| 亚洲一线产品二线产品| 两个人的视频www免费| 欧美最猛性xxxxx免费| 国产亚洲免费的视频看| 亚洲欧洲AV无码专区| 久久午夜无码免费| 免费国产成人午夜私人影视| 久久精品蜜芽亚洲国产AV| 一级人做人a爰免费视频|