使用 Spring 的 Web 服务模拟器框架解决方案(7)技术实现步骤4
- UID
- 1066743
|
使用 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;
}
|
|
|
|
|
|
|