首先,建立一个WebService:

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

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

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

显示WebService信息:

  1.  
  2.   <?xml version="1.0" encoding="UTF-8" ?> 
  3. <!--  Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. 
  4.   --> 
  5. <!--  Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. 
  6.   --> 
  7. <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">
  8. <types>
  9. <xsd:schema>
  10.   <xsd:import namespace="http://garfield/" schemaLocation="http://localhost:8030/garfield.MyJ6WebService?xsd=1" /> 
  11.   </xsd:schema>
  12.   </types>
  13. <message name="SayHello">
  14.   <part name="parameters" element="tns:SayHello" /> 
  15.   </message>
  16. <message name="SayHelloResponse">
  17.   <part name="parameters" element="tns:SayHelloResponse" /> 
  18.   </message>
  19. <portType name="MyJ6WebService">
  20. <operation name="SayHello">
  21.   <input wsam:Action="http://garfield/MyJ6WebService/SayHelloRequest" message="tns:SayHello" /> 
  22.   <output wsam:Action="http://garfield/MyJ6WebService/SayHelloResponse" message="tns:SayHelloResponse" /> 
  23.   </operation>
  24.   </portType>
  25. <binding name="MyJ6WebServicePortBinding" type="tns:MyJ6WebService">
  26.   <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
  27. <operation name="SayHello">
  28.   <soap:operation soapAction="" /> 
  29. <input>
  30.   <soap:body use="literal" /> 
  31.   </input>
  32. <output>
  33.   <soap:body use="literal" /> 
  34.   </output>
  35.   </operation>
  36.   </binding>
  37. <service name="MyJ6WebServiceService">
  38. <port name="MyJ6WebServicePort" binding="tns:MyJ6WebServicePortBinding">
  39.   <soap:address location="http://localhost:8030/garfield.MyJ6WebService" /> 
  40.   </port>
  41.   </service>
  42.   </definitions>

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

  1.  
  2. E:\Temp>wsimport -p garfield.garfieldj6wsclient -keep http://localhost:8030/garf
  3. ield.MyJ6WebService?wsdl
  4. parsing WSDL...
  5.  
  6. generating code...
  7.  
  8. compiling code...
  9.  
  10. E:\Temp>

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

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

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

  1.  
  2. package xxh;
  3.  
  4. import garfield.garfieldj6wsclient.*;
  5.  
  6. public class WebClient {
  7.         /**  
  8.          * @param args  
  9.          */  
  10.         public static void main(String[] args) {   
  11.              //创建一个客户端服务对象 
  12.             MyJ6WebService myJ6WS = new MyJ6WebServiceService().getMyJ6WebServicePort(); 
  13.             //调用服务方法,并得到方法返回值 
  14.             String strTest = myJ6WS.sayHello("Garfield"); 
  15.             //打印服务的返回值 
  16.             System.out.println(strTest); 
  17.         }   
  18. }

在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. CDockablepane风格设置

    屏蔽掉pane右上角的几个按钮 即将CDockablePane右上角的三个按钮屏蔽. 1            去掉关闭按钮 在CDockablePane的派生类中,重写方法CanBeClosed即可 ...

  2. redhat安装wine

    在基于RedHat或Debian的系统上安装 Wine 1.7 原创:LCTT https://linux.cn/article-3723-1.html Wine,Linux上最流行也是最有力的软件, ...

  3. 当浏览器窗体改变时,div跟着变动方法

    $(function(){ resizeU(); $(window).resize(resizeU); }); function resizeU() { var divkuangH = $(windo ...

  4. sphinx set several dates as filter

    http://sphinxsearch.com/forum/view.html?id=3187 > I think I may have found a bug. Yep, it looks w ...

  5. Android SERVICE后台服务进程的自启动和保持

    Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要(见不得人)的任务.而一些安全软件,如360等,会有结束进程的功能,如果不做Service的保持 ...

  6. Net 自定义Excel模板导出数据

    转载自:http://www.cnblogs.com/jbps/p/3549671.html?utm_source=tuicool&utm_medium=referral 1 using Sy ...

  7. word2016怎么从第三页开始设置页码

    在Word中,默认为一节,每节的页码是连续的,若想在一个Word文档中,前2页不设页码,从第3页开始设置页码,必须插入分节符,使文档分成两节,这样就可以单独设置页码.操作步骤:1.将光标放在第4页的首 ...

  8. Linux 添加Nginx 到 service 启动

    第一步: 编写nginx文件,放入/etc/init.d/ nginx文件内容如下,粉红色部分为自己实际nginx安装的路径. #!/bin/bash # nginx Startup script f ...

  9. Android studio怎么创建shape的XML文件

    drawable里面 new一个 Drawable resource xml 一般打开是selector ,把selector改成shape就OK了

  10. Xcode制作插件

    转发至:https://onevcat.com/2013/02/xcode-plugin/ Xcode 4 插件制作入门 本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.c ...