2

这个问题被讨论了几次,但我无法找到解决我们问题的解决方案。我们有以下 HttpInvoker 服务,它从数据库中获取远程 URL:

@Service("exampleService")
public class ExampleHttpInvoker extends HttpInvokerProxyFactoryBean {

    @Resource
    private DBService service;

    @PostConstruct
    public void init() throws ConfigurationException {

       String url = service.getURL();
       this.setServiceUrl(url);
       this.setServiceInterface(RemoteInterface.class);
       this.setHttpInvokerRequestExecutor(new CommonsHttpInvokerRequestExecutor());
            afterPropertiesSet();

     } 

   }

URL 可以在远程调用之间更改。
如何在运行时替换 serviceUrl?
我们不能使用 Session 或 Request 范围,因为该服务不支持 Web。
任何帮助将不胜感激。

最好的问候,迈克尔

4

1 回答 1

0

我不完全清楚如何DBService根据您的 http 请求获得正确的,所以我想您知道如何做到这一点。因此,您可以执行以下操作:

  1. 编写一个过滤器来获取正确的DBService并将其放在 TLS 上。
  2. DBServiceonExampleHttpInvoker替换为从 TLSDBServiceWrapper获取正确DBService并调用正确方法的(您的类)。
  3. 请求完成后,不要忘记清除过滤器中的 TLS。
于 2012-04-17T06:44:12.667 回答