gpt4 book ai didi

java - 将默认应用程序上下文匿名传递到远程 EJB

转载 作者:行者123 更新时间:2023-11-30 03:47:33 25 4
gpt4 key购买 nike

我有一个复杂的场景,我不知道如何处理:

我的 ejbs 在远程服务器上运行。

我的网络应用程序在不同的服务器上运行。

我有一个 ApplicationContext,它会根据域、语言、国家/地区等而有所不同。

我希望将此应用程序上下文匿名传递到远程 EJB,这样开发人员就不必使用 ApplicationContext 作为参数来调用所有后端请求。

这是场景,假设我有一个远程无状态 EJB:

@Stateless
public class MyStateless implements MyStatelessRemote{

//The application context that needs to be supplied form the front-end
@Inject //probably define a producer method to always supply a new one.
private ApplicationContext applicationContext;

public void doCheckSomething(final MySomethingData data){}

}

在前端:

@SessionScoped
@Named
public class MyController implements Serializable{

@EJB
private MyStatelessRemote statelessRemote
//The current application/session context to be passed to the Stateless ejb on every invocation.
@Inject
private ApplicationContext executionContext;

public void doSomeOrderOrSomethingSimilar(){
//At this point, the current application context needs to be supplied to the remote EJB
//Which it may use to check on order validity based on configurations such as country
//language etc.
statelessRemote.doCheckSomething(mySomething);
}
}

有超过 20 个 EJBS,每个 EJBS 平均有 8 到 10 个方法,并考虑到几乎每个 ejb 可能需要知道调用者的执行上下文的可能性,是否可以在调用任何方法期间通过配置或其他方式解析当前执行上下文到 ejb?

  1. 我正在将 Wildfly8 与远程 ejb3.1、CDI1.1、JSF2.2 结合使用
  2. 当用户更改他/她的语言时,应用程序上下文可能会发生变化

编辑:

我正在寻找类似于 Web 服务入站和出站拦截器的东西。

最佳答案

如果不将参数传递到远程 EJB,则使用 CDI/EJB 不可能实现您所描述的内容。

关于java - 将默认应用程序上下文匿名传递到远程 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com