Вопрос

У нас есть большое количество сервлетов / портлетов на основе Java, работающих на портале BEA, которые мы хотим преобразовать в веб-части SharePoint 2007. Многие из портлетов используют пользовательские настройки, но реализации разделены между настройками, которые обрабатываются портлетом напрямую и хранятся в отдельной базе данных от портала. Другие используют BEA WebLogic API для пользовательских настроек.

Три вопроса:

<Ол>
  • Кто-нибудь получил Java-сервлет / JSP (скомпилированный с JRE 1.4.2 и работающий на Tomcat 4.1) для работы в качестве веб-части SharePoint 2007?
  • Сколько усилий было в целом (например, измерялось в днях / неделях / месяцах)?
  • Было бы проще переписать портлет как нативные веб-части, по крайней мере, если это касается пользовательских настроек?
  • Это было полезно?

    Решение 2

    Вот что я сделал для отдельного портлета - панели котировок акций.

    У нас есть гаджет, который отображает котировки акций. У нас есть аккаунт в Tickertech, чтобы они могли предоставить нам информацию о расценках. Существуют пользовательские настройки, которые позволяют пользователям добавлять гаджет на личную страницу, а затем выбирать интересующие их акции как отдельных лиц. Вы также можете выбрать столбцы для отображения. Это достигается с помощью JavaScript. Выбранные символы акций отправляются вместе с токеном, который идентифицирует запрос как поступивший от действительного клиента.

    Простейшим подходом было использование элемента управления веб-контентом и просто вставка в JavaScript. Это работает, но пользователь не может изменить биржевые символы или другие настройки, связанные с Tickertech.

    Следующим шагом было создание пользовательской веб-части. Мы используем дополнение WSPBuilder для Visual Studio. Консалтинговая фирма, которая помогает нам с проектом, рекомендовала его, и я очень рад, что он сделал это, сокращает цикл интеграции до приемлемого уровня.

    В веб-части есть свойство, содержащее скрипт.

    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 выполняет конкатенацию внутри геттера.

        //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"+
    

    Это дает мне веб-часть, которую можно добавить на любую страницу, потому что она находится в галерее веб-частей. Чтобы добавить копию веб-части, созданной с использованием статической веб-части html, вам нужно получить блок JavaScipt из существующего экземпляра, возможно, с помощью «просмотра источника», перейти на целевую страницу, добавить новый экземпляр статической веб-части HTML, и измените его, чтобы включить блок JavaScipt; каждый раз. Таким образом, пользователям нужно только выбрать его из списка веб-частей, и они могут иметь индивидуальные настройки котировок акций.

    Другие советы

    У нас есть немного похожий проект, где мы конвертируем портал BEA в Sharepoint.

    Разница в том, что у нас нет страниц Java-сервлетов или JSP-страниц в качестве веб-частей / портлетов, вместо этого весь код в нашей системе - это портлеты .net (а теперь и веб-части).

    Java-сервлеты находятся во всплывающих окнах, которые связаны с Sharepoint с помощью гиперссылок.

    Поэтому я не могу дать вам ответ на вопрос 1. Поскольку мы никогда этого не делали.
    Однако преобразование формы портлета портала BEA в веб-часть SharePoint может оказаться значительным упражнением, поскольку их необходимо создавать совершенно другим способом.

    С точки зрения усилий, мы переместили примерно 100 гаджетов в веб-части / приложения за 1 год, с 1 разработчиком на полный рабочий день и 1 инфраструктурой / конфигуратором sharepoint.

    И для 3 ... это зависит от сложности вашего портлета. Если вы хотите сохранить их в качестве портлетов / веб-частей, тогда потребуется полная перезапись, если только вы не используете хак, такой как веб-часть средства просмотра страниц ... но тогда вы не мигрируете, а просто инкапсулируете свою существующую систему с SharePoint поверх.

    Я бы сказал, что это большой проект, который требует тщательного планирования для достижения успеха.
    Надеюсь, это поможет.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top