kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
           



          開發(fā)與部署分開

          在WLP81中,可以在WORKSHOP中定義Portal,也可以在Admin Tool中中定義Portal.究竟有怎么區(qū)別呢? 原來WLP81與WLP70不一樣,建議把應(yīng)用的開發(fā)與最終的發(fā)布分開.即在workshop中把應(yīng)用的所有portlet都開發(fā),調(diào)試通過后,然后在WLP81的Admin Tool中定義portal,desktop. 最終發(fā)布出去的是在Admin Tool中定義desktop. 最終用戶通過訪問desktop來訪問portal 應(yīng)用.

          如何集成其他Web系統(tǒng)
          如果要把其他的基于BS結(jié)構(gòu)開發(fā)的Web系統(tǒng)集成到WLP81中,有以下幾中方式.
          1. Kapow
          他是WLP81自帶的組件.可以把一個(gè)網(wǎng)頁的全部或裁剪網(wǎng)頁的一部分,在WLP81的portlet中顯示出來.
          2. 采用WLP81帶的JSP Tag: <es:uriContent>
          3. 采用IFRAME
          4. 采用Apache web scraping package

          如何集成其他CS結(jié)構(gòu)的系統(tǒng)
          如果要在WLP81中集成CS結(jié)構(gòu)的系統(tǒng),個(gè)人認(rèn)為主要有以下幾種方式:
          1. 在JSP中調(diào)用Web Service,Tuxedo Service,DCOM,CORBA等組件
          把要集成的部分包裝成Web Service,Tuxedo Service,DCOM, CORBA等組件.然后通過在JSP中調(diào)用這些組件來把內(nèi)容在WEB 頁面上展示出來.
          2. JAVA API
          如果這些CS結(jié)構(gòu)的系統(tǒng)有JAVA API.那么可以在JSP中通過調(diào)用如果這些CS結(jié)構(gòu)的系統(tǒng)有JAVA API來把中調(diào)用這些組件來把內(nèi)容在WEB 頁面上展示出來
          3. Citrix公司的MetaFrame Portlet
          MetaFrame是Citrix公司所開發(fā)的一款解決遠(yuǎn)程訪問相關(guān)問題的優(yōu)秀產(chǎn)品,MetaFrame實(shí)現(xiàn)了基于服務(wù)器的計(jì)算機(jī)構(gòu)---使得遠(yuǎn)程用戶能夠使用任何類型的終端系統(tǒng),通過任何類型的網(wǎng)絡(luò)連接,使用遠(yuǎn)程服務(wù)器上的任何應(yīng)用程序。
          MetaFrame產(chǎn)品采用了MultiWin和ICA兩種主要技術(shù)。MultiWin允許多個(gè)用戶可以同時(shí)使用某個(gè)應(yīng)用程序;ICA(Independent Computing Architecture)可以將應(yīng)用的邏輯與界面分開。這兩種技術(shù)的結(jié)合,使得應(yīng)用程序可以隨時(shí)隨處發(fā)布,不再受客戶端和連接性能的限制。
          用戶甚至能夠使用同一個(gè)終端系統(tǒng)訪問甚至遠(yuǎn)程多個(gè)不同平臺(tái)、不同網(wǎng)絡(luò)協(xié)議服務(wù)器上的多個(gè)應(yīng)用,這些應(yīng)用被集成在一個(gè)訪問界面中,操作簡(jiǎn)便。詳細(xì)資料參見: http://www.achieva.com.cn/product/citrix/

          Portlet的最大化,最小化等圖片出不來
          如果訪問WLP81的Portal應(yīng)用,無法顯示Portlet的最大化,最小化等圖片,可通過下面的方法解決:
          1. 在%web-app%/framework/skins下增加一個(gè)名為zh的文件夾,然后skins目錄下原有的文件夾(及所有文件)拷貝至zh文件夾內(nèi)。
          2. 在WEB-INF下面的netuix-config.xml下增加以下一段
          <!--resoule the chinese problem -->
          <localization>
          <enable>true</enable>
          <default-locale language = "en"/>
          </localization>

          替換header中的圖片
          如果要替換Portal Header中的圖片,方法如下:從sample portal的framework/markup/shell中導(dǎo)入HeaderFooterVisitor.shell,右擊desktop,從彈出菜單中選擇shell/HeaderFooterVisitor.shell,然后雙擊Header,生成header.jsp,修改header.jsp即可。如果footer出不來,需要在shell文件中加入:
          <netuix:footer>
          <netuix:jspContent contentUri="/footer.jsp"/>
          </netuix:footer>
          然后將shell替換為原來的shell,再替換為新shell就可以。

          設(shè)置Portal Domain的啟動(dòng)選項(xiàng)
          在Portal Domain的啟動(dòng)腳本startweblogic.cmd中,通過設(shè)置下面的flag的值,來決定Portal Domain的啟動(dòng)選項(xiàng)。

          set DB_DB=workshop
          set debugFlag=false
          set specialFlag=false
          set WLS_PRODUCTION_MODE=true
          set testConsoleFlag=true
          set iterativeDevFlag=true
          set logErrorsToConsoleFlag=true
          set pointbaseFlag=true
          set profileFlag=false
          set doExitFlag=true
          set verboseLoggingFlag=false
          set memmax=-Xmx512m

          關(guān)閉portal的搜索引擎
          如果你覺的Portal的搜索引擎沒怎么用,可以把它關(guān)閉,方法如下:在Portal Domain的啟動(dòng)腳本startweblogic.cmd中,在下面的語句前加rem,注釋掉。這樣可以提高系統(tǒng)的性能。

          rem start "Start Portal SearchEngine" /MIN cmd /c
          call "%WLP_HOME%\thirdparty\search\startSearchEngine.cmd"
          rem start "Stop Portal SearchEngine" /MIN cmd /c
          call"%WLP_HOME%\thirdparty\search\stopSearchEngine.cmd"


          WLP81對(duì)IE的要求
          WLP81必須配合IE60才行,如果是IE50,在瀏覽Portal應(yīng)用,或進(jìn)入Portal Admin Tool時(shí),會(huì)拋出下面的Exception。可從此處下載IE60:
          http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&DisplayLang=en

          在WLP81中正確顯示FLASH
          1.可以通過FLASH PLUG-IN來顯示。下面是一個(gè)例子:
          <table border="0" cellpadding="5" cellspacing="0" width="100%">
          <tr>
          <td background="/sampleportal/images/bg.gif" width="100%" align="center"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="320" height="60" hspace="80" align="middle">
          <param name="movie" value="/sampleportal/images/test.swf">
          <param name="quality" value="high">
          <embed src="/sampleportal/images/test.swf" width="100%" height="80" hspace="20" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>
          </td>
          </tr>
          </table>


          2.通過WLP81的 Content Manager
          把要顯示的FLASH放到WLP81 CMS的REPOSITY中,然后通過CONTENT SELECTOR顯示。例子如下:

          <pz:contentSelector id="nodes" rule="xcj" />
          <es:forEachInArray array="<%=nodes%>" id="node" type="com.bea.content.Node" > <ad:render id="node" height="200" width="400"/>
          </es:forEachInArray>

          要注意的是: *.SEL文件應(yīng)放到GlobalContentSelectors目錄下,不要放到contentselectors目錄下,否則,雖然在Content preview中可以顯示,但在運(yùn)行環(huán)境下無法顯示.


          從WLP81的CMS中取內(nèi)容并顯示
          下面的代碼通過Content selector從WLP81的CMS中查詢滿足條件的文件,并在瀏覽器中顯示。如是文件的filetype值是img就直接顯示。如是文件的filetype值是doc就顯示超聯(lián)接。

          <pz:contentSelector id="nodes" rule="sampleRule" />
          <es:forEachInArray array="<%=nodes%>" id="node" type="com.bea.content.Node" >
          <cm:getProperty node="<%=node%>" name="filetype" resultId="type" default="doc" />

          <%
          String fileType=type.toString();
          if (fileType.equals("[img]"))
          {
          String simg = "<img src= ' " + "/Sampleportal/ShowBinary" + node.getPath() + "'>";
          out.println(simg);
          %>

          <%
          }

          else if(fileType.equals("[doc]"))
          {
          String simg="<a href='http://localhost:7001/sampleportal/ShowBinary"+node.getPath()+"' target='_blank' >預(yù)覽下載</a>";
          out.println(simg);
          }
          %>
          </es:forEachInArray>

          在IE瀏覽器中直接輸入
          http://localhost:7001/sampleportal/ShowBinary/BEA+Repository/mynode
          可用來檢查是否可以正確顯示CMS中的內(nèi)容。Mynode為相應(yīng)節(jié)點(diǎn)的名稱。

          讓W(xué)LP81正確處理中文
          為了讓W(xué)LP81能正確處理中文,需要設(shè)置下面幾個(gè)地方。
          1. 在web.xml中
          <context-param>
          <param-name>weblogic.httpd.inputCharset./*</param-name>
          <param-value>GBK</param-value>
          </context-param>

          2. 在weblogic.xml中
          <jsp-descriptor>
          <jsp-param>
          <param-name>encoding</param-name>
          <param-value>GBK</param-value>
          </jsp-param>
          </jsp-descriptor>

          3.修改*.portal文件的編碼
          可在ultraEdit中打開*.portal文件
          修改其中的 <portal:directive.page contentType="text/html;charset=UTF-8"/>為
          <portal:directive.page contentType="text/html;charset=GBK"/>
          如果修改后,有一些JSP文件無法打開,可在ultraEdit中打開,把代碼COPY 到Workshop 的source View中.

          4.修改Workshop的編碼

          在代碼中設(shè)置Page,Portlet的屬性
          在開發(fā)時(shí),可以在Workshop的property Editor中設(shè)置page, portlet的屬性.在代碼中可以通過下面的方法設(shè)置或取得page, portlet的屬性.
          try
          {
          PageBackingContext page =
          PageBackingContext.getPageBackingContext(getRequest());
          System.out.println("\n\n\n\n\ntitle=[" + page.getTitle()+"]");
          title=page.getTitle();

          }
          catch(Exception e)
          {
          e.printStackTrace();
          }
          如果把上面的page替換成portlet就可以得到portlet的屬性

          使PAGE折行顯示
          如果一個(gè)portal應(yīng)用的page太多,默認(rèn)只會(huì)顯示為一行,太長(zhǎng).可修改文件framework/skeletons/default/singlelevelmenu.jsp,使他可以折行顯示.例子如下:

          int pageNum=0;
          while (pages.hasNext())
          {
          pageNum++;
          if(pageNum %15 ==0)
          {
          System.out.println("pageNum=" + pageNum);
          out.println("<br><br>");
          }

          在WLP81中實(shí)現(xiàn)文件上傳
          可以通過Page Flow實(shí)現(xiàn)文件上傳. 在JSP中,通過<netui:fileUpload>顯示文件上傳窗口.
          <netui:fileUpload dataSource="{actionForm.file}" size="50" accept="*/*" ></netui:fileUpload>
          在jpf文件中可通過如下方式讀取上傳的文件,并保存到新的目錄下.
          try {
          if(!form.getFile().equals(""))
          {
          InputStream is = form.getFile().getInputStream();
          String fileName = form.getFile().getFileName();
          FileOutputStream os = new FileOutputStream(new File(uploadFolder+fileName));
          byte b[] = new byte[128];
          while(is.read(b)!=-1){
          os.write(b);
          }
          is.close();
          os.close();
          }
          }
          catch(Exception e){
          e.printStackTrace();
          }
          如果有中文問題,可以把該P(yáng)age Flow 放到Iframe中.

          posted on 2005-04-19 15:32 笨笨 閱讀(325) 評(píng)論(0)  編輯  收藏 所屬分類: J2EEALLWeblogic Portal
          主站蜘蛛池模板: 襄樊市| 湘阴县| 化隆| 厦门市| 阿坝县| 泸州市| 康乐县| 临朐县| 池州市| 百色市| 沾化县| 永城市| 临沂市| 自治县| 威远县| 小金县| 方城县| 历史| 马关县| 汝阳县| 博客| 陆河县| 黄浦区| 阜康市| 集安市| 仙游县| 湟中县| 九台市| 崇州市| 安泽县| 卢氏县| 封丘县| 南漳县| 西安市| 五家渠市| 承德市| 齐齐哈尔市| 凭祥市| 蒙阴县| 双鸭山市| 上蔡县|