javaWebSerivice学习篇2-WebService的JDK自带的包开发

1.前提准备

  jdk的开发环境必须为1.6以及以上的版本(1.6及以上版本的jdk包含了javax.jws包).

2.创建提供服务的接口以及服务接口的实现类

  在发布webservice时,jvm必须要识别那些发布了那些服务,所以要对服务接口和服务接口实现类进行标识,就需要@WebService,@WebMethod两个注解。

  2.1 服务接口必须加注解@WebService,要提供的服务方法必须加@WebMethod,例子如下:

  @WebService
  public interface IHelloWorld {
    
      @WebMethod
      String helloWorld(String name);
  }

  2.2 服务实现类

    服务类必须加注解@WebService,例子如下:

    @WebService
    public class HelloWorldImp implements IHelloWorld {

    public String helloWorld(String name) {
            return "Hello:"+name;
        }

    }

3. 发布webService服务

  3.1要发布webService服务时,可以用EndPoint类,这个类提供的静态的方法publish(String address,Object serviceObject),

    当我们调用了EndPoint.publish发布了对象之后,那么服务端就会一直接受客户端的请求。

  例子如下:

      String url="http://localhost:8080/HelloworldService";

      IHelloWorld service = new HelloWorldImp();

      EndPoint.publish(url,serice);

  3.2验证WebService是否发布成功,可以在浏览器里面输入:http://localhost:8080/HelloworldService?wsdl观察是否有响应,如果有那就发布成功了。

4 客户端访问

  客户端是通过代理或者存根对象来访问服务对象的。客户端要想获取的代理或存根对象,可以有不同的方式,这里就用jdk的wsimport命令来生成一些代码,这些代码能够为我们提供服务的代理或存根对象。

  4.1.打开cmd,cd 要生成代码的文件夹,运行wsimprot命令,这里要价格keep参数,例如:wsimport -keep http://localhost:8080/HelloworldService?wsdl

  4.2.命令执行完后,把生成的代码拷贝到你的工程下。

  4.3 在生成的代码中有一个类实现了javax.xml.ws.Service。这个类能够为我们提供一个服务端的代理对象。例子中的这个类为HelloWorldImpService.生成代理对象如下:

    HelloWorldImpService service = new HelloWorldImpService();

      HelloWorldImp helloWorld = service.getHelloWorldImpPort();

    System.out.println(helloWorld.helloWorld("张三"));

    /**

    *Hello:张三

    */

  

  

时间: 2024-10-11 16:09:52

javaWebSerivice学习篇2-WebService的JDK自带的包开发的相关文章

使用 jdk自带ssl包 进行 https通讯双向认证

package com.iraid.test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.security.Key

webservice之jdk自带wsimport

wsimport -p com.xxxx.ws -keep http://ip:port/xxx?wsdl 执行此代码过后,会在当前目录下生成12个文件,6个java6个class 在自己工程里边新建好com.xxxx.ws包之后, 把生成的6个java文件复制进去, 下一步,开始写测试用例: 这里给出一个例子: public static void main(String[] args) { CreateAccountRequest req = new CreateAccountRequest

Android多线程编程之线程池学习篇(一)

Android多线程编程之线程池学习篇(一) 一.前言 Android应用开发中多线程编程应用比较广泛,而应用比较多的是ThreadPoolExecutor,AsyncTask,IntentService,HandlerThread,AsyncTaskLoader等,为了更详细的分析每一种实现方式,将单独成篇分析.后续篇章中可能涉及到线程池的知识,特此本篇分析为何使用线程池,如何使用线程池以及线程池的使用原理. 二.Thread Pool基础 进程代表一个运行中的程序,一个运行中的Android

转 JDK自带日志工具Logger的研究使用

之前写过一篇也是使用jdk自带的日志,本文为借鉴别人的另一种方法,我是java共享者,共创java未来!! 关于Logger最近放假在家无聊,研究一个开源框架时发现它频繁运用到了一个叫Logger的相关类来进行日志记录,作为log4j的忠实粉丝,在大多数项目上都看到的是log4j和commons-logging,这个Logger为何物?点开源码看,才发现是JDK自带的日志类,非第三方开源Jar包,于是便起了好奇之心,想看看这个Logger与log4j和commons-logging有何不同,翻了

我的2015碎碎念—学习篇、项目篇、工作篇、生活篇

去年在日记作了一次年度总结过后,我就对自己说以后每年年末都要做一次总结,这对自己是非常有帮助的,在这2015年最后一个月,是该整理下自己在即将结束的一年里的所得所失,给过去的自己盖个章,给未来的自己提个醒! 学习篇 为了吸收正能量,一开始就先总结下自己这一年的学习生涯吧. 从C#转JAVA, 可以说15年大半年的时间都花在了研究语言开发上,幸好最终出了一个小小的项目安慰自己,了了迷茫期间最重要的一件事(看来换工作不成问题了). 读书 学习总离不开看书,15年的读书情况可以分为两个阶段: 换工作之

J2EE学习篇之--Struts2技术详解

前面说到了Struts1的相关知识,下面来说一下Struts2的相关知识,我们知道现在Struts2使用的比Struts1多,Struts2已经替代Struts1成为主流的框架了... 摘要 Struts2是在WebWork2基础发展而来的.和struts1一样, Struts2也属于MVC框架.不过有一点大家需要注意的是:尽管Struts2和Struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的.那么既然有了struts1,为何还要推出struts

我的2014碎碎念—学习篇、实习篇、工作篇、生活篇

继去年作了一次年度总结过后,我就发誓说以后每年年末都要做一次总结,这对自己是非常有帮助的,无奈由于天性懒散,2015年都过去好几天了,才花了点心思整理下自己在过去一年里的所得所失,给过去的自己盖个章,给未来的自己提个醒! 学习篇 为了传播正能量,一开始就先总结下自己这一年的学习生涯吧. 发表研究生小论文可以说14年大半年的时间都花在了做研究生论文项目上面,幸好最终出了一篇小论文并得以发表录用,了了研究生期间最重要的一件事(看来毕业不成问题了). 读书学习总离不开看书,14年的读书情况可以分为两个

Linux新手入门书籍推荐 鸟哥的linux私房菜-基础学习篇

这本书写的不错.赞~\(≧▽≦)/~ 2017-02-24 下午,我开始在Linux下写第一个.c程序,在终端打印hello world.gcc 源代码文件之后,输出可执行文件,但是 当我输入文件名执行它的时候,却提示我 无法找到命令.于是我找百度,查资料,花了半个小时,终于找到解决方法了, 输入"./filename"即可.... 2017-02-25 我看<基础学习篇>这本书,在P158页下面的例题讲解中找到了昨天下午异常的解析.我就很是感慨,心想:要是早看这本书,半个

OC学习篇之---总结和学习目录

今天终于把OC的基础知识学习完了,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.下面就是这次学习OC的目录教程,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请OC老鸟来喷~~ 1.OC学习篇之---概述 2.OC学习篇之---第一个程序HelloWorld 3.OC学习篇之---类的定义 4.OC学习篇之---类的初始化方法和点语法的使用 5.OC学习篇之---类的三大特性(封装,继承,多态) 6.OC学习篇之[email protected]关键