用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介
2009-11-05 00:00:00 来源:WEB开发网实例化本地 JNDI 上下文。
在此上下文中对 Web 服务进行 JNDI 查找。
清单 2. JNDI 服务查找 Context ic = new InitialContext();
Service service = (Service) ctx.lookup("java:comp/env/service/HelloService");
Web 服务的名称(在本例中为 java:comp/env/service/HelloService )是在客户机应用程序的部署描述符中指定的。JSR 109 建议把服务引用的所有逻辑名组织在 service 子目录中。如果客户机环境上下文是 java:comp/env ,您就可以以下面的代码结束:
service name in context =
client environment context + "service" subcontext + service name.
在本例中,上下文中的服务名为:
java:comp/env/ + service/ + HelloService.
service 子上下文(subcontext) + 服务名(例如 service/HelloService )也称为逻辑上的服务名,是在 Web 服务客户机应用程序的部署描述符中进行声明的。
JNDI 查找返回 JAX-RPC Service Interface。J2EE 容器确保在部署描述符中指定的绑定通用 JAX-RPC Service 的实现。您也可以将该查找返回的对象强制转换成您的 Web 服务的指定接口。这示于 清单3,其中 HelloService 扩展了通用的 JAX-RPC Service 接口。
清单 3. 可供选择的 JNDI 查找 Context ic= new InitialContext();
HelloServiceInterface service =
(HelloServiceInterface) ic.lookup("java:comp/env/service/HelloService");
然后可以使用获得的服务接口(Service Interface)来获取静态存根、动态代理或 DII Call 对象,如下面的“ 服务访问”部分所述。
更多精彩
赞助商链接