首先,建立一个WebService:


package garfield;

import javax.jws.WebService;
import javax.xml.ws.Endpoint; @WebService
public class MyJ6WebService {
        public String SayHello(String strName) {
                return "Hello ,"+strName+"!";
        }         public static void main(String[] args) {
                //发布WebService,注意如果提示:Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Address already in use: bind
                //则需要修改一下发布端口
                Endpoint.publish("http://localhost:8030/garfield.MyJ6WebService", new MyJ6WebService());
                System.out.println("WebService was published success !");
        }
}

启动Tomcat,然后运行,系统会输出:WebService was published success !,表示WebService已启动。

可以在浏览器中输入地址:http://localhost:8030/garfield.MyJ6WebService?wsdl

显示WebService信息:


  <?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://garfield/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://garfield/" name="MyJ6WebServiceService">
- <types>
- <xsd:schema>
  <xsd:import namespace="http://garfield/" schemaLocation="http://localhost:8030/garfield.MyJ6WebService?xsd=1" /> 
  </xsd:schema>
  </types>
- <message name="SayHello">
  <part name="parameters" element="tns:SayHello" /> 
  </message>
+ <message name="SayHelloResponse">
  <part name="parameters" element="tns:SayHelloResponse" /> 
  </message>
- <portType name="MyJ6WebService">
- <operation name="SayHello">
  <input wsam:Action="http://garfield/MyJ6WebService/SayHelloRequest" message="tns:SayHello" /> 
  <output wsam:Action="http://garfield/MyJ6WebService/SayHelloResponse" message="tns:SayHelloResponse" /> 
  </operation>
  </portType>
- <binding name="MyJ6WebServicePortBinding" type="tns:MyJ6WebService">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
- <operation name="SayHello">
  <soap:operation soapAction="" /> 
- <input>
  <soap:body use="literal" /> 
  </input>
- <output>
  <soap:body use="literal" /> 
  </output>
  </operation>
  </binding>
- <service name="MyJ6WebServiceService">
- <port name="MyJ6WebServicePort" binding="tns:MyJ6WebServicePortBinding">
  <soap:address location="http://localhost:8030/garfield.MyJ6WebService" /> 
  </port>
  </service>
  </definitions>

在WebService启动的状态下,在命令行中输入:


E:\Temp>wsimport -p garfield.garfieldj6wsclient -keep http://localhost:8030/garf
ield.MyJ6WebService?wsdl
parsing WSDL... generating code... compiling code... E:\Temp>

注意,一定要对应你发布的WebService信息!

然后系统会自动生成相关的接口文件,如下:

新建Java工程,将输出文件引入,然后建立测试类:


package xxh;

import garfield.garfieldj6wsclient.*;

public class WebClient {
        /**  
         * @param args  
         */  
        public static void main(String[] args) {   
             //创建一个客户端服务对象 
            MyJ6WebService myJ6WS = new MyJ6WebServiceService().getMyJ6WebServicePort(); 
            //调用服务方法,并得到方法返回值 
            String strTest = myJ6WS.sayHello("Garfield"); 
            //打印服务的返回值 
            System.out.println(strTest); 
        }   
}

在WebService运行情况下,运行客户端测试程序,输出:

Hello ,Garfield!

Java6 WebService学习的更多相关文章

  1. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  2. [未完成]WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

  3. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  4. 【Java】Java6 WebService的发布

    WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服务的发布方式也有着天壤之别,它们之间没有经验 ...

  5. webservice学习01:wsdl文档结构

    webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...

  6. Java6 WebService的发布(转)

      Java6 WebService的发布   转:http://lavasoft.blog.51cto.com/62575/227988/   WebService服务发布往往比较混乱,Axis2的 ...

  7. WebService学习总结(转)

    原文地址: WebService学习总结(一)——WebService的相关概念 WebService学习总结(二)——WebService相关概念介绍 WebService学习总结(三)——使用JD ...

  8. 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念

    wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...

  9. Java6 WebService的发布

    Java6 WebService的发布   WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服 ...

随机推荐

  1. easyui实现权限管理

    在js中: function makeEasyTree(data){ if(!data) return []; var _newData = []; //最终返回结果 var _treeArray = ...

  2. Servlet与JSP的异同

    1.什么是Servlet A Java servlet is a Java programming language program that extends the capabilities of ...

  3. git 管理多个私钥

    .ssh/config文件: host imspring hostname 182.92.153.2 IdentityFile ~/.ssh/id_rsa port 22

  4. POJ2718 递归套递归

    就是给你一个数,排列组合,然后问如何排列之间的差值最小. 我之前的想法是一个递归,然后两个for循环枚举L1和L2,结果TLE了,然后想了一下剪枝发现没办法剪,然后看了一下别人的代码,用了next_p ...

  5. EXCEL读写NPOI

    1.第一步: 可以使用ExcelAutomation进行EXCEl文件的读写,但是需要电脑上安装EXCEL,对EXCEL版本有要求,速度慢,有安全性,并发性问题,不适合网站类项目. 第二种方法: NP ...

  6. 【gcd】 最大公约数

    int gcd(int a,int b) { int r; ) { r=a%b; a=b; b=r; } return a; }

  7. Ubuntu系统如何卸载并安装新版本的jdk(permission denied问题)

    1.如果是自带的openjdk运行下面可以删除: sudo apt-get purge openjdk* 但是这种情况又不一定成功,有时候运行java -version发现还是可以运行的.证明删除不成 ...

  8. Block 再学习 !

    如何优雅的使用 Block? How Do I Declare A Block in Objective-C? 阮一峰的一句话解释简洁明了:闭包就是能够读取其它函数内部变量的函数 详情:http:// ...

  9. Python3基础 函数名.__doc__显示一个函数的单行与多行函数文档

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  10. 微信小程序实例教程(二)

    第五章:微信小程序名片夹详情页开发 今天加了新干货!除了开发日志本身,还回答了一些朋友的问题. 闲话不多说,先看下「名片盒」详情页的效果图: 备注下大致需求:顶部背后是轮播图,二维码按钮弹出模态框信息 ...