2012-02-25 3 views
0

Я использую codeigniter в качестве рамки для своего сайта. Тем не менее, мне нужно интегрировать контент из приложения, созданного на отдельном сервере Tomcat.Интеграция Codeigniter и Tomcat

Есть ли способ, которым я могу обслуживать элементы навигации на основе шаблонов, изображения баннеров и приложения codeigniter в верхней части моих областей содержимого, а тело доставляется через Tomcat в более низкие области содержимого сайта? Я хорошо знаю, что можно просматривать фрагмент страницы через представление, но может ли контент в представлении поступать из моего приложения Tomcat?

ответ

1

Один из возможных подходов заключается в том, чтобы ваш контроллер CodeIgniter возвращал содержимое за кулисами через file_get_contents или, возможно, phpcurl.

Отрывок внутри контроллера CI:

//-- snippet -- 
... other controller boilerplate ... 
$data = array(); 
$tomcat_content = @file_get_contents('http://mytomcat.server.url/page.jsp'); 
$data['tomcat_content'] = $tomcat_content; 
$this->load->view('relevant_view', $data); 
//-- snippet -- 

Отрывок из relevant_view.php:

<!-- snippet --> 
<div class="tomcat-content"> 
    <?php echo (empty($tomcat_content))? 'Missing Content' : $tomcat_content;?> 
</div> 
<!-- snippet --> 

Некоторые предостережений рассмотреть следующие вопросы:

(1) Есть ли безопасность на сервере приложений Tomcat исходные страницы (Basic Auth или явная страница входа)?

(2) Любые прокси или подобные проблемы, связанные с сервером приложений Tomcat?

(3) Является ли установленный PHP для извлечения из внешних источников и/или скомпилирован ли возможности cURL?

(4) Задержка со стороны Tomcat будет влиять на сторону CodeIgniter. Некоторые из них могут быть смягчены кэшированием выходного класса из CodeIgniter, если исходный контент относительно статичен.

Если имеется большое количество страниц, код поиска внешнего контента может быть вычислен в специальную библиотеку или помощник CodeIgniter, а затем загружен.

+0

Ваш метод работал до определенной точки. Содержимое - минус изображения - было видно, но форматирование было отключено, поэтому мне придется экспериментировать с ним. Для администрирования приложения Tomcat предусмотрена защита Basic Auth, но для него нет необходимости публично обращаться. Кроме того, я изначально был вынужден использовать IIS ARR для доступа к содержимому tomcat при использовании правила перезаписи, чтобы исключить отображение порта 8080 из URL. Я думаю, что мне, возможно, придется прибегнуть к этому методу, чтобы просто запустить его. – superbits

+0

Это, по сути, решение для удаления экрана, и сложность обычно заключается в последующей обработке исходного содержимого, чтобы он соответствовал ограничениям форматирования целевой системы. Неизменно существует некоторый тип фильтрации, требуемый почти в каждом случае. Есть ли вероятность получить необработанные данные из системы Tomcat без разметки? – JTP

Смежные вопросы