瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JAX-WS weService實例 c/s形式

          Posted on 2010-01-13 23:22 瘋狂 閱讀(2502) 評論(0)  編輯  收藏 所屬分類: webservice
          Java SE 6封裝了JAX-WS(Java API for XML-Web Services),而JAX-WS同時支持基于SOAP的Web服務和REST風格的Web服務,以下是個人寫的一個實例:
          首先是服務端:
             首先創建java項目或者web項目都可;
             首先編寫service端接口,WebServerInterface(必須已接口形式發布)
           
          @WebService(serviceName="testserver",targetNamespace="http://testserver.com")
          @SOAPBinding(style 
          = SOAPBinding.Style.RPC)
          public interface WebServerInterface {

              @WebMethod
              
          public TestUser getAllTestUsersByUserName(String userName);
          }

           TestUser.java
          package com.server;

          public class TestUser {

              
          private int id;
              
          private String usetName;
              
          private String pwd;
              
              
          public int getId() {
                  
          return id;
              }

              
          public void setId(int id) {
                  
          this.id = id;
              }

              
          public String getUsetName() {
                  
          return usetName;
              }

              
          public void setUsetName(String usetName) {
                  
          this.usetName = usetName;
              }

              
          public String getPwd() {
                  
          return pwd;
              }

              
          public void setPwd(String pwd) {
                  
          this.pwd = pwd;
              }

              
              
          }


          實現類:
          @WebService(endpointInterface="com.server.WebServerInterface")
          public class WebServerInterfaceImpl implements WebServerInterface {

              @Override
              
          public TestUser getAllTestUsersByUserName(String userName) {
                  
          // TODO Auto-generated method stub
                  return TestUserManager.getUserByName(userName);
              }


          }


          接下來是TestUserManager.java(用戶管理類)
          public class TestUserManager {

              
          public static List<TestUser> users;
              
          static{
                  users 
          = new ArrayList<TestUser>();
                  
          for(int i=0;i<=10;i++){
                      TestUser testUser 
          = new TestUser();
                      testUser.setId(i);
                      testUser.setUsetName(
          "userName_"+i);
                      testUser.setPwd(
          "pwd_"+i);
                      users.add(testUser);
                  }

              }

              
              
          public static TestUser getUserByName(String userName){
                  
          for(TestUser testUser:users){
                      
          if(testUser.getUsetName().equals(userName)){
                          
          return testUser;
                      }

                  }

                  
          return null;
              }

          }


          這樣server就編寫好了 然后就是發布server:當然如果是web項目的話可以通過servlet發布 當然要設置:load-on-startup 為1 在tomcat啟動時初始化發布
          public static void main(String[] args) {
                   Endpoint.publish(
          "http://127.0.0.1:10100/mywebserver"new WebServerInterfaceImpl());  
              }
          運行后webserver就發布好了 可以同ie訪問

          接下來是客戶端的訪問:
          客戶端可以同eclipse通過wsdl的url來自動生成
          也可以自己實現
          例如:
          URL url = new URL("http://127.0.0.1:10100/mywebserver?wsdl");
          QName qname = new QName(" Service service = Service.create(url, qname);  
          WebServerInterface = service.getPort(WebServerInterface .class);  
          然后就可以操作了

          代碼下載:
          /Files/freeman1984/src_server.rar /Files/freeman1984/src_client.rar

          主站蜘蛛池模板: 平安县| 民乐县| 余庆县| 松原市| 彭阳县| 威宁| 镇安县| 大埔县| 贵德县| 万安县| 津南区| 射洪县| 扎鲁特旗| 河池市| 昆山市| 建宁县| 兴义市| 潮州市| 麦盖提县| 定南县| 原阳县| 广水市| 新蔡县| 永兴县| 东莞市| 砚山县| 沙田区| 得荣县| 邻水| 东阿县| 栖霞市| 昌邑市| 保山市| 渝北区| 洮南市| 炉霍县| 漳浦县| 富民县| 乌拉特后旗| 临洮县| 塔河县|