2

我有一个应用程序范围的托管 bean,其中包含从数据库读取的列表。每当另一个应用程序对数据库进行更改时,它应该触发 Web 服务来更新托管 bean 中的列表。

我试过了

FacesContext context = FacesContext.getCurrentInstance();
ApplicationBean application= (ApplicationBean) context.getApplication().evaluateExpressionGet(context, "#{applicationBean}", ApplicationBean.class);

上下文变量为空,可能是因为未在 JSF 上下文中调用 Web 服务。

REST 资源类如下所示:

@Path("/application")
public class ApplicationResource {

@PUT
@Path("{id}")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public void updateIdCache(@PathParam("id") String internalid) {
    ApplicationBean application = ???;
    application.update(id);
    return;
}

}

使用的应用服务器是tomcat 6,如何正确完成?

谢谢和最好的问候

4

1 回答 1

0

不要认为 JSF 托管 bean 可以实现您想要的。

虽然 CDI bean 具有此功能。

带有 CDI 的 JAX-WS:

http://weblogs.java.net/blog/jitu/archive/2010/02/19/jax-ws-cdi-java-ee-6-0

CDI实现焊接常用:焊接入门(涵盖tomcat 6) http://docs.jboss.org/weld/reference/1.0.0/en-US/html/gettingstarted.html

顺便说一句,我喜欢使用 CDI,我只使用 tomcat 6/7

于 2012-09-28T17:14:58.640 回答