亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

二、CXF 入門示例

系統(tǒng) 2668 0

又一HelloWorld示例,老套的HelloWorld是入門經(jīng)典。也是基礎(chǔ)和必須掌握的,下面看看HelloWorldWebService,很簡單。

需要的jar包如下:

二、CXF 入門示例_第1張圖片

1、 HelloWorldService服務(wù)器端代碼

        
          package
        
         com.hoo.service;
      
        ?
      
        
          import
        
         javax.jws.WebParam;
      
        
          import
        
         javax.jws.WebService;
      
        
          import
        
         javax.jws.soap.SOAPBinding;
      
        
          import
        
         javax.jws.soap.SOAPBinding.Style;
      
        ?
      
        
          /**
        
      
        
           * <b>function:</b>CXF WebService 服務(wù)器端helloWorld示例
        
      
        
           * @author hoojo
        
      
        
           * @createDate 2011-3-16 上午08:29:07
        
      
        
           * @file HelloWorld.java
        
      
        
           * @package com.hoo.service
        
      
        
           * @project CXFWebService
        
      
        
           * @blog http://blog.csdn.net/IBM_hoojo
        
      
        
           * @email hoojo_@126.com
        
      
        
           * @version 1.0
        
      
        
           */
        
      
        @WebService
      
        @SOAPBinding(style = Style.RPC)
      
        
          public
        
        
          class
        
         HelloWorldService {
      
      
        
          public
        
         String sayHello(@WebParam(name = 
        
          "name"
        
        ) String name) {
      
        
          return
        
         name + 
        
          " say: Hello World "
        
        ;
      
            }
      
        }
      

要說明的是,上面的服務(wù)器端代碼運(yùn)用了JDK5的新特性Annotation,這個(gè)非常好用。

需要注意的是,如果不添加@SOAPBinding(style = Style. RPC )注解,將會(huì)出現(xiàn)異常:

    com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error	

  

還有就是如果jdk版本在1.6下,也會(huì)出現(xiàn)上面的異常。

解決辦法有:

1> 先用apt命令將主程序進(jìn)行編譯,然后生成一些java文件

2> 升級(jí)JDK到版本jdk1.6u17或以后

2、 發(fā)布HelloWorldService,代碼如下:

    
      package
    
     com.hoo.service.deploy;


    
      import
    
     javax.xml.ws.Endpoint;

    
      import
    
     com.hoo.service.HelloWorldService;


    
      /**
 * <b>function:</b> 發(fā)布CXF WebService
 * @author hoojo
 * @createDate 2011-3-17 上午09:24:33
 * @file DeployHelloWorldService.java
 * @package com.hoo.deploy
 * @project CXFWebService
 * @blog http://blog.csdn.net/IBM_hoojo
 * @email hoojo_@126.com
 * @version 1.0
 */
    
    
      public
    
    
      class
    
     DeployHelloWorldService {
	
	
    
      /**
	 * <b>function:</b>發(fā)布WebService
	 * @author hoojo
	 */
    
    
      public
    
    
      static
    
    
      void
    
     deployService() {
		System.out.println("
    
      Server start ……
    
    ");
		HelloWorldService service = 
    
      new
    
     HelloWorldService();
		String address = "
    
      http://localhost:9000/helloWorld
    
    ";
		Endpoint.publish(address, service);
	}
	
	
    
      public
    
    
      static
    
    
      void
    
     main(String[] args) 
    
      throws
    
     InterruptedException {
		
    
      //發(fā)布WebService
    
    
		deployService();
		System.out.println("
    
      server ready ……
    
    ");
		Thread.sleep(1000 * 60);
		System.out.println("
    
      server exiting
    
    ");
		
    
      //休眠60秒后就退出
    
    
		System.exit(0);
	}
}
  

運(yùn)行上面的main函數(shù)后,如果沒有發(fā)現(xiàn)異常?;拘畔⑹沁@樣的:

    Server start ……
2011-3-17 10:17:25 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http:
    
      //service.hoo.com/}HelloWorldServiceService from class com.hoo.service.HelloWorldService
    
    
2011-3-17 10:17:25 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http:
    
      //localhost:9000/helloWorld
    
    
2011-03-17 10:17:25.375:INFO::jetty-7.2.2.v20101205
2011-03-17 10:17:25.468:INFO::Started SelectChannelConnector@localhost:9000
server ready ……
  

那么你在WebBrowser中請(qǐng)求:

http://localhost:9000/helloWorld?wsdl 就可以看到xml內(nèi)容了。

3、 定制客戶端調(diào)用WebService的接口,這個(gè)接口中的方法簽名和參數(shù)信息可以從wsdl中的內(nèi)容看到,代碼如下:

        
          package
        
         com.hoo.service;
      
        ?
      
        
          import
        
         javax.jws.WebParam;
      
        
          import
        
         javax.jws.WebService;
      
        ?
      
        
          /**
        
      
        
           * <b>function:</b> 客戶端調(diào)用WebService所需要的接口
        
      
        
           * @author hoojo
        
      
        
           * @createDate 2011-3-17 上午09:00:00
        
      
        
           * @file IHelloWorldService.java
        
      
        
           * @package com.hoo.service
        
      
        
           * @project CXFWebService
        
      
        
           * @blog http://blog.csdn.net/IBM_hoojo
        
      
        
           * @email hoojo_@126.com
        
      
        
           * @version 1.0
        
      
        
           */
        
      
        @WebService
      
        
          public
        
        
          interface
        
         IHelloWorldService {
      
        
          public
        
         String sayHello(@WebParam(name = 
        
          "name"
        
        ) String name);
      
        }
      

4、 編寫客戶端調(diào)用WebService代碼

        
          package
        
         com.hoo.client;
      
        ?
      
        
          import
        
         org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
      
        
          import
        
         com.hoo.service.IHelloWorldService;
      
        ?
      
        
          /**
        
      
        
           * <b>function:</b>CXF WebService客戶端調(diào)用代碼
        
      
        
           * @author hoojo
        
      
        
           * @createDate 2011-3-16 上午09:03:49
        
      
        
           * @file HelloWorldServiceClient.java
        
      
        
           * @package com.hoo.client
        
      
        
           * @project CXFWebService
        
      
        
           * @blog http://blog.csdn.net/IBM_hoojo
        
      
        
           * @email hoojo_@126.com
        
      
        
           * @version 1.0
        
      
        
           */
        
      
        
          public
        
        
          class
        
         HelloWorldServiceClient {
      
      
        
          public
        
        
          static
        
        
          void
        
         main(String[] args) {
      
        
          //調(diào)用WebService
        
      
                JaxWsProxyFactoryBean factory = 
        
          new
        
         JaxWsProxyFactoryBean();
      
                factory.setServiceClass(IHelloWorldService.
        
          class
        
        );
      
                factory.setAddress(
        
          "http://localhost:9000/helloWorld"
        
        );
      
      
                IHelloWorldService service = (IHelloWorldService) factory.create();
      
                System.out.println(
        
          "[result]"
        
         + service.sayHello(
        
          "hoojo"
        
        ));
      
            }
      
        }
      

運(yùn)行上面的程序后,結(jié)果如下:

    2011-3-17 10:23:34 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http:
    
      //service.hoo.com/}IHelloWorldServiceService from class com.hoo.service.IHelloWorldService
    
    
[result]hoojo say: Hello World 
  

二、CXF 入門示例


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 簧片在线播放 | 国产91久久精品一区二区 | 国产福利一区二区三区在线视频 | 日韩欧美亚洲综合 | 久久伊人影视 | 成人毛片18岁女人毛片免费看 | 亚洲天天做夜夜做天天欢人人 | 亚洲91在线 | 国产91一区二这在线播放 | 真实偷清晰对白在线视频 | 国产真实偷人视频在线播放 | 毛片毛片毛片毛片出来毛片 | 国产综合另类小说色区色噜噜 | 四虎久久久 | 国产精品第二页 | 婷婷中文字幕 | 久久精品国产日本波多麻结衣 | 亚洲国产视频在线观看 | 九九视频免费在线观看 | 性xxx免费| 国产区在线观看视频 | 亚洲国产第一 | 日韩中文字幕精品 | 视频在线观看91 | 奇米影视奇米四色888av | 亚洲第成色999久久网站 | 成人看片黄a免费看视频 | 99热这里只有精品久久免费 | 夜夜爽www| 九9热这里真品 | 欧美xx毛片免费看 | 狠狠色成人综合网图片区 | 月婷婷色狠狠 | 97久久精品人人做人人爽 | 高清亚洲 | 日本精品一区 | 日日摸日日 | 成人a毛片手机免费播放 | 久久免费精品 | 人人艹在线 | 精品国产免费福利片 |