`

oracle直接调用web services

阅读更多

在oracle中直接调用web services怎么操作,在网上查了很久,相关资料,比较少。

在这里整理一下,给需要的童鞋们做参考。。

Windoworacle开发web services

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

地址:http://www.oracle-base.com/articles/10g/utl_dbws10g.php

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

3, 检查数据库中有多少个java_class

select * from User_Objects t where t.object_type like '%JAVA_CLASS%' ;

4, 导入java或jar 参数说明:

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

loadjava -u user/password@oracle -o -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar若为SYS用户,命令为:

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

-o     使用OCI8 JDBC接口
-v     显示执行过程
-f     强制装载
-r     编译并解析类

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

6,  编写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';

  l_service_name   := 'servicesService';

  l_operation_name := 'sendMessage';

  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, 0, 2000);

END FUNC_GENERATE_LOGINNAME;

7,看结果select func_generate_loginname('testTest','1234567','xxxxxx') from dual;

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

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', '' );

dbms_java.grant_permission( 'DZZWPT', 'SYS:java.lang.RuntimePermission', 'setFactory', '' );

dbms_java.grant_permission( 'DZZWPT', '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', 'SYS:java.lang.RuntimePermission', 'createClassLoader', '' );

end;

 

分享到:
评论

相关推荐

    oracle调用webservice接口地址demo

    ### Oracle调用WebService接口地址Demo解析 #### 一、引言 在企业级应用开发中,不同系统间的集成与通信尤为重要。Oracle数据库作为一款广泛使用的数据库管理系统,支持多种方式与其他系统进行交互,其中通过调用...

    oracle application web services developer guide pdf

    #### 2.3 客户端调用Web服务 该章节解释了客户端如何访问和调用部署在Oracle Application Server上的Web服务。内容涵盖: - 如何生成客户端代码以调用特定的Web服务。 - 如何处理Web服务响应并将其转换为可用的数据...

    从PLSQL调用web services实例源码

    总的来说,从PLSQL调用Web服务涉及了数据库编程、网络通信和Web服务交互等多个领域的知识,需要对Oracle的UTL_HTTP包、Java在Oracle中的运行机制以及Web服务的AXIS2框架有深入的理解。通过这样的集成,你可以实现...

    oracle plsql 通过utl_http调用 webservice

    在本示例中,我们将深入探讨如何利用UTL_HTTP包来调用Web Service,这是一个非常实用的功能,允许你在数据库内部直接与外部Web Service进行交互。 UTL_HTTP是Oracle提供的一种内置包,它提供了HTTP协议的客户端功能...

    JAVA SWing 实现C/S模式的数据库编程及WebServices 调用实现

    在Java Swing应用中调用WebServices,可以实现从桌面应用获取远程数据或服务的功能。这通常涉及以下步骤: 1. 创建一个客户端代理类,该类将调用WebService的方法。这可以通过WSDL(Web Services Description ...

    PHP Oracle Web Development: Data Processing, Security, Caching, XML, Web Services, and Ajax

    这包括创建、发布和调用Web服务的过程,以及如何确保Web服务的安全性和可靠性。此外,书中还介绍了如何使用PHP与Oracle实现RESTful Web服务。 #### 七、Ajax技术 Ajax技术使得Web应用程序能够提供更加流畅的用户...

    SOA with Web Services SOA with Web Services

    Web Services是实现SOA的一种常见技术,通过XML、SOAP、WSDL等标准来封装、发布、发现和调用服务。本主题将深入探讨SOA与Web Services之间的关系,以及如何利用它们构建可扩展、灵活且互操作性强的系统。 首先,...

    oracle 调用webservice

    Oracle调用Web Service是实现这种交互的关键技术。 在Oracle中,调用Web Service主要依赖于Oracle的集成开发环境(IDE)如Oracle JDeveloper,以及其内置的Web Service客户端工具。下面我们将详细探讨这个过程: 1...

    oracle调webservice-get.txt

    附件文档以QQ在线WEBAPI接口为例,使用ORACLE UTL包以GET方式调用WEBAPI,希望对想用数据方式调用WEBAPI接口的同仁们有帮助。

    Oracle数据库WEB开发指南

    2. RESTful API:使用HTTP方法(GET、POST、PUT、DELETE)与Oracle交互,构建RESTful风格的服务,利于前端JavaScript等技术直接调用。 四、数据库设计与优化 1. 规范化设计:遵循第一范式到第五范式,减少数据冗余...

    Oracle Developer forms 调用java

    - **标准至上**:XML 和 Web Services 成为关键的技术标准。 ##### 3. Oracle Forms 的未来方向 - **与 Oracle 9i AS 的集成**:Oracle Forms 与 Oracle 9i AS 的集成越来越紧密,如单点登录、企业级管理等功能。 ...

    Oracle调用WSDLService.zip

    "Oracle调用WSDLService.zip"这个压缩包就是关于如何利用Oracle数据库直接调用Web服务的一个实例,主要涉及Oracle数据库与WSDL(Web Services Description Language)的集成,以及SOAP(Simple Object Access ...

    Web Services 应用 入门资料

    此外,XML得到了众多软件供应商的支持,如SAP、PeopleSoft、Siebel、Oracle、Ariba和Microsoft,这进一步推动了Web Services的发展。 【SOAP与HTTP】 SOAP协议构建在HTTP之上,利用HTTP的传输能力,确保了Web ...

    如何通过PL/SQL访问到Web Services

    随着Web Services的广泛应用,Oracle也提供了相应的技术支持,让开发人员能够通过PL/SQL直接调用Web Services。这篇文章主要探讨如何在Oracle环境中,利用PL/SQL的UTL_DBWS包来访问Web Services。 在Oracle 9i版本...

    webservices jar包

    "webservices jar包"正是这样一个集合,包含了支持Web服务开发所需的多个组件。 在Java中,最常见的Web服务标准有SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。SOAP是一种...

    Java Tutorial: Creating Web Services

    WSDL(Web Services Description Language)是一种 XML 格式的文档,用于描述 Web 服务的接口和绑定。WSDL 包含三个主要部分: - **接口(Interface)**:定义了服务的抽象操作和消息。 - **绑定(Binding)**:指定...

    wsit-webservices-1

    标题“wsit-webservices-1”和描述“wsit-webservices-1.zip”暗示了我们正在讨论一个与Web服务相关的项目或者软件包,很可能是一个用于开发和部署Web服务的工具集。"wsit"可能代表“Web Services Interoperability ...

    Metro WebServices 示例

    Metro WebServices 是一种由Sun Microsystems(现为Oracle的一部分)开发的Java平台上的Web服务堆栈,它提供了全面的工具和技术来创建、部署和管理高质量的Web服务。这个示例将帮助我们深入理解如何使用Metro来构建...

    Java Web Services教程

    Java开发者使用WSDL来理解如何调用Web服务,JAX-WS提供了wsimport工具,可以从WSDL生成客户端和服务端的Java代码。 三、UDDI(统一描述、发现和集成) UDDI是Web服务目录的标准,使得服务消费者可以查找并了解可用...

Global site tag (gtag.js) - Google Analytics