1,建立自己的java项目my_service

2,建立包,com.hjg.service

3,创建类:

IMyService.java

  1. package com.hjg.service;
  2. import javax.jws.WebService;
  3.  
  4. @WebService
  5. public interface IMyService {
  6. int add(int a, int b);
  7. int minus(int a,int b);
  8. }

加上@Webservice注解
JAX-WS注解,表示java api xml for webservice。JDK自带API的XML格式的webservice

MyServiceImpl.java

  1. package com.hjg.service;
  2. import javax.jws.WebService;
  3. @WebService(endpointInterface="com.hjg.service.IMyService")
  4. public class MyServiceImp implements IMyService {
  5. @Override
  6. public int add(int a, int b) {
  7. System.out.println(a+"+"+b+" = "+(a+b));
  8. return (a+b);
  9. }
  10.  
  11. @Override
  12. public int minus(int a, int b) {
  13. System.out.println(a+"*"+b+" = "+(a*b));
  14. return (a*b);
  15. }
  16. }

endpointInterface指定接入点接口:接口必须存在

服务器端,MyService.java

  1. package com.hjg.service;
  2. import javax.xml.ws.Endpoint;
  3. public class MyServer {
  4. public static void main(String[] args) {
  5. //访问方式:http://localhost:8888/ns?wsdl
  6. String address = "http://localhost:8888/ns";
  7. Endpoint.publish(address, new MyServiceImp());
  8. }
  9. }

客户端,MyClient.java

  1. package com.hjg.service;
  2. import java.net.URL;
  3. import javax.xml.namespace.QName;
  4. import javax.xml.ws.Service;
  5. public class MyClient {
  6. public static void main(String[] args) {
  7. try {
  8. //服务WSDL Document的地址
  9. URL url = new URL("http://localhost:8888/ns");
  10. //Qnameqname是qualified name 的简写
  11. //构成:由名字空间(namespace)前缀(prefix)以及冒号(:),还有一个元素名称构成
  12. //由发布的wsdl可知namespace为http://service.hjg.com/,
  13. QName sname = new QName("http://service.hjg.com/","MyServiceImpService");
  14. Service service = Service.create(url, sname);
  15. IMyService ms = service.getPort(IMyService.class);
  16. int rs = ms.add(, );
  17. System.out.println(rs);
  18.  
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. }

浏览器访问http:localhost:8888/ns?wsdl 返回:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. - <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01.
  3. -->
  4. - <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01.
  5. -->
  6. - <definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.hjg.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://service.hjg.com/" name="MyServiceImpService">
  7. - <types>
  8. - <xsd:schema>
  9. <xsd:import namespace="http://service.hjg.com/" schemaLocation="http://localhost:8888/ns?xsd=1" />
  10. </xsd:schema>
  11. </types>
  12. - <message name="minus">
  13. <part name="parameters" element="tns:minus" />
  14. </message>
  15. - <message name="minusResponse">
  16. <part name="parameters" element="tns:minusResponse" />
  17. </message>
  18. - <message name="add">
  19. <part name="parameters" element="tns:add" />
  20. </message>
  21. - <message name="addResponse">
  22. <part name="parameters" element="tns:addResponse" />
  23. </message>
  24. - <portType name="IMyService">
  25. - <operation name="minus">
  26. <input wsam:Action="http://service.hjg.com/IMyService/minusRequest" message="tns:minus" />
  27. <output wsam:Action="http://service.hjg.com/IMyService/minusResponse" message="tns:minusResponse" />
  28. </operation>
  29. - <operation name="add">
  30. <input wsam:Action="http://service.hjg.com/IMyService/addRequest" message="tns:add" />
  31. <output wsam:Action="http://service.hjg.com/IMyService/addResponse" message="tns:addResponse" />
  32. </operation>
  33. </portType>
  34. - <binding name="MyServiceImpPortBinding" type="tns:IMyService">
  35. <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
  36. - <operation name="minus">
  37. <soap:operation soapAction="" />
  38. - <input>
  39. <soap:body use="literal" />
  40. </input>
  41. - <output>
  42. <soap:body use="literal" />
  43. </output>
  44. </operation>
  45. - <operation name="add">
  46. <soap:operation soapAction="" />
  47. - <input>
  48. <soap:body use="literal" />
  49. </input>
  50. - <output>
  51. <soap:body use="literal" />
  52. </output>
  53. </operation>
  54. </binding>
  55. - <service name="MyServiceImpService">
  56. - <port name="MyServiceImpPort" binding="tns:MyServiceImpPortBinding">
  57. <soap:address location="http://localhost:8888/ns" />
  58. </port>
  59. </service>
  60. </definitions>

web service1简单的例子用jdk自带的类的更多相关文章

  1. 使用JDK自带功能,实现一个简单的Web Service接口发布

    万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...

  2. webservice和wcf和web.api简单介绍

    转自:无废话的wcf等等 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Ser ...

  3. Spring-Context之一:一个简单的例子

    很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...

  4. C#调用存储过程简单完整例子

    CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME= ...

  5. Flask web开发 简单介绍

    Flask是一个基于python的轻量级web框架.当安装好后Flask后 (pip install flask),就可以开始使用了. 一.最简单的例子 1.新建目录,作为web应用的目录,如: mk ...

  6. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  7. javaweb简单登陆例子

    JSP+Servlet+JavaBean简单程序例子——用户名密码登陆,摘自<Tomcat&JavaWeb 技术手册>,亲测可用. IDE环境:MyEclipse10 1.建立We ...

  8. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...

  9. Jsp2.0自定义标签(第一天)——一个简单的例子

    今天是学习自定义标签的第一天 Jsp2.0以来,自定义标签的实现比传统标签的实现容易了很多,一般只要extends类SimpleSupport重写doTag()方法即可. 先看最简单的例子,输出一个H ...

随机推荐

  1. HttpClient4.0

    ****************************HttpClient4.0用法***************************** 1.初始化HttpParams,设置组件参数 //Ht ...

  2. excel数据导入到sqlserver中---------工作笔记

    调用页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys ...

  3. HTML5 File 对象

    实例说明1: <div class="container"> <input type="file" id="file" m ...

  4. iOS中的设计模式

    一. MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...

  5. 跟我学android- 创建运行环境(二)

    Android程序 需要在Android手机上运行,因此 Android开发时 必须准备相关运行,调试环境. Android真机(建议使用真机,速度快,效果好) Android虚拟设备(AVD) 使用 ...

  6. 数据库备份工具mysqldump重要参数详解

    1. --single-transaction InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:RE ...

  7. 资料Link集合

    Spark RDD API详解(一) Map和Reduce|  scala中Iterator的比较| 使用sbt构建scala应用| sbt常用命令| sbt更改默认ivy仓库位置| linux手动安 ...

  8. 终端编写c程序

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:JackAlan链接:http://www.zhihu.com/question/21483375/answer/322672 ...

  9. 3D touch 的 应用 --备用

    在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch技术.3D Touch的触控技术,被苹果称为新一代多点触控技术.其实,就是此前在Apple Watch上采用的For ...

  10. 『GitHub』Git常用命令记录

    Commands: git init 把当前目录变成Git可以管理的仓库 随后出现.git目录,这个目录是Git来跟踪管理版本库的git commit -m "change message& ...