我有一个应用程序范围内的托管 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,请问如何正确完成?
谢谢和最好的问候
最佳答案
不要认为使用 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
关于java - 从 RESTful Web 服务访问 JSF2 托管 Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641614/