在我正在处理的一个项目中,我们有几个 servlet,它们都使用一个通用 API(由我们开发)来访问数据库等。这个想法是逐渐从共享的 jar 文件中取出这个功能,并将它放在一个 JAX-WS Web 服务中以供外部应用程序使用。但是,当我们使用 spring 初始化我们的 servlet 时,我现在遇到了困难,并且在 jar 中定义的接口和 Web 服务生成的类之间存在类型不匹配,即使它们具有相同的包和名称。
经过进一步检查,似乎发生了一些事情,我可以看到阻碍:
- 从 Web 服务生成的源包含它自己的接口版本
- 生成的实现源从未实际实现接口,它只是根据请求返回接口类型的对象
- 这种方法不是静态的,但我可以想象会产生问题
- 我确实记得读过 JAX-B 实际上不能处理接口,但是我在创建方法时发现了这一点,因此可能不适用于本节
考虑到这一点,我似乎需要通过调用生成的 Web 服务方法在 spring 中构造一个 bean,但我不知道如何。任何其他建议都非常受欢迎,因为删除接口对于测试/可扩展性是不可取的,我能想到的唯一其他解决方案是在构造函数而不是 spring 中分配这个类。
提前致谢!