WebService入门介绍及案例分析(1)

一、WebService入门概述:

1、什么是WebService?

WebService,就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而远程调用。

2、  WebService能做什么?

我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/SB/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下别人服务器上的一段代码而已

3、  为什么要学习WebService?

学习WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.

Web service可以理解为是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API

4、  那么如何才可以发布一个WebService呢?

(1)       Jdk1.6.0_21以后的版本发布一个WebService服务.。并通过地址栏查看它的wsdl文档.

(2)       通过wsimport生成客户端代码,调用并查看运行的结果.(学会如何调用是我们的重点).

(3)       从互联网上获取一个WebService并使用内容3调用并查看结果。

5、  wsinport工具说明:

1wsimportjdk(可以通过java –version检查你当前的版本号.如果版本太低可以安装高版本的jdk.)自带的,可以根据wsdl文档生成客户端调用代码的工具.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要.

2)常用参数为:

-d<目录>  -将生成.class文件。默认参数。

-s<目录> -将生成.java文件。

-p<生成的新包名> -将生成的类,放于指定的包下。

(wsdlurl) - http://server:port/service?wsdl,必须的参数。

 

二、WebService服务案例分析:

1)采用wsdl从互联网上获取一个ws的应用案例

方法一:

1)首先我们要在网络上找到一个IP地址来源搜索Web Service(是目前最完整的IP地址数据)

wsdl的地址,我们就来解析这个WSDLhttp://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

2)  我们要用cmd命令打开命令窗口,在路径C的根目录下创建一个文件夹ws,并且要进入到这个文件夹内,如下命令:

  

下面我们要在这个文件夹下导出我们找到的XSDL中的java文件,如下命令:

使用wsimport这个工具, -s生成java文件 .后面是wsdl文件地址。

那么这些操作后,我们在C的根目录下的ws文件夹下就可以找到我们导出的java文件了,如下图:

3)  我们要在Eclipse下创建一个新的JAVA项目,在该项目下我们要把所获取到的java文件全部复制到我们所建的项目下,如图效果:

4)  那么我们怎样来进行验证呢。要通过一个测试类来进行测试我们的内容是否成功,下面接着要在我们的项目下新建一个junit的测试类,如下代码:

[java]  view plain copy
  1. import cn.csdn.hr.ip.ArrayOfString;  
  2.   
  3. import cn.csdn.hr.ip.IpAddressSearchWebService;  
  4.   
  5. package cn.csdn.hr.junit;  
  6.   
  7. import java.util.List;  
  8.   
  9. import org.junit.Test;  
  10.   
  11. import cn.csdn.hr.ip.IpAddressSearchWebServiceSoap;  
  12.   
  13. public class AppMain {  
  14.   
  15.         @Test  
  16.   
  17.         public void test() {  
  18.   
  19.                   IpAddressSearchWebService ipasws = new IpAddressSearchWebService();  
  20.   
  21.                   IpAddressSearchWebServiceSoap ipwss = ipasws.getIpAddressSearchWebServiceSoap();  
  22.   
  23.                   ArrayOfString aos = ipwss.getCountryCityByIp("222.22.22.222");  
  24.   
  25.                   List<String> strs = aos.getString();  
  26.   
  27.                   for(String str:strs){  
  28.   
  29.                            System.out.println(str);;  
  30.   
  31.                   }  
  32.         }  
  33. }  


5)  通过测试我们所要的结果就是我们所测试的IP属于的地区,那么我们上面的测试类中要测试的IP"222.22.22.222"的测试显示效果如下图:

 

亲,你们看懂了吗。你也可以对其他的IP进行测试。

 

 

通过这个案例WSDL的导出,我们再来介绍另外一种使用Eclipse中的工具来导出WSDL中的java文件。

方法二:

1)  首先我们也要到网络上去找到一个天气预报Web ServiceWSDL文件,我们要通过Eclipse来导出它。WSDL文件的地址为:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

2)  打开Eclipse新建一个Java项目,切换到JavaEE视图中,

切换好后,点击工具栏中的后,再点击下面出现的窗口内的后,会出现以下的效果页面:

url的红色方框内输入我们提前在网络上找到的WSDL地址:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl之后点击按钮GOOK了!

我们就会进入如下界面:

在左侧选中WSDL的地址后得到右侧的界面效果。在下拉列表框中选择我们之前新建好的项目,之后我们再点击下面的按钮GO!。这样就哦了。我们就可以返回JAVA视图中了,在项目,可以看到一个新生成的wsdl文件,右击它选择Web Service下的Generate Client

会弹出以下的窗口:

点击Next . 进入以下界面:

最后点击finish就哦了!

在自己的项目中你就可以看到以下的效果了,自动的将java文件导入到项目中了。

3)  最后我们在来实现一个测试类进行测试就可以了!测试类的代码如下:

[java]  view plain copy
  1. package cn.csdn.hr.junit;  
  2.   
  3. import static org.junit.Assert.*;  
  4.   
  5. import java.rmi.RemoteException;  
  6.   
  7. import javax.xml.rpc.ServiceException;  
  8.   
  9. import org.junit.Test;  
  10.   
  11. import cn.com.WebXml.WeatherWS;  
  12.   
  13. import cn.com.WebXml.WeatherWSLocator;  
  14.   
  15. import cn.com.WebXml.WeatherWSSoapStub;  
  16.   
  17. public class AppMain {  
  18.   
  19.           @Test  
  20.   
  21.           public void test() throws ServiceException, RemoteException {  
  22.   
  23.                    WeatherWSLocator weatherWSLocator = new WeatherWSLocator();  
  24.   
  25.                    WeatherWSSoapStub wws = (WeatherWSSoapStub) weatherWSLocator.getPort(WeatherWSSoapStub.class);  
  26.   
  27.                      
  28.   
  29.                    String str[] = wws.getWeather("北京","");  
  30.   
  31.                    for(String str1:str){  
  32.   
  33.                             System.out.println(str1);  
  34.   
  35.                    }  
  36.   
  37.           }  
  38.   
  39. }  


测试的效果如下:

 

亲,你都明白了吗!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用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入门案例

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值