调用驻留在其他应用程序中的托管bean

时间:2016-03-16 12:15:45

标签: java xpages managed-bean xpages-ssjs

在XPage应用程序中,我需要显示驻留在另一个XPage应用程序中的信息。

我习惯使用Repeat控件并使用JavaScript来调用托管bean来进行数据绑定。

示例:

<xp:repeat value="{#javascript:ArticleController.loadArticles();};> 

我想将代码和逻辑保留在exisitng应用程序中,但在第二个应用程序中调用并显示结果。这可能吗?我应该怎么做?

2 个答案:

答案 0 :(得分:1)

试试这个:

String text = "{\"phonetype\":\"N95\",\"cat\":\"WP\"}";        
try {
    response.getWriter().write(text);
    response.getWriter().close();
    return;
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return;
}

您可以使用插件在浏览器中查看json,例如适用于Firefox的JSONView

答案 1 :(得分:0)

每个XPage都在自己的JVM中运行,因此应用程序B中的托管bean无法直接与应用程序A进行交互。使用扩展库中的JSON RPC服务,您将能够从应用程序B调用XAgent(&# 39; s实际上与Web服务相同,但返回JSON而不是XML)。

重新考虑拆分应用程序逻辑可能是值得的。我以前做过这个,但我现在的首选是将所有Web应用程序逻辑保存在同一个数据库中,因为每个都是一个单独的JVM:

  • XPages应用程序的初始性能损失
  • 每个都有不同的范围,因此无法共享applicationScope,sessionScope等
  • 您不仅可以共享托管bean,还可以共享实用程序代码
  • 它是Bluemix的架构方法,保持数据和应用程序的分离
  • 您可以通过阻止对NSF本身的URL访问来进一步限制对数据的访问