在上文中,使用Java6做了一个最简单的WebService服务的实现,并通过Java6API发布了该服务。
在本文中,将看到如何使用Java6来做一个WebService服务,并如何使用Java6提供的开发工具来生成客户端代码,并调用服务。
一、服务端代码
package org.agrimony.ws.server;import javax.jws.WebService;
import javax.xml.ws.Endpoint;/*** Java6开发WebService入门* * @author agrimony* */
@WebService
public class Java6WS {/*** Web服务中的业务方法* * @return*/public String doSomething(String userName) {return userName+" is doing something!";};/*** @param args*/public static void main(String[] args) {// 发布一个WebServiceEndpoint.publish("http://192.168.2.126:8080/WebService/Java6WS",new Java6WS());}}

在浏览器中访问WSDL:http://192.168.2.126:8080/WebService/Java6WS?wsdl显示内容

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
<!--Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://server.ws.agrimony.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://server.ws.agrimony.org/" name="Java6WSService">
<types>
<xsd:schema>
<xsd:import namespace="http://server.ws.agrimony.org/" schemaLocation="http://192.168.2.126:8080/WebService/Java6WS?xsd=1"/>
</xsd:schema>
</types>
<message name="doSomething">
<part name="parameters" element="tns:doSomething"/>
</message>
<message name="doSomethingResponse">
<part name="parameters" element="tns:doSomethingResponse"/>
</message>
<portType name="Java6WS">
<operation name="doSomething">
<input message="tns:doSomething"/>
<output message="tns:doSomethingResponse"/>
</operation>
</portType>
<binding name="Java6WSPortBinding" type="tns:Java6WS">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="doSomething">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="Java6WSService">
<port name="Java6WSPort" binding="tns:Java6WSPortBinding">
<soap:address location="http://192.168.2.126:8080/WebService/Java6WS"/>
</port>
</service>
</definitions>

二、生成客户端代码
Java6提供生成WebService客户端代码工具,注意,在生成前需要先启动服务端,用法如下图:
命令:D:\Program Files\Eclipse_JEE\workspace\Java6WS\src>wsimport  -p  org.agrimony.ws.client  -keep  http://192.168.2.126:8080/WebService/Java6WS?wsdl

期中"-p" 后边接要生成的客户端代码的命令空间,wsimport用法格式:wsimport [options] <WSDL_URI>

生成后的项目目录如下:

三、写客户端的测试类

package org.agrimony.ws.test;import org.agrimony.ws.client.Java6WS;
import org.agrimony.ws.client.Java6WSService;public class TestClient {/*** 测试Java6 WS生成的客户端代码* * @param args*/public static void main(String[] args) {// 创建一个客户端服务对象Java6WS java6ws = new Java6WSService().getJava6WSPort();// 调用服务方法,并得到方法返回值String returnContent = java6ws.doSomething("旺财");// 打印服务的返回值
        System.out.println(returnContent);}}

注意,上面导入的类全是

org.agrimony.ws.client

包下面的。

调用输出结果:

旺财 is doing something!

参考原文地址:http://lavasoft.blog.51cto.com/62575/226581

转载于:https://www.cnblogs.com/agrimony/p/3253075.html

Java学习笔记——Java6开发WebService进阶相关推荐

  1. java学习笔记(二十八)——开发一个小项目(VMeeting3.0)

    上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...

  2. Java学习笔记项目三:开发团队调度软件(尚硅谷)

    JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. java学习笔记8--接口总结

    接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3- ...

  5. java学习笔记16--异常

    java学习笔记16--异常 异常 异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失, 所以在程序的设计中必须要考虑各种异常的发生,并正确的做 ...

  6. Java学习笔记之log4j与commons-logging转

    Java学习笔记之log4j与commons-logging<转> (2011-02-16 11:10:46) 转载▼ 标签: 杂谈 分类: 技术学习之其他 Logger来自log4j自己 ...

  7. 【java学习笔记day01】运行第一个程序Helloworld!

    java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...

  8. Java学习笔记系列-入门篇-计算机基础

    Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...

  9. Java学习笔记——流程控制

    Java学习笔记--流程控制 Day05 一.用户交互Scanner 1.Scanner对象 我们通过Java工具包java.util.Scanner中的Scanner类来获取用户的输入 基本语法:S ...

最新文章

  1. KL变换+PCA+关系
  2. 修改电脑开机时间记录6005_这些优化步骤,让你的电脑远离卡顿!
  3. 选择比努力更重要,面试新公司,从哪些细节能判断公司的前途?项目的好坏?...
  4. 【转载】Swift属性Property
  5. 关于长寿_FreeCodeCamp可以帮助您更长寿
  6. MaxCompute Spark 使用和常见问题
  7. 三星Galaxy S22系列屏幕规格曝光:顶配版将配备LTPO屏幕
  8. Unity中使用GameObject.Find、Transform.Find查找GameObject
  9. tensorflow学习笔记(1):使用入门
  10. 计算机杀病毒软件的应用有哪些,电脑杀蠕虫病毒软件有哪些
  11. Timesten安装
  12. 【计算机网络】网络层 : 数据交换方式 ( 电路交换 | 报文交换 | 分组交换 )★
  13. 学习笔记--数据通信与计算机网络
  14. linux 利用缓存文件.swp恢复源文件
  15. sql语句的编程手册(转)
  16. 计算机学院的迎新晚会,计算机学院举办“互联青春,拾梦翱翔”迎新晚会
  17. Lucas(卢卡斯)定理 【数论】
  18. Dpark的安装测试
  19. 如何选择加密软件保护公司数据安全
  20. 基于OSGi的Virgo Server最简单Spring web实例

热门文章

  1. 均差定义及性质(python实现)
  2. 第一章:1.1.5信号的分解
  3. mysql keepalived主主同步_KEEPALIVED+MYSQL主主同步=MYSQL高可用(HA)集群
  4. django--模板继承、组件、自定义标签
  5. linux权限管理(chown、chgrp、chomd)
  6. git仓库如果是私密的,每台电脑上导下来都需要进行ssh授权,所以一个项目不知一个ssh权限...
  7. 关于微信小程序的的总结
  8. 2017.1.19切题总结
  9. 分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)
  10. Unity 3D 一个简单的角色控制脚本