WebService简单案例实例

本周工作日即将结束,下周项目经理安排了一项任务可能需要使用到webservice,但本人之前尚未使用过,网上查了一些案例看了看 在此小记一篇留作日后回首也希望可以帮助到查看者朋友

1、什么是WebService?

WebService是一种远程调用技术,也叫XML Web Service WebService,是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独立的通信技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

SOAP是什么?

SOAP:全名为(Simple Object Access Protocol)简单对象存取协议。是XML Web Service的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他可以通过SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML 文档形式的调用方法的规范,他可以支持不同的底层接口,像HTTP/HTTPS或者SMTP

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网(WWW),是SAOP的基础

WSDL:(Web Services Description Language)WSDL是用于说明一组SOAP消息以及如何交换这些消息的XML文档

 WebService进阶调用可以看我这篇:使用CXF调用WSDL_cxf调用wsdl接口_辛丑年正月十五的博客-CSDN博客

--下面是正文

首先创建一个web项目来用做服务端

项目中一共三个.java文件 接口与类一目了然 WebServicePublish是一个发布类只有一个main方法

@WebService表示此类是一个元数据注释(JSR 181) 关于JSR181本文不做涉及

@WebMethod表示表示此方法是要被发布出去的方法,仅支持在使用@WebService注解标注的类中使用@WebMethod注解

这是上面接口的实现类 注意此类中必须也要使用@WebService注解标注 否则在发布的时候将报以下错误:

main方法是用来发布webservice的方法 正常运行一下就是发布了

发布的时候需要确保端口号咩有被占用(后面将书写怎样查端口占用并杀进程)

我们使用上面的URL地址访问下

http://localhost:8282/side_server/webservice?wsdl (一定要加上?wsdl)

OK 看到这个页面说明webservice就发布成功了  服务端已经写好 下面看看客户端如何调用吧

先创建一个web项目 用做客户端

使用下面命令生成客户端代码 注意看路径

进入eclipse刷新下client项目

这些.java文件是自动生成的 写了如何与服务端关联

下面自己建立一个.java文件 用来测试客户端调用服务端

OK整个过程就这么愉快的完成了 (案例比较浅显 还需要深入扩展)

下面说下查端口占用和杀进程

CMD打开DOS界面

查找指定端口:

                        netstat -ano|findstr "端口号"

查询端口被何进程使用:

                        tasklist|findstr "PID号" (每次端口被使用都会生成一个与之对应的PID,直到使用该端口的进程被杀死 PID标识才会消失,下次再使用该端口PID是会更改的)

杀死进程:

                        taskkill /pid "PID号" -t -f (-t表示结束进程,-f表示强制结束进程以及所有子进程)

WebService进阶调用可以看我这篇:使用CXF调用WSDL_cxf调用wsdl接口_辛丑年正月十五的博客-CSDN博客

  • 27
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
下面是一个使用Spring Boot搭建WebService简单入门案例: 1.创建Spring Boot项目,在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> ``` 2.创建一个WebService类,在其中定义需要暴露的方法: ```java @WebService public interface HelloWorldService { @WebMethod String sayHello(String name); } ``` ```java @WebService(endpointInterface = "com.example.demo.webservice.HelloWorldService") public class HelloWorldServiceImpl implements HelloWorldService { @Override public String sayHello(String name) { return "Hello " + name + "!"; } } ``` 3.配置WebService的端点和实现类: ```java @Configuration public class WebServiceConfig { @Bean public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet() { MessageDispatcherServlet servlet = new MessageDispatcherServlet(); servlet.setApplicationContext(new AnnotationConfigApplicationContext(WebServiceConfig.class)); servlet.setTransformWsdlLocations(true); return new ServletRegistrationBean<>(servlet, "/ws/*"); } @Bean(name = "helloWorld") public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema xsdSchema) { DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition(); wsdl11Definition.setPortTypeName("HelloWorldPort"); wsdl11Definition.setLocationUri("/ws"); wsdl11Definition.setTargetNamespace("http://www.example.com/demo/webservice"); wsdl11Definition.setSchema(xsdSchema); return wsdl11Definition; } @Bean public XsdSchema xsdSchema() { return new SimpleXsdSchema(new ClassPathResource("hello.xsd")); } } ``` 4.创建XSD文件定义WebService的参数和返回值: ```xml <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com/demo/webservice" xmlns:tns="http://www.example.com/demo/webservice" elementFormDefault="qualified"> <xs:element name="sayHelloRequest"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="sayHelloResponse"> <xs:complexType> <xs:sequence> <xs:element name="result" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> ``` 5.启动应用程序,访问http://localhost:8080/ws/helloWorld.wsdl,将会看到生成的WSDL文件。 6.使用SOAPUI等工具测试webservice。 以上就是一个简单的Spring Boot Webservice入门案例

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值