如何从JSF调用Web服务操作

时间:2010-07-20 05:08:42

标签: web-services jsf

我有一个名为getJobCostToDate(String jobnum)的Web服务操作,当它传递一个工作号时,它将返回到目前为止的工作成本。

我正在显示的页面连续显示作业数据,到目前为止的作业成本是表格数据的一列。

我发现我应该能够在后端使用托管bean来调用Web服务操作,但是我对JSF或编写Web服务代理客户端不太了解我应该如何做到这一点。

我希望能够在后端bean中调用一个操作并传递该行的作业号以获得显示的成本,但我已经读过JSF不能那样工作。

我查看了书店里的一些JSF书籍,他们没有任何关于如何使用JSF bean调用Web服务操作的好例子。我也很难在谷歌搜索任何好的文章或例子。

任何人都可以推荐任何涵盖此书的好书或文章吗?或者任何人都可以指出我正确的方向?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

有些供应商有JSF工具可以从WSDL生成bean,实际上感觉就像你只是将WSDL拖到页面上。我使用具有此功能的基于IBM Eclipse的产品,但免费的Eclipse工具可能具备您所需的功能。

在最糟糕的情况下,自己不应该这么做:

1)。从WSDL生成Java客户端,Eclipse应该处理它。

2)。如果生成的代码是Bean然后很好,那么现在可以使用JSF。如果没有,那就写一个简单的Java Bean

public class MyServiceBean {

      private ServiceClient myServiceCaller;
      /* plus variables to hold service result */

      public MyServiceBean() { /* init code */ }

      private invokeService() { /* invoke service, save result */ }

      public getSomeValue() {
            invokeService();
            /* return value */
      }
      /* other getters */
}

现在你有了可以像其他任何东西一样使用的bean。同样,你可以在Backing Bean中调用服务 - 我认为没有理由反对在那里进行服务调用。