当前位置: 首页 > news >正文

「Java开发指南」如何从WSDL搭建一个Spring服务?

本教程的重点是如何从现有的WSDL构建Web服务,实现的WSDL是来自Apache CXF文档的HelloWorldWSDL协议 的简化版本。在本教程中,您将学习如何:

  • 导入WSDL协议
  • 部署并运行web服务

注意:自定义Spring代码生成需要MyEclipse授权。

一、 导入HelloWorld Web服务协议

当设计由多个使用web服务相互通信的应用程序组成的系统时,通常使用协议优先开发作为定义系统之间处理消息的一种方法,这包括识别服务操作和输入/输出参数。这被称为协议,它是使用WSDL文档定义的,服务消费者和生产者使用WSDL文档作为协议。

MyEclipse可以通过导入WSDL来实现web服务协议,当然这与为了消费服务而发现Web服务式不同的。

1. 创建取名为HelloWorldApp的全新MyEclipse Web项目。

2. 右键单击该项目,然后选择MyEclipse>Import WSDL。

添加一个新类

3. 在WSDL Location字段中添加以下WSDL URL:http://www.skywayperspectives.org/documentation/me4s90/wsdl/helloworld.wsdl,在Target Package字段中输入org.helloworld,然后点击Next。

导入WSDL URL

4. 接受默认的项目配置选项,然后单击Next。

配置选项

5. 接受默认的JAX-WS设置,并单击Next。

配置选项

6. 接受默认的Spring Capabilities设置,然后单击Next。

添加Spring功能

7. 接受应该添加到当前项目中库的默认设置,然后单击Next。

运行时依赖关系

8. 在Summary页面上单击Finish,生成实现web服务所需的源代码。

摘要页

二、审查生成的代码

Import Web Services向导通过生成与Web服务交互所需的Java类,帮助从应用程序内部使用外部SOAP Web服务。Import Web Services向导还通过从WSDL (SOAP Web服务协议)中提取服务的具体实现来帮助您实现服务协议(称为协议优先开发)。

默认情况下,源代码在生成文件夹中生成。由于该文件夹不存在,向导将创建该文件夹并将其设置为Eclipse源文件夹。生成的Java文件快照如下图所示,创建的所有构件都反映WSDL中的web服务定义。

从WSDL生成Java文件

org.apache.hello_world_soap_http.type包包含为WSDL实体生成的源代码,包的名称基于WSDL中指定的目标命名空间。

org.helloworld包包含生成的Spring服务接口、Spring服务实现(Spring @Service)和Junit测试。

org.helloworld.jaxws包包含生成的服务端点接口和服务客户端,服务端点接口应该有一个用于web服务操作的Java方法。

本教程关注的是根据WSDL实现web服务,而GreeterImpl.java是实现服务操作的Spring Service,在Java编辑器中打开该文件,可以看到每个服务操作都有一个方法,剩下唯一要做的就是用所需的功能实现该方法。

从WSDL生成Java文件

三、部署并运行Web服务

在实现服务方法之后,可以部署web项目并测试服务。

注意:您可以在不实现服务方法的情况下执行以下步骤,但是当您打开Web服务资源管理器时,将找不到要测试的服务。

  1. 右键选择该项目,然后选择Run As>MyEclipse Server Application,再选择MyEclipse Tomcat服务器。
  2. 部署完应用程序后,切换到JAX-WS Annotations视图,并Java编辑器中打开GreeterImpl.java文件 (org.helloworldpackage) 。
  3. 单击JAX-WS Annotations视图中的Open Web Service Explorer链接。这将在Web服务资源管理器中打开WSDL,可用于测试Web服务。如果您想在另一个测试工具中测试服务,则WSDL URL为:http://localhost:8080/HelloWorldApp/jaxws/IGreeterEndpoint?wsdl
http://www.jsqmd.com/news/1236748/

相关文章:

  • DeepSeek 使用技巧 图生文 VLM-R1 测评
  • 小程序毕设选题推荐:基于 SpringBoot 的高校后勤运维与互助服务管理系统 轻量化校园报修求助服务小程序【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 没有加盟!没有分部!亨得利全国直营门店的“三不”原则|深圳官方门店深度避坑指南 - 亨得利官方维修中心
  • Docker化DNSValidator:容器部署与持续验证工作流搭建
  • 2026年最新山东青州大桶装水生产线选购指南:源头厂家推荐与实用攻略 - mobible
  • 护眼钢化膜评测:建一套五维标准,看悟赫德观复盾实测表现如何
  • 如何用GodotInk创建复杂对话树:7个实用技巧与最佳实践
  • 码银的文章
  • 5分钟掌握:Boss Show Time - 求职者必备的招聘时间可视化神器
  • 2026全国金柏铝阳极氧化染料供应商测评战力榜精选推荐 - 招财兔数字员工
  • Kubedog 核心功能解析:Multitracker 如何同时监控多个 Kubernetes 资源
  • Camellia Redis代理深度剖析:提升缓存性能的终极方案
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(6):dnn实战之YOLO模型推理
  • RSpotify未来展望:即将推出的令人兴奋的新功能
  • 计算机毕业设计之疫情下高校宿舍管理系统
  • delete-docker-registry-image与官方API:何时选择哪种删除方式?
  • 2026嘉兴注册公司机构哪家靠谱?正规财税服务机构实力榜单 - 行业深度分析
  • 【顺造z11pro】三合一扫地头拆解,无良企业使用胶水粘合,暴力拆解
  • 郴州黄金回收避坑全攻略:正规商家排名及实操技巧 - 小仙贝贝
  • 昆山本地装修公司怎么选靠谱 2026 口碑整装品牌避坑干货汇总 - 装修大知识
  • Neovim-GTK性能优化技巧:让你的编辑器运行如飞
  • Kimi适合什么人用(2024真实用户行为图谱:覆盖学生/职场新人/中层管理者/自由职业者/科研人员)
  • 终极AI模型转换指南:探索PINTO_model_zoo的跨框架模型库
  • WinForm应用实战开发指南 - 如何实现自定义用户控件及自定义事件处理?
  • 腾讯混元发布Hyra智能体:让AI自己改进自己,科学发现进入递归时代
  • Chronotrains未来路线图:功能规划与社区发展展望
  • NUXTOR通知系统完整指南:实现原生桌面通知的最佳实践
  • node-cobol高级技巧:编译优化与性能提升指南
  • Unity Multiplayer连接管理:从UNet迁移到Netcode的完整指南
  • 省装协2025四季度海口别墅设计测评出炉:5家持证机构综合评分完整公示 - 互联网科技品牌测评