版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CSI架构及使用CSI架构及使用第 PAGE 51页 共 SECTIONPAGES 52页目录 TOC o 1-3 h z u HYPERLINK l _Toc238035390 1 前言 PAGEREF _Toc238035390 h 1 HYPERLINK l _Toc238035391 1.1 编写目的 PAGEREF _Toc238035391 h 1 HYPERLINK l _Toc238035392 1.2 CSI架构 PAGEREF _Toc238035392 h 2 HYPERLINK l _Toc238035393 1.2.1 CSI层次结构 PAGEREF _Toc2380
2、35393 h 3 HYPERLINK l _Toc238035394 1.2.2 CSI与应用系统 PAGEREF _Toc238035394 h 3 HYPERLINK l _Toc238035395 1.3 预期读者 PAGEREF _Toc238035395 h 3 HYPERLINK l _Toc238035396 1.4 适用范围 PAGEREF _Toc238035396 h 4 HYPERLINK l _Toc238035397 1.5 术语定义 PAGEREF _Toc238035397 h 4 HYPERLINK l _Toc238035398 2 CSI在基于SUP2应用
3、中的使用 PAGEREF _Toc238035398 h 4 HYPERLINK l _Toc238035399 2.1 服务发布 PAGEREF _Toc238035399 h 6 HYPERLINK l _Toc238035400 2.2 服务消费 PAGEREF _Toc238035400 h 9 HYPERLINK l _Toc238035401 3 CSI在非基于SUP2应用中的使用 PAGEREF _Toc238035401 h 11 HYPERLINK l _Toc238035402 3.1 服务发布 PAGEREF _Toc238035402 h 11 HYPERLINK l
4、_Toc238035403 3.1.1 配置通道 PAGEREF _Toc238035403 h 11 HYPERLINK l _Toc238035404 3.1.2 定义服务 PAGEREF _Toc238035404 h 14 HYPERLINK l _Toc238035405 3.1.3 配置服务访问控制 PAGEREF _Toc238035405 h 15 HYPERLINK l _Toc238035406 3.1.4 注意事项 PAGEREF _Toc238035406 h 16 HYPERLINK l _Toc238035407 3.2 服务消费 PAGEREF _Toc23803
5、5407 h 17 HYPERLINK l _Toc238035408 3.2.1 配置寻址服务信息 PAGEREF _Toc238035408 h 18 HYPERLINK l _Toc238035409 3.2.2 定义服务引用 PAGEREF _Toc238035409 h 19 HYPERLINK l _Toc238035410 3.2.3 配置服务访问控制 PAGEREF _Toc238035410 h 20 HYPERLINK l _Toc238035411 3.2.4 程序调用服务 PAGEREF _Toc238035411 h 21 HYPERLINK l _Toc238035
6、412 3.2.5 注意事项 PAGEREF _Toc238035412 h 25 HYPERLINK l _Toc238035413 3.3 CSI核心配置 PAGEREF _Toc238035413 h 26 HYPERLINK l _Toc238035414 3.3.1 配置Http服务servlet PAGEREF _Toc238035414 h 27 HYPERLINK l _Toc238035415 3.3.2 配置WebService服务servlet PAGEREF _Toc238035415 h 28 HYPERLINK l _Toc238035416 3.3.3 总结 PA
7、GEREF _Toc238035416 h 29 HYPERLINK l _Toc238035417 3.4 CSI日志 PAGEREF _Toc238035417 h 29 HYPERLINK l _Toc238035418 3.4.1 日志实现方式 PAGEREF _Toc238035418 h 29 HYPERLINK l _Toc238035419 3.4.2 日志格式 PAGEREF _Toc238035419 h 29 HYPERLINK l _Toc238035420 3.4.3 日志使用建议 PAGEREF _Toc238035420 h 31 HYPERLINK l _Toc
8、238035421 3.5 安装部署 PAGEREF _Toc238035421 h 31 HYPERLINK l _Toc238035422 3.5.1 Tomcat(5.0以上) PAGEREF _Toc238035422 h 32 HYPERLINK l _Toc238035423 3.5.2 Weblogic (8.1) PAGEREF _Toc238035423 h 33 HYPERLINK l _Toc238035424 3.5.3 Weblogic (9.2) PAGEREF _Toc238035424 h 35 HYPERLINK l _Toc238035425 3.5.4 W
9、ebsphere (6.1) PAGEREF _Toc238035425 h 37 HYPERLINK l _Toc238035426 3.6 实例讲解 PAGEREF _Toc238035426 h 39 HYPERLINK l _Toc238035427 3.6.1 实例一:调用和发布简单服务 PAGEREF _Toc238035427 h 39 HYPERLINK l _Toc238035428 3.6.2 定义服务引用 PAGEREF _Toc238035428 h 41 HYPERLINK l _Toc238035429 3.6.3 实例二:服务异常的处理 PAGEREF _Toc2
10、38035429 h 44 HYPERLINK l _Toc238035430 3.6.4 实例三:使用复杂数据 PAGEREF _Toc238035430 h 47 HYPERLINK l _Toc238035431 3.6.5 服务实现的设计 PAGEREF _Toc238035431 h 47 HYPERLINK l _Toc238035432 4 附录 PAGEREF _Toc238035432 h 53 HYPERLINK l _Toc238035433 4.1 CSI 程序包 PAGEREF _Toc238035433 h 53 HYPERLINK l _Toc238035434
11、4.2 依赖第三方JAR清单 PAGEREF _Toc238035434 h 53前言编写目的CSI Common Service Interconnection(通用服务互联),则是帮助应用系统在“直连”方式下方便的发布、消费服务。使用CSI的应用系统不再需要关心如何将业务功能发布成服务或如何消费其他系统发布的服务,只需要进行简单的配置就可以将已有的业务功能发布成服务或消费别的应用发布的服务。本文为应用系统的技术人员提供CSI的相关介绍,以便他们能够充分掌握CSI的特性。CSI架构CSI层次结构CSI主要有服务发布方和服务消费方两个部分;服务消费方分为通道 通道是指服务通过某种方式发布出来,
12、使服务消费方可以消费,CSI目前支持的通道是http、webservice、ejb层、服务消费代理层两个层次;服务发布方也分为两个层次:通道层和服务发布方代理层。CSI通过通道层来屏蔽采用http、webservice、ejb等方式发布服务所带来的差异性,同时支持相同的业务实现可以使用不同的通道发布服务。服务消费代理层,为服务消费者提供服务调用的功能,屏蔽底层技术细节(消费日志、报文结构、安全保护、服务定位等)。服务发布代理层,负责将指定的业务功能发布为服务,可供其它系统消费。通过该层,服务发布方不需要过多关心发布服务的技术细节,而更多的专注于服务的业务实现。CSI与应用系统应用系统通过普通J
13、ava调用的方式使用CSI服务消费方代理对远端服务进行访问。而发布服务只需在应用系统编辑相应的配置文件,CSI利用J2ee中web container提供的机制自动加载这些配置文件从而完成相应服务的发布。预期读者设计人员、开发人员。适用范围采用CSI进行J2EE应用直连的场景,第2、3章节分别介绍基于SUP2的应用使用CSI和非基于SUP2应用中使用CSI的指南。JDK:jdk1.4.2、jdk5应用服务器:Tomcat5.0,Tomcat5.5、weblogic8.1+、weblogic9.2、websphere6.1Web服务器:Apache2.0.*或更高版本术语定义POJO:Plain
14、 Old Java Object的缩写,POJO是不实现任何J2EE容器接口的普通Java对象,其负责实现相应的业务逻辑,业界提出POJO这个概念主要为了区别于EJB这样一些结构复杂的与J2EE容器密切相关的Java对象。JavaBean:这里把具有setter、getter方法,不包含业务逻辑只承载数据的java对象统一称为Java Bean。CSI在基于SUP2应用中的使用在SUP2中进行CSI配置非常简单,它提供了一套可视化界面来帮助开发人员配置。开发人员只需在所要使用CSI的组件包上单击鼠标右键,并选择“CSI配置”即可进入配置界面。操作如图:单击鼠标右键,出现右边的菜单。点击“CSI
15、配置”菜单项,出现下面的配置界面:该配置界面共分成“服务”和“引用”两部分,其中“服务”用于定义本组件包向外发布的服务,“引用”则用于定义本组件包引用的外部服务。下面我们来逐个介绍它们的配置情况。服务发布在“服务”选项卡里,输入“名称空间”,并点击“通道列表”中的“”按钮进行“通道”的配置,操作如下图:通道配置界面打开后,输入:通道ID,协议类型和协议信息(通道各属性的含义请参考2.1.1节),最后点击“确定”完成“通道”的配置,配置如下图:完成“通道”的配置后,又会返回“服务”选项卡,通过点击“服务列表”旁的“”按钮,进入“新建服务”界面,操作如下图:“新建服务”界面打开后,按照顺序完成相关
16、属性的配置,注意其中的“序列化方式”、“通道ID”、“实现方式”中的属性值是可选的,至于每个属性的含义请参考“2.1.2节”这里不做复述。完成“新建服务”的输入后点击“确定”,即可完成整个发布服务的配置并进入最初的配置界面,这时如点击“引用”选项卡则进入“服务引用”配置界面,如下图:服务消费引用服务配置界面由“Remote列表”和“Reference列表”两部分组成,点击两个列表旁的“”按钮则可进入相应的配置界面,图示如下:点击“Remote列表”旁的“”按钮可以进入“新建Remote”界面,按照顺序输入相关属性值(各属性的含义请参考“2.2.1节”),操作如下图:点击“确定”后则返回引用服务
17、配置初始界面,在初始界面中点击“Reference列表”旁的“”按钮进入“新建引用”配置界面,按照顺序输入相关属性值(具体属性含义请参考“2.1.2节”),操作如下图:点击“确定”即可完成整个服务引用的配置并返回配置初始界面,最后点击“确定”即完成整个CSI的配置。CSI在非基于SUP2应用中的使用主要讲述如何使用CSI发布、消费服务。服务发布CSI将J2EE应用中的POJO和Spring Context中的Spring Bean通过http、webservice、ejb等发布成服务以让其它系统使用的过程叫做服务发布。通过CSI发布服务只需要进行相应的配置;在CSI中配置一个服务需要进行三步:
18、1.配置通道;2.定义服务;3.配置服务访问控制(可选)。配置通道整个CSI通道的配置分为三大块:channel-list、channel和通讯方式。其中整个系统与外界联系的通道都在channel-list中定义,而CSI提供了http、webservice、ejb三种通讯方式,它们会和一个channel进行绑定,进而使每个通道具有明确的属性定义。示例如下:每个channel都有一个id,它是自己的唯一标识。同时在服务定义中它会被引用,用于标识服务所使用的通道。 8080sup-default 8080sup-defaultiiop:/:2810com.ibm.websphere.naming
19、.WsnInitialContextFactoryINTERCONNECTION-EJB下面详细介绍三种通讯方式的配置:http 8080sup-defaulthttp的配置由host、prot、context-root和properties四部分组成。其中host用于表示通道自身的IP地址便于服务消费方查找,port表示本通道开放的端口,context-root就是服务所在J2EE应用的context perties目前不需要配置,留未来扩展使用。webservice8080sup-defaultwebservice的配置与http的类似,即由host、prot、context-root和p
20、roperties四部分组成。其中host用于表示通道自身的IP地址便于服务消费方查找,port表示本通道开放的端口,context-root就是服务所在J2EE应用的context perties目前不需要配置,留未来扩展使用。ejbWebsphere提供的iiop:/:2810com.ibm.websphere.naming.WsnInitialContextFactoryINTERCONNECTION-EJBejb的配置也是由四部分组成,其中provider-url就是jndi的连接字符串,init-context-factory即是不同J2ee服务器提供的InitialContext生
21、成工厂;jndi-name即该ebj的jndi名字;properties即其他一些属性配置,目前无需设置。定义服务CSI可以将以POJO和Spring Bean实现的业务类发布成服务。整个发布过程很简单,只需开发人员在配置文件中进行编辑即可。配置发布的服务是由service-list与service两部分组成,其中每个服务对应一个service,而所有的serivce都被service-list涵盖在其中。配置示例如下:服务标识所使用的通道idtestPojochannelB服务的实现类型是pojo还是spring,这里是pojo。testSpringBeanchannelA这里是spring
22、配置一个服务主要由:配置服务标识、通道id和服务实现三部分组成。其中:服务标识的相关配置主要包括:服务名称(name)、服务的版本(version)、序列化类型(serializer)。这里需要特别说明的是序列化类型:CSI目前的序列化类型只提供xml和json两种。通道id就是指前面配置通道中定义的通道id,即标签中的id属性。服务的实现目前CSI提供pojo和Spring两种,pojo需要填写class-name即java类的全称,spring则需要填写spring配置文件中定义的bean-id名称,其中properties属性目前暂不使用,留未来扩展使用。配置服务访问控制CSI面向服务发
23、布方提供访问超时和报文大小两方面的控制,应用系统只需在配置文件(csi-system-config.xml)中设定相应的值,目前当超出访问控制预设的值时CSI不会中断调用、响应过程,只是在日志中记录相应信息。配置如下:-1-1timeout是指连接超时时间,单位毫秒。“-1”表示不做限制。max-message表示服务发布方接收报文和响应报文的最大字节数,单位byte。“-1”表示不做限制。csi-system-config.xml,该配置文件的默认名为csi-system-config.xml,若使用其他名称则必须在Web应用的web.xml中增加相应的配置。配置示例如下:此参数名固定不能随
24、便修改 csiSystemConfigLocation /WEB-INF/classes/csi-system-config.xml文件的存放的相对路径(相对web应用的路径)和文件名注意事项前面说的“配置通道”、“定义服务”涉及到得配置内容都在同一个文件中进行。默认的配置文件名称为:service-define.cs.xml,直接放到WEB-INF/classes下,CSI可以自动加载此文件;用户也可根据自身需要修改文件名,但请保证具有“cs.xml”的扩展名,另外还需要将该配置文件在J2EE 应用(web)中的web.xml通过context-param参数进行映射说明,也可根据需要定义多
25、个配置文件,但每个配置文件都相对独立,也就是说在一个配置文件中定义的服务只能引用本配置文件定义的通道,不能引用其他配置文件中定义的通道。示例如下:注意:这个名称是固定的! csiServiceDefineLocation /WEB-INF/classes/service-define-xxx.xml/WEB-INF/classes/service-define-yyy.xml cn.ccb.sup.csi.server.web.ServiceLoadContextListener在整个服务发布的过程中还涉及一个命名空间问题,每个服务发布配置文件都会有一个命名空间,该空间只在自身配置文件中有效,
26、如果一个应用有多个服务发布配置文件,则每个配置文件可以有各自的命名空间,它们之间互不影响。示例如下:该属性会在服务消费时用到,主机IP地址+命名空间+服务名称可以定位一个服务。服务消费要在CSI中消费服务需要做两件事情:1.在消费服务的配置文件中配置服务信息;2.通过CSI提供的API在程序代码中调用该服务。其中配置文件主要分:寻址服务信息寻址服务信息:主要用于描述查找“应用服务”的服务所处的位置,服务消费端CSI在调用“应用服务”前通过此信息去查找服务,获取“应用服务”的相关信息,之后调用“应用服务”和服务引用两部分,同时CSI提供的API则有代理和弱类型两种方式。配置寻址服务信息服务消费端
27、的配置总体分为remote-list和reference-list两部分。其中remote-list可以包含一个或多个remote,而每个remote则表示一个寻址服务信息。同理reference-list中也可包含一个或多个reference,一个reference则表示一个需要被引用的服务。配置示例如下:47001sup-default因为remote-list无任何属性,所以这里不做介绍。remote中共提供了id、host、port、context-root、properties五种属性,下面对其逐一说明:id用于唯一标识一个remote;host用于表示寻址服务所在服务器的主机IP地
28、址,目前为服务发布方的服务器地址。port用于表示寻址服务所在服务器的端口号,目前为服务发布方服务器的端口号context-root表示寻址服务所在web应用的context-root与“2.1.1节”中涉及的context对应。目前为服务发布方所在web应用的perties属性列表,用于未来扩展。定义服务引用定义服务引用是在配置文件中进行的,整个引用服务的定义分为:reference-list和reference两部分。其中reference-list可包含一个或多个reference,一个定义好的reference则表示一个需要被引用的服务。配置示例如下:h
29、ttp:/cn.ccbcn.ccb.sup.TesttestserverAhttp:/cn.ccbcn.ccb.sup.TestHJtestaserverA因为reference-list无任何属性,所以这里不做介绍。reference中共有id、namespace、service-name、description、remote-id、properties六种属性,下面对其逐一说明:id :用于唯一标识一个被定义的引用,程序中调用服务需要使用到此idnamespace : 所要引用的服务所在的namespace,此属性必须与发布服务的namespace对应,否则会造成无法找到指定的服务。ser
30、vice-name :所要引用的服务的服务名称。description : 对该服务的描述。remote-id : 用于指明所使用remote-list中的perties : 属性列表,用于未来扩展。配置服务访问控制CSI为服务消费方也提供了访问超时和报文大小两方面的控制,应用系统只需在配置文件(csi-system-config.xml)中设定相应的值,目前当超出访问控制预设的值时CSI不会中断调用、响应过程,只是在日志中记录相应信息。配置如下:-1-1timeout是指连接超时时间,单位毫秒。“-1”表示不做限制。max-message表示服务发布方接收报文和响应报文的
31、最大字节数,单位byte。“-1”表示不做限制。csi-system-config.xml,该配置文件的默认名为csi-system-config.xml,若使用其他名称则必须在Web应用的web.xml中增加相应的配置。配置示例如下:此参数名固定不能随便修改 csiSystemConfigLocation /WEB-INF/classes/csi-system-config.xml文件的存放的相对路径(相对web应用的路径)和文件名 cn.ccb.sup.csi.server.web.ServiceLoadContextListener程序调用服务在完成定义服务引用后,开发人员就可以使用程序
32、代码进行服务的调用。CSI提供proxy和invoke两种方式来支持开发人员通过程序代码调用服务。通过ServiceClientFactory.getInstance().getServiceClient()方法可得到一个IServiceClient对象,通过该对象可以调用服务。proxy方式:这种方式通过Java接口或者相关类产生代理对象,通过代理对象调用服务。此方式的优点:接口清晰、简洁,符合Java编程习惯。缺点:必须在本地部署服务Java接口、相关类的类文件。代码示例:IServiceClient client = ServiceClientFactory.getInstance().
33、getServiceClient();ITestUCC testUcc = (ITestUCC) client.newProxyInstance(this.REFERENCE_ID, ITestUCC.class);List list=testUcc.findAllUsers();其中:IServiceClient 类中的Object newProxyInstance(String referenceID, Class serviceInterface)方法用于生成服务调用代理实例,参数:referenceID 服务引用ID(对应服务引用配置文件中的reference id)、参数:servi
34、ceInterface 服务接口,返回值Object即为服务接口,它经过强制转换后就和正常的java接口一样正常使用。invoke方式:这种调用方式通过传递要调用服务的方法名等信息来调用服务的相应功能。此种调用方式的优点:不需要服务相关的类定义文件,不受制于java版本的差异。缺点:调用接口不符合java的编程习惯,服务接口不太明晰,程序编写相对复杂。这种方式通过调用IServiceClient 类中的Object invoke(String referenceID, String methodName, Object args) throws InvocationBizException,
35、CSIRuntimeException方法即可使用invoke的方式完成对服务的调用。参数说明如下:referenceID 服务引用IDmethodName 方法名称args 参数列表返回值说明: 返回类型为Object异常说明: * InvocationBizException 目标服务调用发生异常 * CSIRuntimeException CSI框架发生的异常代码示例:IServiceClient client = ServiceClientFactory.getInstance().getServiceClient();Test test=Test.FACTORY.create();O
36、bject args=new Object1;test.setName(testName);BigDecimal bd=new BigDecimal(4444.4);test.setMoney(bd);args0=test;Object obj=client.invoke(this.REFERENCE_ID, this.INSERT_SDO_METHOD, args);ObjectBean的使用在使用Invoke方式时,服务消费方不需要服务相关的Java类定义,但在一些场景中,服务的方法中存在服务发布系统自定义的Java Bean,为了达到服务消费方不需要这些Java Bean的定义也能调用相
37、应服务,而提出了ObjectBean,ObjectBean用于描述相应Java Bean的类结构以及其承载的数据。ObjectBean使用场景使用Invoke方式调用服务,何时使用ObjectBean,什么时候不需要使用,以示例方式说明。示例1:服务方法:xxxMethod传入参数:int a,String b,BigDecimal c返回参数:String values调用说明:相应服务方法传入参数类型分别为int、String和BigDecimal,这些类型都是Java自身的类型,不需要将这些类的定义文件复制到本地,因此通过invoke方式调用服务时,可以直接通过Object args传给
38、服务方法。返回值同理,其也是java类型,因此不需要使用ObjectBean,使用invoke方法返回的就是String类型对象。示例2:服务方法:xxxMethod传入参数:int a,XxxBean bean返回参数:String values调用说明:服务方法的传入参数int和XxxBean,XxxBean为服务发布方应用系统自己定义的一个Java Bean,用于对数据的封装,方便数据传递。用invoke方式调用此服务的方法,若不做处理服务消费方应有XxxBean类的类文件,否则消费方无法构造XxxBean的对象,作为输入参数传递给服务发布方。为了解决在本地没有XxxBean类文件仍然可
39、以调用此服务的问题,我们设计了ObjectBean用来替换XxxBean,这样invoke方法的args参数中的数据则变为int和ObjectBean(而不是XxxBean),CSI会在服务端自动将ObjectBean对象转换成对应的XxxBean对象。示例3:服务方法:xxxMethod传入参数:String str返回参数:List resultlist中为XxxBean对象调用说明:与上例一样,XxxBean为服务发布方系统自己定义的Java Bean,使用Invoke方式调用该方法,CSI会自动将XxxBean转换成对应的ObjectBean,并返回给服务消费方。因此服务消费方调用In
40、voke返回的的List中存放的实际上是ObjectBean对象,这些ObjectBean对象中存放的是相应的XxxBean中的数据。CSI在处理服务返回值时,在invoke模式下会自动将非Java自身的对象转换成相应的ObjectBean。ObjectBean的使用方法创建ObjectBeanObjectBean提供了一个构造函数,构造函数如下:public ObjectBean(String clzName)clzName为要替换的Java Bean的类的全类名例如:要替换的是XxxBean,其全类名为:cn.ccb.csi.demo.XxxBean,则创建ObjectBean的代码为:O
41、bjectBean bean = new ObjectBean(“cn.ccb.csi.demo.XxxBean”);ObjectBean其他操作ObjectBean提供了若干复制和获取值的操作,具体操作请参见相应ObjectBean的API文档。注意事项前面说的“配置寻址服务信息”、“定义服务引用”涉及到得配置内容都在同一个文件进行。默认的配置文件名称为:reference-define.cr.xml,直接放到WEB-INF/classes下,CSI可以自动加载此文件;用户也可以根据需自己定义文件名,但请保持“cr.xml”的后缀名,用户自定义的文件需要在J2EE应用中的web.xml通过c
42、ontext-param进行说明,也可分成多个配置文件,但每个配置文件内定义reference只能引用本文件内定义的remote,不能引用其他配置文件定义的remote。示例如下:注意:这个名称是固定的! csiReferenceDefineLocation /WEB-INF/classes/reference-define-ligy.xml/WEB-INF/classes/reference-define-wangsy.xml cn.ccb.sup.csi.server.web.ServiceLoadContextListenerCSI核心配置CSI的核心配置都体现在J2EE应用中名为web
43、.xml的文件中,主要围绕context-param、listener、servlet和servlet-mapping四块内容进行。其中需要在自己web.xml中添加的context-param有: csiReferenceDefineLocation /WEB-INF/classes/reference-define-ligy.xml/WEB-INF/classes/reference-define-wangsy.xml此部分需要开发人员根据实际情况修改,其他不动。 csiServiceDefineLocation /WEB-INF/classes/service-define-ligy.x
44、ml/WEB-INF/classes/service-define-wangsy.xml csiSystemConfigLocation /WEB-INF/classes/csi-system-config.xml配置Web ListenerCSI提供一个Web listener,使用时只需将此Listener配置到web.xml,由Listener负责加载相关配置,并初始化CSI运行环境。配置如下: cn.ccb.sup.csi.server.web.ServiceLoadContextListener配置Http服务servletCSI提供的以http方式进行的服务交互,是通过在web.x
45、ml中增加一种servlet实现的。应用系统使用时,需在自己的web.xml中直接增加下面的配置信息。 HttpRemoteCallServlet cn.ccb.sup.csi.server.channel.http.HttpCommonServiceServlet 1 HttpRemoteCallServlet /http.csi 配置WebService服务servletCSI提供的以webservice形式进行的服务交互,是通过在web.xml中增加一种servlet进行的。应用系统使用时,需在自己的web.xml中直接增加下面的配置信息。 WebserviceRemoteCallSer
46、vlet cn.ccb.sup.csi.server.channel.ws.AxisCommonServiceServlet 1 WebserviceRemoteCallServlet /csiservices/*总结除了上面所述的几个配置文件,CSI还包括service-define.cs.xml和reference-define.cr.xml两类配置文件,这两类配置文件需要放置在具体应用中的classpath下,即在WEB-INF/classes下。CSI日志日志实现方式CSI中的日志是采用common-logging实现,它会自己寻找相关日志的实现类(如log4j等),开发人员只需正对日
47、志实现类进行配置即可完成日志的配置。如果不进行配置commons-logging会使用自己的日志实现类SimpleLog。日志格式CSI日志内容如下:【当前线程名】J2EE服务器当前线程名【日志头标识】SUP2.0_Csi_Client|Server_FrameworkVersion【请求编号】为每次请求的唯一编号 【记录时间】代表日志记录的时间,格式:yyyy-MM-dd HH:mm:ss.SSS 【协议类型】H|W|E 备注:H代表http,W代表WebService,E代表EJB 【IP地址关系】发起方主机地址 目标主机地址【命名空间+服务名+版本号方法名】 http:/cn.ccb:+
48、cn.ccb.sup.serviceA:+V1.0+#getUserName【行为】 T|E| EtcTrace|Exception|Etc 【类名】java类的名称进行日志记录的JAVA类名称【当前内存总量】以KByte为单位的数字 【当前内存空闲量】以KByte为单位的数字 【Phase描述】用于描述当前Phase【Interceptor描述】用于描述当前Interceptor 【信息】日志中的Message或其他想记录的信息等等。【异常栈信息】 Exception的堆栈信息。示例:2009-7-13 17:19:37 INFO(LoggerUtil.java:56) ExecuteThr
49、ead: 24 for queue: weblogic.kernel.DefaultSUP_CSI_Server_00c03bca22734d5801227369018f00182009-07-13 17:19:37.406http4-4http:/cn.ccb:cn.ccb.sup.csi.TestPerformancePojoHttpXml:#getSelfTcn.ccb.sup.csi.server.invoker.impl.DefaultServiceServerInvokerImpl9479372848307120nullnullServer invoke begin./*null*
50、/2009-7-13 17:19:37 INFO(LoggerUtil.java:56) ExecuteThread: 21 for queue: weblogic.kernel.DefaultSUP_CSI_Client_00c03bca22734d580122736901fc00192009-07-13 17:19:37.546http4-4http:/cn.ccb:cn.ccb.sup.csi.TestPerformanceSpringHttpXml:#getSelfTcn.ccb.sup.csi.client.invoker.impl.DefaultServiceClientInvok
51、erImpl9479372844880760(ResponseConvertPhase)ServiceClientResponseConvertInterceptorClient invoke begin.日志使用建议应用系统在配置日志时建议将CSI的日志使用单独一个文件进行记录,不要与应用日志混合在一起,以方便跟踪和分析问题。安装部署为了方便部署和使用,提供了CSI的发布包 后面见到“发布包”都是指CSI的发布包,其结构如下图所示:其各部分内容如下:3rd_party:存放CSI所依赖的第三方Jar包config:存放用户所需配置的配置文件模板和相应的xsd文件。core:存放CSI的Jar
52、包doc:存放CSI相关的说明文档。publish_ejb:存放ejb的发布脚本,该脚本根据不同应用服务器发来产生不同的ejb包。 下面根据不同的应用服务器来分别介绍CSI的安装和部署。Tomcat(5.0以上)以下分别对服务发布方和服务消费方的安装部署进行描述:服务发布方由于Tomcat只支持提供Web Container,因此使用Tomcat作为应用服务器无法将业务功能以EJB形式发布,只能通过WebService和Http两种方式。具体安装部署步骤如下:复制第三方Jar包:将发布包中“3rd_party”下的所有jar包复制到web应用的WEB-INF/lib下复制CSI Jar包:将“
53、core”下sup-csi-front.jar和sup-csi-core.jar复制到web应用的WEB-INF/lib目录下。修改Web.xml配置文件:修改方式参见: REF _Ref233628683 h * MERGEFORMAT CSI核心配置。服务消费方作为服务消费方可以使用使用服务发布方通过Http、WebService方式发布的服务。服务消费方安装部署步骤如下:复制第三方Jar包:将发布包中“3rd_party”下的所有jar包复制到web应用的WEB-INF/lib下复制CSI Jar包:将“core”下sup-csi-front.jar和sup-csi-core.jar复制
54、到Web应用程序的WEB-INF/lib中。若是Web应用则建议修改相应的web.xml,指定“引用”定义文件的位置。配置方式见 REF _Ref233642652 h * MERGEFORMAT CSI核心配置。Weblogic (8.1)以下分别对服务发布方和服务消费方的安装部署进行描述:服务发布方根据应用是web应用(发布结构为War)还是J2EE应用(发布结构为ear)应用,安装部署会有所差异,下面会分别进行描述。复制第三方Jar包:复制发布包中“3rd_party”下除了“stax-api-1.0.1.jar”外的其它所有Jar包。若应用为web应用,则将复制的Jar包存放到web应
55、用的WEB-INF/lib目录下。若应用为J2EE应用,则将复制的jar包存放到j2ee应用的APP-INF/lib目录下,如果没有这个目录则创建之。复制” stax-api-1.0.1.jar”:将该jar包复制并存放在%WL_HOME%/server/lib下。修改startWeblogic.cmd(startWeblogic.sh)中的classpath:将刚复制的” stax-api-1.0.1.jar”设置在classpath中,在classpath中须放置在%WEBLOGIC_CLASSPATH%之前,例如:CLASSPATH=%WL_HOME%serverlibstax-api-
56、1.0.1.jar;%WEBLOGIC_CLASSPATH%;.复制csi的jar包:复制发布包中的“core”下的sup-csi-core.jar、sup-csi-front.jar两个jar包。若应用为web应用,则将复制的jar存放web应用的WEB-INF/lib目录下。若应用为J2EE应用,则将复制的jar包存放到j2ee应用的APP-INF/lib目录下。若应用需要通过EJB的方式发布服务则必须部署安装相应的ejb,具体步骤如下:在发布包中的publish_ejb目录中运行createejb.cmd (createejb.sh)脚本,并输入jndi的名称,如:createejb j
57、ndiname1234;此处录入的jndi的名称为lookup时所用的jndi名称。复制产生的sup-csi-ejb.jar文件到j2ee应用的根目录下。修改application.xml,在其中加入如下配置信息:sup-csi-ejb.jar修改相应web应用的web.xml,修改内容见 REF _Ref233707862 h * MERGEFORMAT CSI核心配置。服务消费方根据应用是web应用(发布结构为War)还是J2EE应用(发布结构为ear)应用,安装部署会有所差异,下面会分别进行描述。复制第三方Jar包:复制发布包中“3rd_party”下除了“stax-api-1.0.1.
58、jar”外的其它所有Jar包。若应用为web应用,则将复制的Jar包存放到web应用的WEB-INF/lib目录下。若应用为J2EE应用,则将复制的jar包存放到j2ee应用的APP-INF/lib目录下,如果没有这个目录则创建之。复制” stax-api-1.0.1.jar”:将该jar包复制并存放在%WL_HOME%/server/lib下。修改startWeblogic.cmd(startWeblogic.sh)中的Classpath:将刚复制的” stax-api-1.0.1.jar”设置在classpath中,在classpath中须放置在%WEBLOGIC_CLASSPATH%之前
59、,例如:CLASSPATH=%WL_HOME%serverlibstax-api-1.0.1.jar;%WEBLOGIC_CLASSPATH%;.复制csi的jar包:复制发布包中的“core”下的sup-csi-core.jar、sup-csi-front.jar两个jar包。若应用为web应用,则将复制的jar存放web应用的WEB-INF/lib目录下。若应用为J2EE应用,则将复制的jar包存放到j2ee应用的APP-INF/lib目录下。修改相应web应用的web.xml,修改内容见 REF _Ref233707862 h * MERGEFORMAT CSI核心配置。Weblogic
60、 (9.2)以下分别对服务发布方和服务消费方的安装部署进行描述:服务发布方根据应用是web应用(发布结构为War)还是J2EE应用(发布结构为ear)应用,安装部署会有所差异,下面会分别进行描述。复制第三方Jar包:复制发布包中“3rd_party”下所有Jar包。若应用为web应用,则将复制的Jar包存放到web应用的WEB-INF/lib目录下。若应用为J2EE应用,则将复制的jar包存放到j2ee应用的APP-INF/lib目录下,如果没有这个目录则创建之。.复制csi的jar包:复制发布包中的“core”下的sup-csi-core.jar、sup-csi-front.jar两个jar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腺样体炎的健康宣教
- JJF(陕) 068-2021 矿用风速传感器校准规范
- 《马兜铃科蓼科》课件
- 艺术课程与学生心理健康的关系计划
- 应急管理与保安工作的整合计划
- 功能输注装置相关行业投资规划报告
- 基础研究与科学创新投资合同三篇
- 水环境管理与区域协调发展计划
- 《液压与气动》课件 1油箱
- 生物知识点微课制作计划
- 2024年广东省建筑安全员《B证》考试题库及答案
- 2024年教师资格证考试教育教学理论基础知识复习题库及答案(共200题)
- 2024年G1工业锅炉司炉理论考试1000题及答案
- 中华联合财产保险股份有限公司校招笔试题目
- 七年级上册生物2024-2025学年新人教版期末综合试卷(含答案)
- 进口再生铸造铝合金原料检验规程
- 软件开发公司代码备份与恢复方案
- 《货币银行学》课件
- 2024年人教版初二道德与法治上册期末考试卷(附答案)
- 3dmax整体设计说课稿
- 2024-2025形势与政策全册课件
评论
0/150
提交评论