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自带的类的更多相关文章

  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. 工厂模式[3] 抽象工厂 Abstract Factory

    简介 1.简单工厂,或静态工厂,产品接口 定义:专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类或实现同一接口 优点:客户端可以直接消费产品,而不必关心具体产品的实现(不关心对象的 ...

  2. CSS3新增UI样式

    圆角,border-radius: 1-4个数字/1-4个数字,前面是水平,后面是垂直,不给“/”表示水平和垂直一样,举例如下: <head> <meta http-equiv=&q ...

  3. Android开发手记(20) 数据存储五 网络存储

    Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 安卓的网络存储比较简单,因为A ...

  4. c-函数指针(求奇数偶数的和)

    #include <stdio.h> /* 编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+...+1/n,当输入 n 为奇数时,调用函数1/1+1/3+...+1/n(利用 ...

  5. 99%Bug 修复方法

    以下仅支持4.0.3或之后的设备 (写在前面,这个教程需要安装两个app,且卸载后无法达到效果,所以有app drawer洁癖者慎重(你可以把它们隐藏起来么). 当然等官方rom更新或者安装最新三方r ...

  6. UICollectionView出现the behavior of the UICollectionViewFlowLayout is not defined because:

    2015-01-28 21:55:17.790 Demo[636:9351] the behavior of the UICollectionViewFlowLayout is notdefined ...

  7. Spring mvc 中有关 Shiro 1.2.3 配置问题

    Spring 版本:3.2.x,  4.0.x [问题说明] 首先介绍下配置出错情况: (1)项目中,Spring3 and Spring4 的 applicationContext.xml aop ...

  8. 重拾C++ 基础知识总结(一)

    1.使用gcc编译c++文件报错 proc1.cc:(.text+0x14): undefined reference to `std::cout' C++程序使用gcc命令只能编译,不能链接库文件 ...

  9. jquery mobile 栅格化

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  10. (转载)div最小宽度和自适应的实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...