首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Spring 的 Web 服务模拟器框架解决方案(7)技术实现步骤4

使用 Spring 的 Web 服务模拟器框架解决方案(7)技术实现步骤4

客户端服务层(模拟器)模拟器客户端服务层包含与模拟器 Web 服务交互所需的 Web 服务客户端和实现类。实现类根据从相关 JSP 中收集的数据构造一个特定于模拟器的 SOAP 请求,并将信息发送到已映射的模拟器 Web 服务上,该服务由作为已映射的 WebSphere Environment Provider 值检索的端点确定。响应对象将由 RPC Adapter servlet 转换成 JSON 对象,并回送给调用 JSP 中的用户。        
在清单 3 中,equipment.setSim(equipId) 将来自输入值的请求对象填充到 JSP 中。endPoint 值被定义为 WebSphere Environment Provider 值。
清单 3. 传递到模拟器服务的请求对象的例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public ESIGetAccountsByEquipmentResponseType getAccountByEquipment (
    HttpServletRequest request, String endPoint, String equipId) {

String method = "getAccountsByEquipment";
ESIGetAccountsByEquipmentResponseType rc = new ESIGetAccountsByEquipmentResponseType();
ESIGetAccountsByEquipmentResponseType req = new ESIGetAccountsByEquipmentRequestType();
Equipment equipment = new Equipment();
equipment.setSim(equipId);
req.setEquipment(equipment);

try {

    InitialContext jndiContext = new InitialContext();
    AccountSearch service = (AccountSearch) jndiContext
        .lookup("java:comp/env/service/AccountSearch");
         
    AccountSearchPort port = (AccountSearchPort)service.getPort(AccountSearchPort.class);
    ((Stub)port)._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, endPoint);

    rc = port.getAccountsByEquipment(req);
     
} catch (java.lang.Exception e) {
    String[] variables = new String[] { e.getLocalizedMessage() };
    java.text.MessageFormat form = new java.text.MessageFormat(
        "Remote system error occurred, message is [{0}]");
    String formattedText = form.format(variables);
    logger.logp(WsLevel.SEVERE, CLASS_NAME, method, formattedText, e);
    return rc;
}
logger.exiting(CLASS_NAME, method, rc);
return rc;

}

返回列表