我们在旧版本的应用服务器上运行了一个Web服务。这个旧的应用程序服务器正在JAVA EE 1.4上运行。它的客户端位于同一版本的应用服务器上运行的另一台服务器上。
已开始升级我们的应用程序服务器。新版本现在将在Java EE 6上运行。问题是,客户端仍然可以在旧版本上运行。它是否仍然能够访问现在将在Java EE 6上运行的Web服务?
如果答案是#2,我在下面有一个跟进问题
要重新解释这个问题,如果您有JAX-WS Web服务,那么如何生成JAX-WS客户端以及如何生成JAX-RPC客户端?我做了一些初步研究,他们似乎以同样的方式完成,我不确定是否正确。我很困惑。
感谢
答案 0 :(得分:0)
由于您提到了J2EE 1.4,我猜测Web服务基于JAX-RPC 1.x标准。由于基于Java EE 6的Web服务基于JAX-WS,我建议使用wsimport命令通过使用新服务中的WSDL生成存根类来生成客户端存根。
如果你想深入挖掘,你应该总是参考JAX-WS规范文档here(阅读第4章 - 客户端API)
答案 1 :(得分:0)
服务使用者(客户端)和服务提供者技术是独立的。您可以(大多数情况下)拥有JavaEE6 / JAX-WS Web服务提供程序,但在技术上仍然使用JAX-RPC客户端(就此而言,客户端甚至可能无法用Java实现!)。如果您的服务提供商使用JAX-RPC无法处理的SOAP 1.2构造,那么唯一的技术障碍可能是,但我怀疑如果您严格迁移/升级提供者应用程序则不会出现这种情况。
多个应用程序服务器仍然支持JAX-RPC,即使它现在(JavaEE 5& 6)可选,以实现兼容的应用程序服务器。
但我个人建议您在升级这些应用程序/应用程序服务器时将客户端更新为JAX-WS。我认为他们应该与升级的Web服务提供者一起工作而不做任何改变 - 只要服务提供者WSDL在升级该应用程序时没有改变(尽管如果重新生成的WSDL中存在细微差别,您可能必须重新生成它们) - JAX-RPC中的编组/解组技术非常脆弱。
-SH