cxf webservice客户端更改请求地址_IDEA+PLSQL基于CXF框架发布webservice

536c027574ca7682a79418dd3bffc9b2.png

Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。

    CXF 包含了大量的功能特性,但是主要集中在以下几个方面:

支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL优先开发,也支持从 Java 的代码优先开发模式。容易使用:CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式,等等。支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。

    本例会以一个成品例子来演示代码结构与发布步骤,使用IDEA+Plsql+Weblogic+CXF框架发布SOAP服务的接口。

01

# 软件准备

1.  配置本地weblogic 12c服务

本地没有安装的自行下载

https://pan.baidu.com/s/1Y4Fs0TH962XI4waJAuRHdQ

提取码:s39t

若网盘失效则请去官网下载

https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html

安装方法参考

https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.4/wlsig/installing-oracle-weblogic-server-and-coherence-software.html#GUID-E4241C14-42D3-4053-8F83-C748E059607A

2.  Jdk版本1.8以上

3.  Maven

4.  Idea软件

02

# 开发概述

PLSQL+CXF框架+Idea软件发布webservice的方法。本例会以一个成品例子来演示代码结构与发布步骤。

03

# 步骤

9e4a9dece9c222c7a85cedef87ebc1e9.png

创建项目

2cb136cb6411e1302930c42067bb6948.png ed440dbf526b970a8d8ef56d71a9c7e3.png 9e4a9dece9c222c7a85cedef87ebc1e9.png

修改项目目录结构

右键src文件夹,取消其根目录的标记

bd68d3280fadf16fc6901488fd8aa3be.png

Src下分别创建java文件夹与resource文件夹,并将java文件夹标记为sources root,source文件夹设为resources root

273a53f9e8be6c5d40d29062b319bf7d.png 3d299001ce43754410af38c12cbc4cc8.png 9e4a9dece9c222c7a85cedef87ebc1e9.png

设置依赖

将此参考pom文件复制到项目根目录下,并右键pom.xml,标记为maven项目(pom.xml文件请详见下文网盘链接)

f5710b8de140a29604675026d1f018b3.png

Pom.xml文件中以下几个属性针对开发项的不一样要注意每次修改

78f8e10decf6b064d862e1337b8e26ff.png cde97a65c5926a9e4d7d37bd20a5dc3a.png 9e4a9dece9c222c7a85cedef87ebc1e9.png

复制代码样例

将cn.zip压缩包中的代码复制到java目录下,构建出java.cn.com.aaa目录结构

cd832a360d46e8545142239bcf99d4b2.png

将resource.zip中的文件复制到项目resource目录下,构造出如图所示结构

85c66ef32f6216c2500db8bdae16ca19.png

将WEB-INF.zip中的内容放到web=>WEB-INF目录下方,直接覆盖已有文件

ee54a704439a1a968683b7358138e80c.png

PLSQL安装包。本例中涉及到的数据库程序代码部署到开发环境数据库中

以上涉及到的文件及压缩包请详见链接:

https://pan.baidu.com/s/1txX46rvpLbc-OWhBHkIPuw

提取码:fyq9

9e4a9dece9c222c7a85cedef87ebc1e9.png

启动weblogic

Edit configuration,添加weblogic配置

452385af59d5365edcc4ea730c02d339.png

部署artifact

c367b920b6e526f28eca870ab617231a.png 50f60852761b51038cf2910d7bc8d84c.png 1a63880449a9ec6fa99c37ca64cf69c9.png

Ok退出后,点击debug

66c831ec2844ffeadc1613edd46b0587.png

点击debug后idea会做两件事,第一启动weblogic,第二部署项目artifact。在本例中,由于上文没有提数据源的事,所以weblogic的数据源是没有建的

所以会出现如图所示报错

b29d871b9c4bd652fc5dd849c6ab2c59.png

但是我们不需要理会,浏览器访问http://localhost:7001/console,登录后 服务=>数据源=>创建一般数据源,注意最后一步要为数据源勾选adminserver.

如图所示,项目根目录resource下的applicationContext.xml中jndiName属性的值要与新建的数据源名称一致

e82dcfb91db6f0547c7dd96c0af29645.png f2bd9efd9738fd8eb213b05a60dbee0a.png

创建完成后无需重启weblogic,重新部署artifact即可。

592face87f770b51a0748e21252d205c.png

效果:

8957179be8e1e954be0aacbfc7116695.png d550e5f79919e808bbfaf0cef33a0485.png 5438a38fecea2ff742d9f2c194f304f5.png

获取wsdl地址后即可去soapui测试了

862a163ae105ea5a0b1bf79879161d2d.png

04

# 代码解释

9e4a9dece9c222c7a85cedef87ebc1e9.png

服务地址根目录与服务名称

4adcf284ef30e89ce479b3808d0e745e.png 1b48bb9b83472772ad8d8fb430de9426.png 9e4a9dece9c222c7a85cedef87ebc1e9.png

与PLSQL程序的连接

d0b0cbc783bff375b3955bdf5cd70a5e.png 0877c559c989258bd684070d920417c9.png

本例中,程序主要内容是返回gl明细数据,x_gl_infos是一个数据库对象集合,需要根据它的结构写出对应的java类声明它的结构,根据实际开发需求四个类需要分别修改(建新的吧),若需求中无此类复杂结构,那么可以删掉。X_outTypehandler在这类复杂数据结构中是必须要有的,目的是将plsql返回的数据库对象装到java对象中。

1b33668bda9d91237286079c07159a5a.png

在mapper中设置select id,Dao类中调用select id,impl类中调用Dao.selectid

96e0ace588bb1c239a358dc283b897af.png 9e4a9dece9c222c7a85cedef87ebc1e9.png

参数结构

传入固定为msgheader+in参数明细

45bf4cfa70feb3bde97d765e15714b36.png

传出参数固定为部分中间件字段+OUTPUT类。OUTPUT类内容为out参数明细。其中的中间件字段无需改动。OUTPUT类需要重写,根据实际PLSQL程序的OUT参数结构来写。

22a16dc7b8e43aabbaed305e4216e140.png 2c2e5d9e35bf884712ab8f4b34b5c086.png

05

# 后续思考

1.尝试修改项目目录结构为java/erp/com/cux/gl

2.参照x_outTypehandler,传入参数为复杂集合的情况该怎么写

a978d8ef9a9bdacc6f0661de176f39fa.png

作者:代少秋

审核:董乃浩、姚昆

编辑:张玉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值