zoukankan      html  css  js  c++  java
  • Java6 WebService学习

    参考了网络上中资料,自己学习实践了一个Java6 WebService.

    首先,建立一个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!

  • 相关阅读:
    JavaScript 为字符串添加样式 【每日一段代码80】
    JavaScript replace()方法 【每日一段代码83】
    JavaScript for in 遍历数组 【每日一段代码89】
    JavaScript 创建用于对象的模板【每日一段代码78】
    html5 css3 新元素简单页面布局
    JavaScript Array() 数组 【每日一段代码88】
    JavaScript toUTCString() 方法 【每日一段代码86】
    位运算
    POJ 3259 Wormholes
    POJ 3169 Layout
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/2684361.html
Copyright © 2011-2022 走看看