web service1简单的例子用jdk自带的类
1,建立自己的java项目my_service
2,建立包,com.hjg.service
3,创建类:
IMyService.java
- package com.hjg.service;
- import javax.jws.WebService;
- @WebService
- public interface IMyService {
- int add(int a, int b);
- int minus(int a,int b);
- }
加上@Webservice注解
JAX-WS注解,表示java api xml for webservice。JDK自带API的XML格式的webservice
MyServiceImpl.java
- package com.hjg.service;
- import javax.jws.WebService;
- @WebService(endpointInterface="com.hjg.service.IMyService")
- public class MyServiceImp implements IMyService {
- @Override
- public int add(int a, int b) {
- System.out.println(a+"+"+b+" = "+(a+b));
- return (a+b);
- }
- @Override
- public int minus(int a, int b) {
- System.out.println(a+"*"+b+" = "+(a*b));
- return (a*b);
- }
- }
endpointInterface指定接入点接口:接口必须存在
服务器端,MyService.java
- package com.hjg.service;
- import javax.xml.ws.Endpoint;
- public class MyServer {
- public static void main(String[] args) {
- //访问方式:http://localhost:8888/ns?wsdl
- String address = "http://localhost:8888/ns";
- Endpoint.publish(address, new MyServiceImp());
- }
- }
客户端,MyClient.java
- package com.hjg.service;
- import java.net.URL;
- import javax.xml.namespace.QName;
- import javax.xml.ws.Service;
- public class MyClient {
- public static void main(String[] args) {
- try {
- //服务WSDL Document的地址
- URL url = new URL("http://localhost:8888/ns");
- //Qnameqname是qualified name 的简写
- //构成:由名字空间(namespace)前缀(prefix)以及冒号(:),还有一个元素名称构成
- //由发布的wsdl可知namespace为http://service.hjg.com/,
- QName sname = new QName("http://service.hjg.com/","MyServiceImpService");
- Service service = Service.create(url, sname);
- IMyService ms = service.getPort(IMyService.class);
- int rs = ms.add(, );
- System.out.println(rs);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
浏览器访问http:localhost:8888/ns?wsdl 返回:
- <?xml version="1.0" encoding="UTF-8" ?>
- - <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01.
- -->
- - <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01.
- -->
- - <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">
- - <types>
- - <xsd:schema>
- <xsd:import namespace="http://service.hjg.com/" schemaLocation="http://localhost:8888/ns?xsd=1" />
- </xsd:schema>
- </types>
- - <message name="minus">
- <part name="parameters" element="tns:minus" />
- </message>
- - <message name="minusResponse">
- <part name="parameters" element="tns:minusResponse" />
- </message>
- - <message name="add">
- <part name="parameters" element="tns:add" />
- </message>
- - <message name="addResponse">
- <part name="parameters" element="tns:addResponse" />
- </message>
- - <portType name="IMyService">
- - <operation name="minus">
- <input wsam:Action="http://service.hjg.com/IMyService/minusRequest" message="tns:minus" />
- <output wsam:Action="http://service.hjg.com/IMyService/minusResponse" message="tns:minusResponse" />
- </operation>
- - <operation name="add">
- <input wsam:Action="http://service.hjg.com/IMyService/addRequest" message="tns:add" />
- <output wsam:Action="http://service.hjg.com/IMyService/addResponse" message="tns:addResponse" />
- </operation>
- </portType>
- - <binding name="MyServiceImpPortBinding" type="tns:IMyService">
- <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- - <operation name="minus">
- <soap:operation soapAction="" />
- - <input>
- <soap:body use="literal" />
- </input>
- - <output>
- <soap:body use="literal" />
- </output>
- </operation>
- - <operation name="add">
- <soap:operation soapAction="" />
- - <input>
- <soap:body use="literal" />
- </input>
- - <output>
- <soap:body use="literal" />
- </output>
- </operation>
- </binding>
- - <service name="MyServiceImpService">
- - <port name="MyServiceImpPort" binding="tns:MyServiceImpPortBinding">
- <soap:address location="http://localhost:8888/ns" />
- </port>
- </service>
- </definitions>
web service1简单的例子用jdk自带的类的更多相关文章
- 使用JDK自带功能,实现一个简单的Web Service接口发布
万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...
- webservice和wcf和web.api简单介绍
转自:无废话的wcf等等 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Ser ...
- Spring-Context之一:一个简单的例子
很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...
- C#调用存储过程简单完整例子
CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME= ...
- Flask web开发 简单介绍
Flask是一个基于python的轻量级web框架.当安装好后Flask后 (pip install flask),就可以开始使用了. 一.最简单的例子 1.新建目录,作为web应用的目录,如: mk ...
- Struts2的配置和一个简单的例子
Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...
- javaweb简单登陆例子
JSP+Servlet+JavaBean简单程序例子——用户名密码登陆,摘自<Tomcat&JavaWeb 技术手册>,亲测可用. IDE环境:MyEclipse10 1.建立We ...
- 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...
- Jsp2.0自定义标签(第一天)——一个简单的例子
今天是学习自定义标签的第一天 Jsp2.0以来,自定义标签的实现比传统标签的实现容易了很多,一般只要extends类SimpleSupport重写doTag()方法即可. 先看最简单的例子,输出一个H ...
随机推荐
- HttpClient4.0
****************************HttpClient4.0用法***************************** 1.初始化HttpParams,设置组件参数 //Ht ...
- excel数据导入到sqlserver中---------工作笔记
调用页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys ...
- HTML5 File 对象
实例说明1: <div class="container"> <input type="file" id="file" m ...
- iOS中的设计模式
一. MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...
- 跟我学android- 创建运行环境(二)
Android程序 需要在Android手机上运行,因此 Android开发时 必须准备相关运行,调试环境. Android真机(建议使用真机,速度快,效果好) Android虚拟设备(AVD) 使用 ...
- 数据库备份工具mysqldump重要参数详解
1. --single-transaction InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:RE ...
- 资料Link集合
Spark RDD API详解(一) Map和Reduce| scala中Iterator的比较| 使用sbt构建scala应用| sbt常用命令| sbt更改默认ivy仓库位置| linux手动安 ...
- 终端编写c程序
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:JackAlan链接:http://www.zhihu.com/question/21483375/answer/322672 ...
- 3D touch 的 应用 --备用
在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch技术.3D Touch的触控技术,被苹果称为新一代多点触控技术.其实,就是此前在Apple Watch上采用的For ...
- 『GitHub』Git常用命令记录
Commands: git init 把当前目录变成Git可以管理的仓库 随后出现.git目录,这个目录是Git来跟踪管理版本库的git commit -m "change message& ...