Преобразование JSP в веб-часть SharePoint
-
06-07-2019 - |
Вопрос
У нас есть большое количество сервлетов / портлетов на основе Java, работающих на портале BEA, которые мы хотим преобразовать в веб-части SharePoint 2007. Многие из портлетов используют пользовательские настройки, но реализации разделены между настройками, которые обрабатываются портлетом напрямую и хранятся в отдельной базе данных от портала. Другие используют BEA WebLogic API для пользовательских настроек.
Три вопроса:
<Ол>Решение 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 поверх. р>
Я бы сказал, что это большой проект, который требует тщательного планирования для достижения успеха.
Надеюсь, это поможет.