Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Spring消息上下文_Spring_Get_Message - Fatal编程技术网

获取Spring消息上下文

获取Spring消息上下文,spring,get,message,Spring,Get,Message,如何从Java类中获取SpringMessageContext 我应该使用一些@Resource或@Autowire将上下文变量注入到类中,或者,例如,使用一些全局上下文SpringContext或其他一些来获取消息上下文 什么是方法?我先读一下 @Resource WebServiceContext wsContext; @WebMethod public String echoHello(String msg) { MessageContext context = wsContex

如何从Java类中获取Spring
MessageContext

我应该使用一些
@Resource
@Autowire
上下文
变量注入到类中,或者,例如,使用一些全局上下文SpringContext或其他一些来获取
消息上下文


什么是方法?

我先读一下

@Resource WebServiceContext wsContext;

@WebMethod public String echoHello(String msg) {
    MessageContext context = wsContext.getMessageContext();

    ...
}

这就是如何在服务器端完成的。在客户端,请求和响应上下文只是从服务存根中检索的简单映射(即使您没有明确请求,也会实现);他们不需要添加的范围管理。

如果我理解正确,您将SpringWebflow与JSF一起使用,并且需要从JSF中访问Webflow

如果是这样,您可以始终使用(注意使用Webflow中的一个,因为Spring MVC有自己的!),但它使用
ThreadLocal
,因此它不太优雅:

MessageContext messageContext = 
    RequestContextHolder.getRequestContext().getMessageContext();

您不能使用标准DI,因为
MessageContext
是由
FlowExecutor
在每次流启动或恢复时根据每个请求创建的,在flow.xml中使用
MessageSource
添加如下消息上下文:

   <transition on="search">
     <evaluate expression="service.search(service.id, messageContext)" result="scope" />
   </transition>`

你在用SWS吗?如果有,哪个版本?您想在哪里访问MessageContext,客户机/服务器?我需要从带有ActioListener参数的方法中的JavaBean中获取MessageContext,它是从.xhtml(即jsf页面)调用的。我使用Spring web-flow。看起来,我需要的是,一试用就给你反馈我认为@sergionni是另一个意思。在新版本中,RequestContextHolder.getRequestContext()不再可用。
public List search(String serviceId, MessageContext messageContext) {       
  ...       
  messageContext.addMessage(
  ...
}