热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

webService入门学习(一)

别的同事在忙这个东西,正巧我不会所以就找资源学了点。webService是什么东西可以去w3cSchool去看,但是那里只有.net的教程那么我这里就记

别的同事在忙这个东西,正巧我不会所以就找资源学了点。

webService是什么东西可以去w3cSchool去看,但是那里只有.net的教程

那么我这里就记录下我的学习

 

步骤提纲:

1创建发布接口的服务器

2确认接口服务器运行正常可被调用

3通过CMD构造客户端

4调用客户端产生的接口,运行接口方法。

 

 

 

1.1:首先在Eclipse上创建web Service project类型项目名为TheService

1.2:然后创建对外公布的接口如下

//WebService类型注解 SOAP类型注解
@WebService
@SOAPBinding(style
=Style.RPC)
public interface MyServiceInter {//方法注解@WebResult(name="addResult")public int add(@WebParam(name="a")int a ,@WebParam(name="b")int b);}

1.3:创建该接口的实体类,构造接口方法具体实现

//webService对应的接口类
@WebService(endpointInterface="com.dhh.Service.MyServiceInter")
@SOAPBinding(style
=Style.RPC)
public class MyService implements MyServiceInter {//对外公布接口的具体实现
@Overridepublic int add(int a, int b) {// TODO Auto-generated method stubSystem.out.println("a+b="+(a+b));return a+b;}}

1.4:创建服务器启动,这里使用main方法启动

public class Server {public static void main(String[] args) {//web路径String address="http://localhost:8888/myservice";//配置路径与该路径下的接口实现类Endpoint.publish(address, new MyService());System.out.println("publish success");}
}

 

 

2.1:该服务端启动之后可以在浏览器输入address+“?wsdl”查看接口内容。

如本例子中的:http://localhost:8888/myservice?wsdl

内容如下图:

 

 

3.1:先以Web Service project创建空项目 TheClient(注意这一系列操作的过程中服务端必须开启状态)

3.2:调用CMD命令输入命令

      wsimport -d "(客户端项目src路径)" -keep (接口调用url)

3.3:刷新项目,你就会看到你的项目下多了一个包,跟服务端的包类似如下图:

MyClient是我后来第四部创建的类,懒得删了,你生成的包应该是没MyClient的。

 

4.1创建客户端测试类如下图运行即可发现可调用服务器的方法了

public class MyClient {public static void main(String[] args) {//MyServiceService接口的具体实现类,用来回调接口MyServiceService myService = new MyServiceService(); //回调接口,以便使用接口方法MyServiceInter myServiceInter = myService.getMyServicePort();System.out.println(myServiceInter.add(28, 55));}
}

在客户端的操作必须在服务端正常运行下操作。

可查看服务端控制台,每次调用接口的时候服务端也会运行相应的具体实现方法。

 

转:https://www.cnblogs.com/blackdeng/p/7793138.html



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
author-avatar
无敌小志哥_443
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有