2009-10-27 37 views
3

我們在BEA門戶中運行大量基於Java的servlet/portlet,我們希望將其轉換爲SharePoint 2007 webparts。許多portlet使用用戶首選項,但實現在由portlet直接處理的首選項之間分開並存儲在與門戶的單獨數據庫中。其他人正在使用BEA WebLogic API進行用戶首選項。將JSP轉換爲SharePoint Web部件

三個問題:

  1. 有沒有人得到一個的Java Servlet/JSP(對JRE 1.4.2和Tomcat上運行4.1編譯),以作爲SharePoint 2007的WebPart運行?
  2. 一般來說它的努力程度有多大(例如,以天/周/月爲單位)?
  3. 至少就用戶偏好而言,將portlet重寫爲原生Web部件會更容易嗎?

回答

0

以下是我爲單個portlet,股票報價面板所做的工作。

我們有一個顯示股票報價的小工具。我們在Tickertech有一個帳戶供他們爲我們提供報價信息。有用戶喜好,允許人們將小工具添加到私人頁面,然後選擇他們感興趣的股票作爲個人。您也可以選擇要顯示的列。這是通過JavaScript完成的。選定的股票代碼與令牌一起發送,該令牌將請求標識爲來自有效客戶。

最簡單的方法是使用Web內容控件並粘貼到JavaScript中。這是有效的,但不會讓用戶更改涉及Tickertech的股票代碼或其他偏好。

下一步是創建一個自定義Web部件。我們正在使用Visual Studio的WSPBuilder插件。該項目幫助我們的諮詢公司對我們進行了推薦,我很高興他們這樣做,將整合週期縮短到可以接受的水平。

在webpart中,我們有一個包含腳本的屬性。

public class MarketSummaryWP : Microsoft.SharePoint.WebPartPages.WebPart 
{  
    string m_scriptBlockPre = "<script language='javascript'> \n"+ // the beginning of the JavaScipt block 

在的CreateChildControls()重寫,我剛添加它作爲一個字面。

this.Controls.Add(new LiteralControl(this.Script)); 

接下來我改劇本是私有的,創造另一個屬性持有股票符號列表。注意到Script屬性在getter中進行了連接。

//Script Property 
    [WebBrowsable(false), 
    WebDisplayName("Script"), 
    WebDescription("The JavaScript to insert in the page.")] 
    public string Script 
    { 
    get { return m_scriptBlockPre + m_stockSymbolsList + m_scriptBlockPost; } 
    //set { ; } 
    } 

    //Stock Symbol list Property 
    [Personalizable(PersonalizationScope.User), WebBrowsable(true), 
    WebDisplayName("Stock Symbols"), 
    WebDescription("The stock symbols to retrieve quotes for, seperated by commas.")] 
    public string StockSymbols 
    { 
     get { return m_stockSymbolsList; } 
     set { m_stockSymbolsList = value; } 
    } 


    string m_stockSymbolsList = "GE,CAT,$DJI,AMR,JNJ,"; 

    string m_scriptBlockPost = " *other JavaScript code* </script> \n"+ 

這讓我可以添加到任何頁面的webpart,因爲它是在webpart畫廊。要添加使用靜態html webpart構建的webpart的副本,您需要從現有的實例中獲取JavaScipt塊,可能使用「view source」,導航到目標頁面,添加靜態HTML webpart的新實例,並修改它以包含JavaScipt塊;每一次。這樣用戶只需要從一個webparts列表中選擇它,並且他們可以定製股票報價偏好。

1

我們有一個稍微類似的項目,我們從BEA門戶轉換到Sharepoint。

不同之處在於我們沒有任何java servlet或JSP頁面作爲webparts/portlet,而是我們系統上的所有代碼都是.net portlet(現在是webparts)。

Java servlet位於彈出窗口中,它使用超鏈接從Sharepoint鏈接。

所以我不能給你答案1.因爲我們從來沒有這樣做過。
但是,要將BEA門戶portlet轉換爲SharePoint webpart可能是一個重要的練習,因爲您需要以完全不同的方式構建它們。

就努力而言,我們在1年內將大約100個小工具遷移到了Web部件/應用程序,其中包含1位全職開發人員和1位SharePoint基礎設施/配置人員。

對於3 ...它取決於您的portlet的複雜程度。 如果你想把它們保持爲portlet的/ webparts,那麼除非你使用像頁面查看器webpart這樣的黑客,否則需要完全重寫......但是那時你並沒有真正的遷移,你只需要在SharePoint上封裝你現有的系統。

我會說這是一個大型項目,需要認真規劃才能成功。
我希望這可以幫助。

+0

@Bravax,您使用彈出式窗口的解決方案聽起來就像我爲#1想的那樣。即使它只是將現有的SharePoint系統封裝在頂層,它也會試圖將所有portlet重寫爲webparts。 –