WEB开发网
开发学院数据库DB2 DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用... 阅读

DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用程序中集成来自不同数据源的数据

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 清单 7. 发送到应用服务器的搜索旅馆消息varmsg='<requestcmd="hotelrates">'+req+'</request>';varxmlhttpObj=newXMLHttpRequest();xml


清单 7. 发送到应用服务器的搜索旅馆消息
var msg='<request cmd="hotelrates">'+req+'</request>'; 
var xmlhttpObj= new XMLHttpRequest(); 
xmlhttpObj.open('POST', servletpath, true); 
xmlhttpObj.onreadystatechange = function() { getRatescallback(xmlhttpObj); }; 
xmlhttpObj.setRequestHeader('content-type', 'text/xml'); 
xmlhttpObj.send(msg); 

应用服务器创建一个 SOAP 调用,调用 article4 数据库中的 getHotelRates 存储过程。这个数据库在部门内部防火墙的后面运行,位置是 http://localhost:8080/article4。从客户机接收的 OTA 搜索旅馆请求(msg)作为参数传递给这个存储过程。

注意:SOAP 消息的 SOAPAction 属性设置为数据库名。


清单 8. 应用服务器对 DB2 getHotelRates 存储过程执行一个 SOAP 调用
String body="<db:getHotelRates xmlns:db='http://ibm.com/db2/soap'>"+ 
"<db:arg>"+msg+"</db:arg></db:getHotelRates>"; 
return sendURLMessage("http://localhost:8080/article4/db2soapdriver", 
body,"http://ibm.com/db2/soap#article4"); 

尽管有用来创建 SOAP 消息的 API,但是本文只使用基本的 URL 调用代码,以此说明 SOAP 调用仅仅是一种特殊的 HTTP POST 调用,其消息体符合一个标准化的 XML 模式。

注意:SOAPAction 设置为目标数据库名。


清单 9. 应用服务器对 DB2 getHotelRates 存储过程执行一个 SOAP 调用
URL u = new URL(url); 
URLConnection uc = u.openConnection(); 
HttpURLConnection connection = (HttpURLConnection) uc; 
connection.setDoOutput(true); 
connection.setDoInput(true); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("SOAPAction", database_name); 
OutputStream out = connection.getOutputStream(); 
Writer wout = new OutputStreamWriter(out); 
 wout.write("<?xml version='1.0'?>\r\n"); 
> 
wout.write("xmlns:SOAP-ENV="); 
wout.write("'http://schemas.xmlsoap.org/soap/envelope/' "); 
wout.write("xmlns:SOAP-ENC="); 
wout.write("'http://schemas.xmlsoap.org/soap/encoding/' " ); 
wout.write("SOAP-ENV:encodingStyle="); 
wout.write("'http://schemas.xmlsoap.org/soap/encoding/' "); 
wout.write("xmlns:xsi="); 
wout.write("'http://www.w3.org/2001/XMLSchema-instance'> "); 
wout.write(" <SOAP-ENV:Body>"); 
wout.write(msg); 
wout.write(" </SOAP-ENV:Body>"); 
 wout.write("</SOAP-ENV:Envelope>\r\n"); 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB XML 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接