WebService簡單開發 apache-cxf-3.1.6環境配置

1.下載地址:
    http://www.apache.org/dyn/closer.lua/cxf/3.1.6
    
2.修改系統環境變量path
    解壓apache-cxf-3.1.6.zip文件夾
    將解壓後的文件夾下的bin目錄的路徑拷貝
    修改系統環境變量爲:D:\DevTools\Cxf\apache-cxf-3.1.6\bin
    打開Cmd命令行窗口執行wsdl2java   若是出現如下提示,證實配置成功
    
    C:\Users\xp>wsdl2java
    Missing argument: wsdlurl
    Usage : wsdl2java -fe|-front
    
    
3.開發webservice的服務端,有4步驟==================服務端
    1.導入jar包
	    asm-3.3.1.jar
            commons-logging-1.1.1.jar
            cxf-2.7.8.jar
            geronimo-servlet_3.0_spec-1.0.jar
            jetty-continuation-8.1.14.v20131031.jar
            jetty-http-8.1.14.v20131031.jar
            jetty-io-8.1.14.v20131031.jar
            jetty-security-8.1.14.v20131031.jar
            jetty-server-8.1.14.v20131031.jar
            jetty-util-8.1.14.v20131031.jar
            neethi-3.0.2.jar
            stax2-api-3.1.1.jar
            woodstox-core-asl-4.2.0.jar
            wsdl4j-1.6.3.jar
            xmlschema-core-2.0.3.jar
	  CXF:內置了jetty服務器



    2.開發interface
        package com.xp.cn;
        import javax.jws.WebService;
        
        /**
         * @author xp
         * @ClassName: WebServiceDemo
         * @Description: webService服務端
         * @date 2016年4月30日 下午8:27:44
         */
        @WebService
        public interface WebServiceDemo {
        	String sayHello(String str);
        }
        
        
        
    3.開發實現類
        /**
         * @author xp
         * @ClassName: WebServiceImpl
         * @Description: TODO
         * @date 2016年4月30日 下午8:39:22
         */
        @WebService(endpointInterface = "com.xp.cn.IWebServiceDemo", 
        			serviceName = "webServiceImpl")
        public class WebServiceImpl implements IWebServiceDemo {
        	@Override
        	public String sayHello(String name) {
        		return "你好" + name + new Date();
        	}
        }
        endpointInterface:指定接口的權限定名
        serviceName : 指定一個服務的名稱
        
        
        
       4.發佈Publish
               /**
         * @author xp
         * @Title: WebServicePublish.java
         * @Package com.xp.cn
         * @Description: TODO
         * @date 2016年4月30日 下午9:06:49
         * @version V1.0  
         */
        package com.xp.cn;
        
        import javax.xml.ws.Endpoint;
        
        /**
         * @author xp
         * @ClassName: WebServicePublish
         * @Description: TODO
         * @date 2016年4月30日 下午9:06:49
         *
         */
        public class WebServicePublish {
        	public static void main(String[] args) {
        		IWebServiceDemo demo = new WebServiceImpl();
        		//調用EndPoint發佈服務
        		Endpoint.publish("http://127.0.0.1/XXX", demo);
        	}
        }
        
        測試是否成功
        在瀏覽器中輸入:http://127.0.0.1/XXX出現下圖說明發布成功
        能夠點擊連接進入wsdl,接下來記得章節會具體將到wsdl

        

4.編寫WebService客戶端======================================客戶端
    調用cxf提供的wsdl2java工具,更具wsdl生成相應的java代碼
    任何語言只要實現webservice,都須要提供,並暴露wsdl
    
    操做以下圖:

1.圖java


2.圖web

找到wsdl2java所生成的類,其中有一個繼承了Service,該類的實實例能夠當成工廠來使用
調用Service子類實例的getXXXPort方法
/**
 * @author xp
 * @Title: ClientTest.java
 * @Package com.xp.cn.test
 * @Description: TODO
 * @date 2016年4月30日 下午10:37:23
 * @version V1.0  
 */
package com.xp.cn.test;

import com.xp.cn.IWebServiceDemo;
import com.xp.cn.WebServiceImpl;

/**
 * @author xp
 * @ClassName: ClientTest
 * @Description: 客戶端代碼
 * @date 2016年4月30日 下午10:37:23
 *
 */
public class ClientTest {
	
	public static void main(String[] args) {
		WebServiceImpl service = new WebServiceImpl();
		IWebServiceDemo webServiceImpl = service.getWebServiceImplPort();
		String sayHello = webServiceImpl.sayHello("xp");
		System.out.println(sayHello);
	}
}

控制檯輸出:你好xpSat Apr 30 22:48:19 CST 2016apache

這個時候不能改掉服務端的java虛擬機api

相關文章
相關標籤/搜索