`
C_LIFE
  • 浏览: 35266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SOA Suite 11g 开发指南之十三:使用SDO 访问与操作数据

    博客分类:
  • SOA
阅读更多
声明:该博文来自热爱JAVA,热爱生活。原文地址http://maping930883.blogspot.com/

本实验的内容如下:
(1)在SOA中使用SDO(Service Data Object)访问与操作数据库中的数据。
(2)使用ADF BC创建符合SDO标准的服务:访问数据与更新数据。

重要步骤说明:

1. 创建Customers表
sqlplus soademo/soademo @create_customers_table.sql

CREATE TABLE CUSTOMERS
(
CUSTOMER_ID VARCHAR2(10) NOT NULL PRIMARY KEY,
CUSTOMER_NAME VARCHAR2(255) NOT NULL,
LAST_ORDER_NUMBER VARCHAR2(4000),
LAST_ORDER_AMOUNT NUMBER(10,2)
);

INSERT INTO CUSTOMERS VALUES ('1111', 'Test Customer', NULL, NULL);

COMMIT;

2. 创建CustomerSDO Project 时,选择ADF Business Components。



3. 在AM中创建Service Interface时,选择所有Basic Operations。



4. 修改CustomerSDOService Configuration的Datasource为jdbc/soademoDatabase。



5. 设置应用默认的Configuration为CustomerSDOService。



6. 修改Java EE Application名称。



7. 创建Deployment Profile,选择类型:Business Components Service Interface。



8. 修改EAR 名称,Enterprise Application Name。



9. 创建WebService Reference,WSDL地址来自于刚刚发布的CustomerSDOService。



10. customer-app应用的访问URL:http://localhost:7001/customer-app/CustomerSDOService。
在这里可以测试,也可以找到WSDL地址。



11. 创建Entity Variable,其类型为customersViewSDO。



12. 设置partner link 为CustomerSDOService。



13. 将刚创建的Entity Variable中的CustomerId与Input变量中CustomerId做关联绑定。
绑定后,当进入ApproveLargeOrder后,自动会根据传入的CustomerId,CustomerInfoEV自动获取Customer信息。
并且,该记录就成为当前记录。任何对该Entity Variable的改动,都将反映到数据库表中,因为Entity Variable与CustomerSDOService已经绑定了。



14. 把Entity Variable变量中的Customer Name 赋值给Input变量中的Customer Id。



15. 把Output变量中的一些值赋值给Entity Variable变量中的对应值。
修改后的值,将会修改数据库,因为Entity Variable与CustomerSDOService已经绑定了。



16. 测试。
如果顺利的话,应该能看到传入的消息中,Customer Id的值是Customer Name的值。
并且,查看数据库,会发现数据已经被更改了。
测试数据如下:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/ns/order">
<ns1:PurchaseOrder>
<ns1:CustID>1111</ns1:CustID>
<ns1:ID>2222</ns1:ID>
<ns1:productName>iPod shuffle</ns1:productName>
<ns1:itemType>Electronics</ns1:itemType>
<ns1:price>145</ns1:price>
<ns1:quantity>30</ns1:quantity>
<ns1:status>Initial</ns1:status>
<ns1:ccType>Mastercard</ns1:ccType>
<ns1:ccNumber>1234-1234-1234-1234</ns1:ccNumber>
</ns1:PurchaseOrder>
</soap:Body>
</soap:Envelope>





  • 大小: 78.6 KB
  • 大小: 108 KB
  • 大小: 72.9 KB
  • 大小: 34.2 KB
  • 大小: 87.6 KB
  • 大小: 74.6 KB
  • 大小: 69.5 KB
  • 大小: 85.4 KB
  • 大小: 69.3 KB
  • 大小: 91 KB
  • 大小: 70.8 KB
  • 大小: 77.7 KB
  • 大小: 82.1 KB
  • 大小: 104.6 KB
  • 大小: 133.6 KB
  • 大小: 90.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics