1、写一个需要发布的接口

 package com.hb;

 import javax.jws.WebParam;
import javax.jws.WebService; @WebService
public interface IService { public void hello(@WebParam(name="username") String username);
}

备注: 一定要在接口名称上面用 @WebService 注解标示,参数@WebParam(name="username")只是说明在wsdl中指明参数的名字是username

2、对定义接口的实现

 package com.hb;

 import java.util.Date;
import javax.jws.WebParam;
import javax.jws.WebService; @WebService(endpointInterface="com.hb.IService")
public class ServiceImp implements IService{ @Override
public void hello(@WebParam(name = "username") String username) {
System.out.println("hello " + username + " now is " + new Date());
} }

备注: 一定要在接口名称上面用 @WebService 注解标示 ,里面一定要标注它对外的接口,在后面的客户端调用会体现出来。

3、发布对外提供的接口

 package com.hb;

 import javax.xml.ws.Endpoint;

 public class ServiceMain {

     public static void main(String[] args) {
String address = "http://172.16.32.72:7777/hb";
Endpoint.publish(address, new ServiceImp());
System.out.println("发布消息成功");
} }

在地址栏中输入  http://172.16.29.89:7777/hb?wsdl,就会出现一系列xml格式的文档,这个就表示发布的成功。

客户端

 package com.hb;

 import java.net.MalformedURLException;
import java.net.URL; import javax.xml.namespace.QName;
import javax.xml.ws.Service; public class Client { /**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException {
// TODO Auto-generated method stub
//创建访问wsdl服务地址的url
URL url = new URL("http://172.16.32.72:7777/hb?wsdl");
//通过Qname指明服务的具体信息
/*
* 第一个参数:接口的包名称,反序
* 第二个参数:实现类名+Service
* */
QName qname = new QName("http://hb.com/","ServiceImpService");
//创建服务
Service service = Service.create(url, qname);
//实现接口
IService iservice = service.getPort(IService.class);
//以上服务有问题,依然依赖于IMyServie接口
iservice.hello("huangbiao"); } }

备注:QName qname = new QName("http://hb.com/","ServiceImpService");两个参数分别对应上图中的targetNamespace 和 name。

如果在实现对外提供的接口类中没有@WebService(endpointInterface="com.hb.IService"),则会提示不认识这个接口。

上面全部操作不需要引入任何外部jar包。

web service 对外发布一个hello world接口(入门)的更多相关文章

  1. 几种远程调用接口协议简单比较和web service(SOAP)与HTTP接口的区别:

    什么是web service?       答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化. ...

  2. Web Service——CXF发布REST服务

    1. 什么是REST REST,英文representational state transfer(表象性状态转变)或者表述性状态转移,REST是web服务的一种架构风格,使用HTTP.URI.XML ...

  3. ASP.NET Web Service应用发布到IIs怎么做

    首先把你写的webservice Publish 到 一个文件夹 D:\MyWebService 下,在IIS下的website里面new一个虚拟目录,别名(Alias)随便输一个(这个别名是用于别的 ...

  4. 使用JAX-RS创建RESTful Web Service

    guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...

  5. Apache CXF实现Web Service(1)——不借助重量级Web容器和Spring实现一个纯的JAX-WS web service

    废话少说,先在Eclipse中新建一个Java Project (可以不是WTP的Dynamic Web Project) 选择Java Project 再看pom.xml 我们使用cxf 3.1.4 ...

  6. 【Java学习笔记】如何写一个简单的Web Service

    本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...

  7. 构建一个基于 Spring 的 RESTful Web Service

    本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...

  8. Web Service概念梳理

    计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些 ...

  9. BizTalk开发系列(二十六) 使用Web Service

    Web Service是在构建SOA平台中广泛使用的技术.在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求.业务流程可以发布为 Web Services 并使用外 ...

随机推荐

  1. kubernetes相关命令

    关闭防火墙 [关闭swap] 执行swapoff -a可临时关闭,但系统重启后恢复 编辑/etc/fstab,注释掉包含swap的那一行即可永久关闭 [关闭SeLinux] sed -i 's/SEL ...

  2. Mybatis学习笔记(七) —— 关联查询

    一.一对多查询 需求:查询所有订单信息,关联查询下单用户信息. 注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询.如果从用户信息出发查询用户下的订单信息则 ...

  3. Django 13 admin和auth系统、权限问题

    一.auth系统 auth系统的数据表 #User:User是auth模块中维护用户信息的关系模式(继承了models.Model), 数据库中该表被命名为auth_user. #Group:User ...

  4. vue.js 基础

      vuejs 遍历 数组, vue js 文章 http://www.cnblogs.com/libin-1/p/6851775.html https://zhuanlan.zhihu.com/p/ ...

  5. C语言把字符串转换为数字

    C当中有一些函数专门用于把字符串形式转换成数值形式. printf()函数和sprintf()函数 -->通过转换说明吧数字从数字形式转换为字符串形式: scanf()函数把输入字符串转换为数值 ...

  6. 微软原版SQL Helper

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...

  7. 原 tomcat的server.xml配置文件中三个端口的作用

    以Tomcat7.0为例, 在安装目录下. conf/server.xml 中可以配置三个端口号, 如果使用多个tomcat 是需要配置这三个. 该Connector 用于监听请求. protocol ...

  8. php数组·的方法-数组与数据结构

    /*数组与数据结构*/ //shuffle() 随机打乱数组 //array_push() 数组末尾添加元素 //array_pop() 数组末尾删除元素 //array_shift() 数组首位删除 ...

  9. OS---存储器

    1.存储器的层次结构 1.1 概述 理想情况下,存储器应当速度非常快.并且与处理器的速度匹配.容量大且价格低廉: 实际情况,无法满足上述三个条件: 于是在现在OS中,存储器采用  层次结构  来组织: ...

  10. Android Studio CMake 生成多个so

    生成多个so案例 这里stringFromJNI和stringFromJNI11分别是调用one-lib和two-lib两个so package com.test.ndkmoreso; import ...