2012-02-25 78 views
0

我使用codeigniter作为我的网站框架。但是,我需要集成来自构建在独立Tomcat服务器上的应用程序的内容。Codeigniter和Tomcat集成

有没有一种方法,我可以继续投放了导航,横幅图片和笨的应用程序的基于模板的元素在我的内容区域的顶部,而机身经过Tomcat的输送到网站的含量较低的领域?我很清楚,可以通过视图提供页面片段,但视图中的内容是否可以来自我的Tomcat应用程序?

回答

1

一种可能的方法是让您的CodeIgniter控制器通过file_get_contents或phpcurl来检索幕后内容。

片段CI控制器内:

从relevant_view.php
//-- 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 -- 

段:

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

一些注意事项需要考虑:

(1)是否有Tomcat应用服务器上的任何安全源页面(基本身份验证或显式登录页面)?

(2)访问Tomcat应用程序服务器的任何代理或类似问题? (3)PHP是否设置为从外部来源检索和/或编译为cURL功能?

(4)来自Tomcat端的延迟将影响CodeIgniter端。如果源内容相对静态,则可以通过CodeIgniter的输出类缓存缓解其中的一些问题。

如果页面数量很多,则可以将外部内容检索代码分解到自定义的CodeIgniter库或帮助程序中,然后加载。

+0

你的方法可以达到某个程度。内容 - 减去图像 - 是可见的,但格式已关闭,因此我将不得不对其进行试验。 Tomcat应用程序的管理有基本身份验证安全性,但没有必要面向公众。此外,我最初被迫使用IIS ARR访问tomcat内容,同时使用重写规则消除端口8080不显示在URL中。我认为在此期间我可能不得不采用这种方法,只是为了让这个方法正常运行。 – superbits 2012-02-28 20:39:48

+0

它本质上是一种屏幕抓取类型的解决方案,其复杂性通常在于原始内容的后处理,以使其符合目标系统的格式化约束。几乎在每种情况下总是需要某种类型的过滤。没有所有标记的情况下从Tomcat系统获取原始数据的任何机会? – JTP 2012-02-29 04:56:18