| WebService????2011-12-26 16:55:24by ??? Web Service是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。在Aurora框架中可以方便的提供Web Service服务及调用由他人发布的Web Service。
我们提供一个svc,此svc把请求的数据插入到一个数据库表中。
<?xml version="1.0" encoding="UTF-8"?> <!-- $Author: linjinxiao $Date: 2011-11-9 上午10:42:34 $Revision: 1.0 $Purpose: --> <bm:model xmlns:bm="http://www.aurora-framework.org/schema/bm" alias="t1" baseTable="ACCOUNT_TEST"> <bm:fields> <bm:field name="ACCOUNT_ID" databaseType="NUMBER" datatype="java.lang.Long" physicalName="ACCOUNT_ID" prompt="ACOUNT_TEST.ACCOUNT_ID"/> <bm:field name="ACCOUNT_OTHER_CODE" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ACCOUNT_OTHER_CODE" prompt="ACOUNT_TEST.ACCOUNT_OTHER_CODE"/> </bm:fields> </bm:model>
<?xml version="1.0" encoding="UTF-8"?> <a:service xmlns:a="http://www.aurora-framework.org/application"> <a:init-procedure> <a:model-insert model="fnd.account_test"/> </a:init-procedure> <a:service-output output="/parameter"/> </a:service>
public class LowLevelClient {
public static void main(String[] args) throws AxisFault {
ServiceClient client = new ServiceClient();
Options options = new Options();
options.setTo(new EndpointReference(
"http://127.0.0.1:8080/newhec/modules/sys/ws_test.svc"));//修正为实际工程的URL
client.setOptions(options);
OMElement request = makeRequest();
OMElement response = client.sendReceive(request);
System.out.println("ok:"+response.toString());
}
private static OMElement makeRequest() {
OMFactory factory = OMAbstractFactory.getOMFactory();
OMElement request = factory.createOMElement(new QName(
"", "parameter"));
request.addAttribute("ACCOUNT_ID", "123", null);
request.addAttribute("ACCOUNT_OTHER_CODE", "test", null);
return request;
}
这个例子处理有头行结构的例子。譬如,调用方发送过来的请求是如下格式 <requestHead seqNo="1"/> <requestBody> <records> <record ACCOUNT_ID="22" ACCOUNT_OTHER_CODE="test"/> <record ACCOUNT_ID="33" ACCOUNT_OTHER_CODE="test2"/> </records> </requestBody> 返回的结构要求是如下格式 <responseHead xmlns="http://aurora.org" seqNo="1" /> <requestBody responsedate="3008900"> <records> <record ACCOUNT_ID="22" ACCOUNT_OTHER_CODE="test" REQUEST_RESULT="successful" /> <record ACCOUNT_ID="33" ACCOUNT_OTHER_CODE="test2" REQUEST_RESULT="successful" /> </records> </requestBody>
create or replace package ACCOUNT_TEST_PKG is
procedure insert_account_test(p_account_id number,
p_account_other_code varchar2,
p_request_result out varchar2);
end ACCOUNT_TEST_PKG;
create or replace package body "ACCOUNT_TEST_PKG" is
procedure insert_account_test(p_account_id number,
p_account_other_code varchar2,
p_request_result out varchar2) is
begin
insert into account_test
(account_id, account_other_code)
values
(p_account_id, p_account_other_code);
p_request_result := 'successful';
end;
end ACCOUNT_TEST_PKG;
/
<bm:operations>
<bm:operation name="insert">
<bm:update-sql><
Comments
0 Responses to the article暂时没有评论。