我有一个应用程序范围的托管bean,它包含一个从数据库读取的列表。每当另一个应用程序对数据库进行更改时,它都应该触发web服务来更新托管bean中的列表。
我试过了
FacesContext context = FacesContext.getCurrentInstance();
ApplicationBean application= (ApplicationBean) context.getApplication().evaluateExpressionGet(context, "#{applicationBean}", ApplicationBean.class);上下文变量为空,可能是因为web服务未在JSF上下文中调用。
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。如何正确完成?
谢谢&致以最良好的问候
发布于 2012-09-29 01:14:59
不要认为使用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实现weld是常用的: weld入门(涵盖Tomcat6) http://docs.jboss.org/weld/reference/1.0.0/en-US/html/gettingstarted.html
顺便说一句,我喜欢使用CDI,而且我只使用Tomcat6/7
https://stackoverflow.com/questions/12641614
复制相似问题