oracle调用web severs,Oracle调用C#开发web services
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相关推荐
- python开发web应用打包exe,python开发web应用程序
python做web开发有哪些好处和不足 python适合Web开发吗?当然!python涉及的面十分广泛,不过使用python进行开发,你需要先掌握python的基础知识,然后学习python We ...
- go语言需要web服务器么,使用Go开发web服务器
Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HTTP 服务 ...
- linux下用c 开发web,用C一步步开发web服务器(2)
顺着教程1往下走,这个章节我们需要开发支持并发的web服务器,并加入容错处理 首先加入容错处理,建议将socket函数封装在新的wrap_socket.c文件中,并创建他的.h文件,Server端in ...
- web浏览器_vs2019使用webview2开发web浏览器 - 左正
项目目的是使用Vs2019开发一个简单浏览器,浏览器控件和webform直接可以通过互相通信: 刚开始使用自带的webbrowser控件,但是核心是IE,访问网站有各种兼容性问题,后来使用webvie ...
- Java Web基础入门第九讲 Java Web开发入门——再探Tomcat服务器
web应用程序 web应用程序指供浏览器访问的程序,通常也简称为web应用.例如有a.html.b.html--多个web资源,这多个web资源用于对外提供邮件服务,此时应把这多个web资源放在一个目 ...
- mysql web 报表工具_.net的web报表设计工具
e表介绍 e表是一个功能强大的Web报表工具,提供了高效的报表设计方案.强大的Web报表展现能力.灵活的部署机制.使用e表可使复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQ ...
- 【oracle存储过程】-编写及调用常见问题
[oracle存储过程]-编写及调用常见问题 大把的学习资源 1.先能看懂,再学会编写 华为出品-基本存储过程:https://support.huaweicloud.com/devg-dws/dws ...
- Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL
Oracle 存储过程学习 目录 Oracle 存储过程........................................................................ ...
- java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势
这是我工作之前遇到的一个需求,Java调用存储过程,入参是集合.踩了一些坑,决定写个干货,和大家分享下. 项目使用的oracle版本: com.oracle ojdbc6 11.2.0.1.0 sys ...
最新文章
- 7714天,王小川正式卸任搜狗CEO!用一瞬间定格永恒
- stopImmediatePropagation函数和stopPropagation函数的区别
- html img 指定旋转角度_ALLEN老师自动化测试小课堂 | 生成HTML可视化报告的两个常见模块...
- JD boto3 flask 上传 demo
- python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)
- mysql安全权限的讲解
- zip转直链php,蓝奏网盘直链转换器
- 智慧讲台接收画板协议规划
- 多线程 之 生产者与消费者
- 国内自主研发的游戏引擎一览
- 灵敏度和特异度计算方法
- LSTM Networks应用于股票市场探究
- 프로그래머로 살아남는 법
- gophish配合邮件服务器,【CS】Cobalt Strike发送钓鱼邮件
- 【2023王道数据结构】【字符串匹配算法】字符串的KMP(next数组)模式匹配算法C、C++完整实现(可直接运行)
- 算法训练一(贪心、二分)(含解题思路)(上)
- java 给word加水印,Java 实现在线给word 文档添加水印
- 基于php二手书交易系统,二手书交易系统论文.doc
- 前端导出 excel 打开文件提示:发现“XXX.xIsx“中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击‘是“。
- 电脑故障3000实例排查大全! 计算机报错大全