Oracle调用C#开发web services

1, 去oracle官网上下载dbws-callout-utility-10131.zip

地址:https://oracle-base.com/articles/10g/utl_dbws-10g(注意请根据自己oracle的版本来选择下载对应的jar)

2, 解压后放到oracle安装目录下的/sqlj/lib中;

3, 在命令行中利用loadjava命令(一般安装完jdk或oracle之后就会有)将jar包导入oracle对应的用户中:

loadjava -u user/password@oracle -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar

若为SYS用户,命令为:

loadjava -u user/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar

(本人每次都会使用SYS用户权限比较大,在Win7与Win2008之后的系统开始命令行窗口的使用尽量使用“管理员模式”,安装时会产生拒绝访问的情况,有一种可能就是安装的Oracle数据库具备功能或者可以把Oracle服务关了再试试(这句有机会真的可以试试))

4, 如果未发现UTL_DBWS(可以在plsql中敲入sys.若未有utl_dbws显示,则需要进行初始化),需要运行之前下载的包中dbws-callout-utility-10131/sqlj/lib/ utl_dbws_body.sql及utl_dbws_decl.sql

5, 编写sql函数并发布

create or replace function FUNC_GENERATE_LOGINNAME(content VARCHAR2,cellNumber VARCHAR2,sender VARCHAR2)

return VARCHAR2 AS

l_service sys.utl_dbws.SERVICE;

l_call sys.utl_dbws.call;

l_result ANYDATA;

l_wsdl_url VARCHAR2(1024);

l_service_name VARCHAR2(200);

l_operation_name VARCHAR2(200);

l_input_params sys.UTL_DBWS.anydata_list;

l_xmltype_in SYS.XMLTYPE;

l_xmltype_out SYS.XMLTYPE;

BEGIN

l_wsdl_url := ‘http://xxxx.xxxx.xxxx.xxxx:xxxx/project/axis/services.jws?wsdl‘;(这里一定要加?wsdl)

l_service_name := ‘servicesService’;(就是我们*.asmx的那个类名)

l_operation_name := ‘sendMessage’;(就是我们具有WebMothed属性的方法名)

l_service := sys.UTL_DBWS.create_service(wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),

service_name => l_service_name);

l_call := sys.UTL_DBWS.create_call(service_handle => l_service,

port_name => NULL,

operation_name => l_operation_name);

l_input_params(1) := ANYDATA.ConvertVarchar2(content);

l_input_params(2) := ANYDATA.ConvertVarchar2(cellNumber);

l_input_params(3) := ANYDATA.ConvertVarchar2(sender);

l_result := sys.UTL_DBWS.invoke(call_handle => l_call,

input_params => l_input_params);

sys.UTL_DBWS.release_call(call_handle => l_call);

sys.UTL_DBWS.release_service(service_handle => l_service);

RETURN ANYDATA.AccessVarchar2(l_result);

EXCEPTION

WHEN OTHERS THEN

RETURN substr(sqlerrm,2000);

END FUNC_GENERATE_LOGINNAME;

6,看结果select func_generate_loginname(‘testTest’,’1234567’,’xxxxxx’) from dual;

7对于其中出现的异常,最可能的就是出现权限不足,可以利用如下语句解决:

begin

dbms_java.grant_permission( ‘DZZWPT’,‘SYS:Java.lang.RuntimePermission’,‘getClassLoader’,” );

dbms_java.grant_policy_permission(‘DZZWPT’,’SYS’,’java.io.FileP ermission’,’*’);

—dbms_java.grant_permission( ‘DZZWPT’,’SYS:java.lang.IllegalAccessException’,’getClassLoader’,” );

dbms_java.grant_permission( ‘DZZWPT’,‘SYS:java.lang.RuntimePermission’,‘accessClassInPackage.sun.util.calendar’,‘setFactory’,‘SYS:java.util.PropertyPermission’,‘HTTPClient.socket.idleTimeout’,‘write’ );

dbms_java.grant_permission( ‘DZZWPT’,‘SYS:java.Net.SocketPermission’,‘localhost’,‘resolve’ );

dbms_java.grant_permission( ‘DZZWPT’,‘SYS:java.NET.SocketPermission’,‘192.168.21.203:80’,‘connect,resolve’ );

dbms_java.grant_permission( ‘DZZWPT’,‘createClassLoader’,” );

end;

8.以上为官方实例,接下来我们来试试HelloWorld

1).首先,我们要对自己写的WebServer做一些修改,

在WebServer类前面把Namespace设为空,且把[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

根据WebServer中的说明来确定输入参数、输出参数的格式

l_xmltype_in 的值就是 输出就是 Hello World

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle调用web severs,Oracle调用C#开发web services相关推荐

  1. python开发web应用打包exe,python开发web应用程序

    python做web开发有哪些好处和不足 python适合Web开发吗?当然!python涉及的面十分广泛,不过使用python进行开发,你需要先掌握python的基础知识,然后学习python We ...

  2. go语言需要web服务器么,使用Go开发web服务器

    Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HTTP 服务 ...

  3. linux下用c 开发web,用C一步步开发web服务器(2)

    顺着教程1往下走,这个章节我们需要开发支持并发的web服务器,并加入容错处理 首先加入容错处理,建议将socket函数封装在新的wrap_socket.c文件中,并创建他的.h文件,Server端in ...

  4. web浏览器_vs2019使用webview2开发web浏览器 - 左正

    项目目的是使用Vs2019开发一个简单浏览器,浏览器控件和webform直接可以通过互相通信: 刚开始使用自带的webbrowser控件,但是核心是IE,访问网站有各种兼容性问题,后来使用webvie ...

  5. Java Web基础入门第九讲 Java Web开发入门——再探Tomcat服务器

    web应用程序 web应用程序指供浏览器访问的程序,通常也简称为web应用.例如有a.html.b.html--多个web资源,这多个web资源用于对外提供邮件服务,此时应把这多个web资源放在一个目 ...

  6. mysql web 报表工具_.net的web报表设计工具

    e表介绍 e表是一个功能强大的Web报表工具,提供了高效的报表设计方案.强大的Web报表展现能力.灵活的部署机制.使用e表可使复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQ ...

  7. 【oracle存储过程】-编写及调用常见问题

    [oracle存储过程]-编写及调用常见问题 大把的学习资源 1.先能看懂,再学会编写 华为出品-基本存储过程:https://support.huaweicloud.com/devg-dws/dws ...

  8. Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL

    Oracle 存储过程学习 目录 Oracle 存储过程........................................................................ ...

  9. java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势

    这是我工作之前遇到的一个需求,Java调用存储过程,入参是集合.踩了一些坑,决定写个干货,和大家分享下. 项目使用的oracle版本: com.oracle ojdbc6 11.2.0.1.0 sys ...

最新文章

  1. 7714天,王小川正式卸任搜狗CEO!用一瞬间定格永恒
  2. stopImmediatePropagation函数和stopPropagation函数的区别
  3. html img 指定旋转角度_ALLEN老师自动化测试小课堂 | 生成HTML可视化报告的两个常见模块...
  4. JD boto3 flask 上传 demo
  5. python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)
  6. mysql安全权限的讲解
  7. zip转直链php,蓝奏网盘直链转换器
  8. 智慧讲台接收画板协议规划
  9. 多线程 之 生产者与消费者
  10. 国内自主研发的游戏引擎一览
  11. 灵敏度和特异度计算方法
  12. LSTM Networks应用于股票市场探究
  13. 프로그래머로 살아남는 법
  14. gophish配合邮件服务器,【CS】Cobalt Strike发送钓鱼邮件
  15. 【2023王道数据结构】【字符串匹配算法】字符串的KMP(next数组)模式匹配算法C、C++完整实现(可直接运行)
  16. 算法训练一(贪心、二分)(含解题思路)(上)
  17. java 给word加水印,Java 实现在线给word 文档添加水印
  18. 基于php二手书交易系统,二手书交易系统论文.doc
  19. 前端导出 excel 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击‘是“。
  20. 电脑故障3000实例排查大全! 计算机报错大全

热门文章

  1. SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】
  2. oracle安装点下一步退出,学习笔记:oracle之win10安装卸载oracle 11gR2步骤及常见问题解决...
  3. 千年鸿蒙盼尔来兮,古言爱情誓言
  4. 如何将图片格式转换为ico格式
  5. web前端开发零基础入门教程
  6. 包装类型与引用类型的使用场景
  7. Python脚本中调用其他Python脚本
  8. 人工智能数学基础-内积和外积
  9. js 读取图片路径并预览图片
  10. python 实现图片添加文字水印