




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle实践Jdev11G发布WS部署Weblogic方案与实现Author:lazyCreation Date:2016-Mar-14Last Updated:2016-Mar-14Document Ref:Version:1.0Note: Title, Subject, Last Updated Date, Reference Number, and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.Approvals:顾焕Copy No._Note: To add additional approval lines, press Tab from the last cell in the table above.Note: You can delete any elements of this cover page that you do not need for your document. For example, Copy Number is only required if this is a controlled document and you need to track each copy that you distribute.Document ControlChange Record3DateAuthorVersionChange Reference14-Mar-16Lazy1.0No Previous DocumentReviewersNamePositionDistributionCopy No.NameLocation1Library MasterProject Library2Project Manager34Note: The copy numbers referenced above should be written into the Copy Number space on the cover of each distributed copy. If the document is not controlled, you can delete this table, the Note To Holders, and the Copy Number label from the cover page.Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsDocument Controlii总体说明1文档目的1内容1环境介绍1(一)实现方案2(二)实现方式3(三)环境间迁移20(四)注意事项21(五)高级应用39(六)参考文档40Open and Closed Issues for this Deliverable41Open Issues41Closed Issues41Note: To update the table of contents, put the cursor anywhere in the table and press F9. To change the number of levels displayed, select the menu option InsertIndex and Tables, make sure the Table of Contents tab is active, and change the Number of Levels to a new value.总体说明文档目的本文档针对目前项目上使用到的webservice开发方式进行一个方案和实现上的整理,涉及的相对比较浅显易懂的的实现方式。适用于:使用jdeveloper开发的发布于weblogic服务器上的webservice服务内容l Webservice简介l 实现方案l 实现方式l 环境间迁移l 注意事项l 高级应用l 参考文档环境介绍l JDeveloper Studio .0l Oracle Weblogic 10.3.6(一)Webservice简介1.1 简介Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。1.2 xml web service1.3 主要支持技术Web services要使用的主要支持技术有:XML和XSD可扩展的标记语言(标准通用标记语言下的一个子集)是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如VB. NET或C#来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。SOAPSOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。WSDLWeb Service描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。UDDIUDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。调用RPC与消息传递Web Service本身其实是在实现应用程序间的通信。我们有两种应用程序通信的方法:RPC远程过程调用和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。1.4 数据传输样式SOAP 规范中style与use这两个属性决定SOAP数据的编码样式。style属性可是两个值中的一个: rpc 或 document 。当属性被设定为文档样式时,客户端使用 XML 模式调用约定;当属性设置成RPC,客户端使用远程过程调用约定。1)RPC Stype指定包含Web服务调用的XML节点,该节点以Web服务调用方法命名,XML节点依次包含方法调用的各个参数。2)Document Style指定内直接包含消息,该消息没有SOAP格式限制。服务器的应用层负责将XML文档映射成内存对象(参数、方法调用等等)。Use属性值决定消息的编码方式:可以是encoded或者是 literal。1)encoded值表示XML的消息使用类型属性引用抽象数据类型,使用Section 5编码(SOAP规范第五章定义的编码)进行xml的序列化和反序列化。2) Literal值表示XML的消息使用类型属性或者Element元素引用具体的Schema定义,也就是说,根据具体的Schema将内存对象序列化成XML消息。Style和Use的值进行组合,SOAP可以有四种编码样式,比较常用的如下:1) RPC/Encoded编码,使用SOAP编码,也称为 Section 5 编码,它由 SOAP 1.1 规范定义。2) Document/literal编码。3) RPC/literal编码,它使用 RPC 方法进行调用但使用 XML 自制的方法编入数据。第一种RPC/Encoded曾在JAVA开发中应用非常广泛;第二种编码样式是DOT NET开发社区使用的缺省编码方式;第三种编码样式是第一种和第二种编码方式的混合,使用RPC的方式传送文档型数据。(一)实现方案1.1 总体方案说明对于SOA方式发布的Webservice,部署过程比较复杂,需要安装patch等配置,最终还是决定尝试使用Weblogic发布Webservice服务。文档中约定如下:1. 对外提供服务的一方称为:服务方2调用其他系统提供服务的一方称为:消费方1.2 服务方通过Jdeveloper将PL/SQL程序发布在Oracle Weblogic服务器上对外提供服务。使用的方式主要有如下几种:1. 通过特定参数条件向外围系统提供数据实现的方案问题主要在出参上,通过何种方式返回需要的数据可以根据需要进行变通使用,主要通过PL/SQL编写Function,其中:入参:独立字段出参:CLOB对象,其中CLOB中可以与各系统约定具体使用何种方式,如:XML或者Json2. 接收外围系统传入的数据至接口表实现的方案问题主要在入参方式上,出参可统一返回样式:只要返回统一格式的成功标识及错误原因,入参的方式上主要有如下几种:方案一、入参:独立字段,每次只能接收一条数据方案二、入参:CLOB,CLOB中可以使用约定的样式进行参数的解析方案三、入参:table类型变量3. 传入特定参数返回特定消息实现上根据实际情况传入相应的参数,程序中调用相应方法生成相应需要返回的信息1.3 消费方通过PL/SQL调用外围系统发布的Webservice服务。(二)实现方式2.1 PL/SQL程序主要说明下入参是table类型变量和CLOB类型的使用。Table类型1. 定义样例1.1、单表样例TYPE type_pay_rec IS RECORD( source_code VARCHAR2(50),payment_number VARCHAR2(240),payment_created_person VARCHAR2(240);TYPE type_pay_tbl IS TABLE OF type_pay_rec INDEX BY BINARY_INTEGER;1.2、头行表样例行定义TYPE inv_apply_lines_rec_type IS RECORD( organization_id NUMBER, line_number NUMBER, item_number VARCHAR2(30),item_desc VARCHAR2(240);TYPE inv_apply_lines_tbl_type IS TABLE OF inv_apply_lines_rec_type INDEX BY BINARY_INTEGER;头定义TYPE inv_apply_header_rec_type IS RECORD( organization_id NUMBER, urgent_level VARCHAR2(240),doc_type_id NUMBER,line_tbl inv_apply_lines_tbl_type);TYPE inv_apply_header_tbl_type IS TABLE OF inv_apply_header_rec_type INDEX BY BINARY_INTEGER;2. 入参样例单表入参FUNCTION import_data(p_pay_tbl IN type_pay_tbl) RETURN CLOB头行表入参PROCEDURE inv_oa_apply(p_header_tbl IN inv_apply_header_tbl_type, x_result OUT CLOB);CLOB类型CLOB类型使用约定的XML结构便于解析,在传入后可以统一的将CLOB字段和XML字段插入到公用的table中,而后统一进行解析获取入参数据。测试样例测试样例只使用了简单的单个参数入参形式对整个发布过程做说明。Package special内容如下:create or replace package cux_testwz_ws_pkg is function get_info(p_user_name in varchar2) return varchar2;end cux_testwz_ws_pkg;Package body内容如下:create or replace package body cux_testwz_ws_pkg isfunction get_info(p_user_name in varchar2) return varchar2 is begin return p_user_name | hello world!; end;end cux_testwz_ws_pkg;2.2 Jdeveloper发布Step1 创建Database新建IDE Connections,如下图所示:说明:Connection Name:连接名称,自定义Connection Type:连接类型,默认JDBCUsername:连接数据库的用户名Password:连接数据库的密码Driver:使用默认方式:thinHost Name:数据库的ipSID:数据库实例名Step2 发布程序包1.创建Generic Application2.Next创建Project3.切换至IDE Connection是页面,选择当前环境使用的database连接,展开Packages选项,找到需要发布的package,右键选择Publish as Web Service。Target Project默认,点击NextDeployment Platform,默认按相应规范调整Web Service Name,Java Package默认,点击NextSOAP Message Format默认RPC/Literal选择需要发布的function或者procedure,点击Next连接匹配信息界面直接全部默认,点击Next后面可以直接finish,切换至Application Navigator界面,可以看到如下样式:Step3 修改Data Source找到weblogic服务使用的Data Sources名称,服务器上路径为:EBS_domain_DEV/Services/Data Sources主要修改两个文件中使用的Data Source:一、Base.java文件修改前:修改后:二、web.xml文件修改前:修改后:Step4 war文件打包选择project,右键选择Deploy,选择Webservices这里我们选择Deploy to war点击Next可以看到生成的war文件所在的路径与名称点击Finish,日志显示成功即表示war文件创建成功2.3 Weblogic发布服务1.进入weblogic控制界面,选择Lock&Edit进行编辑,选择Deployments准备发布。2.选择Install3.点击upload your file(s),上传需要发布的war文件。4.上传文件,点击Next。5.后面一路Next就可以,直到最后的Finish。点击Activate Changes使设置生效。6.切换至Deployments页面,可以看到刚创建的webservice应用,不过此时的状态是Prepared。7.勾选上刚发布的webservice应用,启动服务:Start - Servicing all requests8.出现如下信息表示服务启动成功,同时看到State状态和Health状态分别为:Active和OK。2.4 调用测试1.获取发布的webservice的wsdl地址1.1、展开发布的webservice服务,找到Type为Web Service2.2、切换至Testing tab页面,展开Name,可以看到有个Test Point为?WSDL的,点击以后会出现wsdl对应的定义信息,其地址就是需要提供出去的wsdl地址。2.使用Soap UI软件进行调用测试2.1、进入Soap UI软件,选择SOAP新建一个SOAP Project,将获取的wsdl地址放置在对应的地址路径下。创建后出现如下样式的界面2.2、将参数中默认的?替换成真实需要传递的参数,点击“运行”按钮,测试返回结果。至此一个简单的通过jdeveloper发布在weblogic上的webservice发布完成。(三)环境间迁移3.1 迁移事项已经发布的webservice在不同环境间迁移的时候,为方便起见,可以通过修改部分信息,达到迁移的效果,主要的修改点有如下几种情况:一、入参是单值和CLOB这种方式比较简单,修改的也比较简单,从发布过程可以知道我们只需要做以下两个部分的修改1、base.java和web.xml文件中的两个Data Resource连接信息,替换成需要迁移的环境信息就可以了2、重新Deploy生成新的war文件二、入参为table类型对于使用table类型变量作为参数的webservice在对database中的package进行发布的时候会自动创建一个Resources文件夹,其中有两个.sql的文件:_plsql_ wrapper.sql:该文件中包含了需要创建3个对象:一、入参定义的record字段object对象定义;二、基于object的table类型定义;三、_plsql_wrapper的package定义;_plsql_dropper.sql:对wrapper中定义的3个对象进行drop的操作。由于这两个文件是在数据库发布(不是weblogic发布war的时候)的时候自动创建的,迁移时如果只是直接修改data source而不是从database重新发布的,这两个.sql文件并不会自动创建需要的对象,因而在后续调用系统package时会出现invalid method(未找到wrapper中需要创建的的对象)的问题,这时需要手工创建wrapper.sql文件中的三个对象。而直接重新创建的并不会出现这个问题。(四)注意事项4.1 R12 Weblogic端口问题R12系统的文件系统结构存在fs1和fs2两个,这也意味着在R12上的Weblogic Console存在两个端口对应的地址,这就导致了发布出去的webservice存在两个端口的情况。这种情况下我们可以创一个不受fs1和fs2切换影响的新的domain。这里我们例子中创建一个如下信息的domain:属性值Domain类型Basic WebLogic Server DomainDomain名称DEV_Test_domainPort7090Passwordmanager0运行模式生产模式具体创建方式如下:1.进入配置命令路径appldevtest $ cd $FMW_HOME/wlserver_10.3/common/binappldevtest bin$ lscommEnv.sh config.sh setPatchEnv.sh startManagedWebLogic.sh unpack.sh wlscontrol.sh wlst.shconfig_builder.sh pack.sh startDerby.sh stopDerby.sh upgrade.sh wlsifconfig.shappldevtest bin$ ./config.shUnable to instantiate GUI, defaulting to console mode.Welcome:-Choose between creating and extending a domain. Based on your selection, the Configuration Wizard guides you through the steps to generate a new or extend an existing domain. -1|Create a new WebLogic domain | Create a WebLogic domain in your projects directory. 2|Extend an existing WebLogic domain | Use this option to add new components to an existing domain and modify |configuration settings. Enter index number to select OR ExitNext 12.创建新的domainSelect Domain Source:-Select the source from which the domain will be created. You can create the domain by selecting from the required components or by selecting from a list of existing domain templates. -1|Choose Weblogic Platform components | You can choose the Weblogic component(s) that you want supported in |your domain. 2|Choose custom template | Choose this option if you want to use an existing template. This |could be a custom created template using the Template Builder. Enter index number to select OR ExitPreviousNext 1Application Template Selection:- Available Templates |_Basic WebLogic Server Domain - wlserver_10.3x |_Oracle Enterprise Manager Plugin for EBS - Oracle_EBS-app1 2 |_Oracle Enterprise Manager - oracle_common 3 |_Oracle WSM Policy Manager - oracle_common 4 |_Oracle JRF WebServices Asynchronous services - oracle_common 5 |_Oracle E-Business Suite Applications - Oracle_EBS-app1 6 |_Oracle JRF - oracle_common 7 |_Basic WebLogic SIP Server Domain - wlserver_10.3 8 |_WebLogic Advanced Web Services for JAX-RPC Extension - wlserver_10.3 9 |_WebLogic Advanced Web Services for JAX-WS Extension - wlserver_10.3 10 Enter number exactly as it appears in brackets to toggle selection OR ExitPreviousNextEdit Domain Information:- | Name | Value | _|_|_| 1| *Name: | base_domain |Enter value for Name OR ExitPreviousNext DEV_Test_domainEdit Domain Information:- | Name | Value | _|_|_| 1| *Name: | DEV_Test_domain |Use above value or select another option: 1 - Modify Name 2 - Discard ChangesEnter option number to select OR ExitPreviousNextSelect the target domain directory for this domain:- Target Location = Enter new value or use default /home/dev/app/fs1/FMW_Home/user_projects/domainsEnter new Target Location OR ExitPreviousNextConfigure Administrator User Name and Password:-Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. | Name | Value | _|_|_| 1| *Name: | weblogic | 2| *User password: | | 3| *Confirm user password: | | 4| Description: | This user is the default administrator. |Use above value or select another option: 1 - Modify Name 2 - Modify User password 3 - Modify Confirm user password 4 - Modify DescriptionEnter option number to select OR ExitPreviousNext 2Configure Administrator User Name and Password:-Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. *User password: = Enter new *User password: OR ExitResetAccept manager0Configure Administrator User Name and Password:-Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. | Name | Value | _|_|_| 1| *Name: | weblogic | 2| *User password: | * | 3| *Confirm user password: | | 4| Description: | This user is the default administrator. |Use above value or select another option: 1 - Modify Name 2 - Modify User password 3 - Modify Confirm user password 4 - Modify Description 5 - Discard ChangesEnter option number to select OR ExitPreviousNext 3Configure Administrator User Name and Password:-Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. *Confirm user password: = Enter new *Confirm user password: OR ExitResetAccept manager0Configure Administrator User Name and Password:-Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. | Name | Value | _|_|_| 1| *Name: | weblogic | 2| *User password: | * | 3| *Confirm user password: | * | 4| Description: | This user is the default administrator. |Use above value or select another option: 1 - Modify Name 2 - Modify U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人造板饰面工中秋节后复工安全考核试卷含答案
- 刃具制造工中秋节后复工安全考核试卷含答案
- 运动场草坪管理师国庆节后复工安全考核试卷含答案
- 啤酒酿造工中秋节后复工安全考核试卷含答案
- 舌簧管封装工国庆节后复工安全考核试卷含答案
- 创业指导师国庆节后复工安全考核试卷含答案
- 外来施工进场安全培训课件
- 培训合伙合同(标准版)
- 货检值班员国庆节后复工安全考核试卷含答案
- 超重型汽车列车司机国庆节后复工安全考核试卷含答案
- 2025公司应急预案演练计划(5篇)
- 医疗机构医院全员培训制度
- 2025仓库保管员试题及答案
- 生猪养殖场实施方案
- 矛盾纠纷化解培训课件
- 2025年成人高考语文试题及答案
- DB11-T 2103.14-2025 社会单位和重点场所消防安全管理规范 第14部分:电动汽车充电站
- 病毒感染课件
- 涉案财物处置培训
- 等离子切割机使用培训
- 芳香疗法考试试题及答案
评论
0/150
提交评论