<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    不要為了位置,而放棄追求未來。

    位置可以放棄,未來必須努力!
    posts - 6, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2011年9月20日

    Git是一個開源的分布式版本控制系統,提供了非常快捷和強大的項目版本管理功能。
    EGit項目是一個基于Eclipse插件開發的,很大程度上方便了我們Eclipse一族。
    Help-->Install New Software-->Add
    Egit
    http://download.eclipse.org/egit/updates/ 
    注意egit對應eclipse的版本~
    然后按默認操作,待確認重啟即完成安裝!

    posted @ 2011-10-20 17:10 賀瑞龍 閱讀(1800) | 評論 (2)編輯 收藏

    Axis支持三種web  service的部署和開發,分別為:  
     
    1、Dynamic  Invocation  Interface  (  DII)  
     
    2、Stubs方式  
     
    3、Dynamic  Proxy方式  
     
    二、編寫DII(Dynamic  Invocation  Interface  )方式web服務  
     
    1.編寫服務端程序HelloClient  
     
     
    public  class  HelloClient  
    {  
           public  String  getName(String  name)  
           {  
                   return  "hello  "+name;  
           }  
    }  
       
     
     
     
    2、將源碼拷貝到Axis_HOME下,重命名為  HelloClient.jws    
     
    3、訪問連接http://localhost:8080/Axis/HelloClient.jws?wsdl,頁面顯示Axis自動生成的wsdl    
     
    4、編寫訪問服務的客戶端  TestHelloClient.java    
     
     
    import  org.apache.Axis.client.Call;  
    import  org.apache.Axis.client.Service;  
    import  javax.xml.namespace.QName;  
    import  javax.xml.rpc.ServiceException;  
    import  java.net.MalformedURLException;  
    import  java.rmi.RemoteException;  
     
    public  class  SayHelloClient2  
    {  
           public  static  void  main(String[]  args)  
               {  
                   try  
                           {  
       String  endpoint  =  
       "http://localhost:8080/Axis/HelloClient.jws";  
     
           Service  service  =  new  Service();  
                           Call  call  =  null;  
     
                           call  =  (Call)  service.createCall();  
     
                           call.setOperationName(new  QName(  
                                 "http://localhost:8080/Axis/HelloClient.jws",    
                                             "getName"));  
                           call.setTargetEndpointAddress  
                                       (new  java.net.URL(endpoint));  
     
                           String  ret  =  (String)  call.invoke(new  Object[]    
                                       {"zhangsan"});  
                           System.out.println("return  value  is  "  +  ret);  
                   }    
                           catch  (Exception  ex)  
                           {  
                 ex.printStackTrace();  
                   }  
           }  
    }  
       
     
     
     
    三、編寫Dynamic  Proxy方式訪問服務    
     
    1、編寫部署服務端程序,同上邊DII方式,本次仍使用上邊部署的HelloClient    
     
    2、編寫代理接口    
     
     
    public  interface  HelloClientInterface  
    extends  java.rmi.Remote  
    {  
           public  String  getName(String  name)  
               throws  java.rmi.RemoteException;  
    }  
       
     
     
     
    3、編寫并執行客戶端程序TestHelloClient.java    
     
     
    import  javax.xml.rpc.Service;  
    import  javax.xml.rpc.ServiceFactory;  
    import  java.net.URL;  
    import  javax.xml.namespace.QName;  
     
    public  class  TestHelloClient    
    {  
           public  static  void  main(String[]  args)  
               {  
                   try  
                   {  
                           String  wsdlUrl  =    
                                       "http://localhost:8080/Axis/HelloClient.jws?wsdl";  
                           String  nameSpaceUri  =    
                                       "http://localhost:8080/Axis/HelloClient.jws";  
                           String  serviceName  =  "HelloClientService";  
                           String  portName  =  "HelloClient";  
     
                           ServiceFactory  serviceFactory  =    
                                       ServiceFactory.newInstance();  
                           Service  afService  =  
                                       serviceFactory.createService(new  URL(wsdlUrl),  
                     new  QName(nameSpaceUri,  serviceName));  
                           HelloClientInterface  proxy  =  (HelloClientInterface)  
                   afService.getPort(new  QName(  
                                           nameSpaceUri,  portName),    
                                                               HelloClientInterface.class);  
                           System.out.println  
                                       ("return  value  is  "+proxy.getName("john")  )  ;  
                   }catch(Exception  ex)  
                   {  
                           ex.printStackTrace()  ;  
                   }  
           }  
    }  
       
     
     
     
    四、編寫wsdd發布web服務,編寫stub  client訪問web服務    
     
    1、編寫服務端程序server,SayHello.java,編譯server.SayHello.java    
     
     
    package  server;  
    public  class  SayHello  
    {  
           public  String  getName(String  name)  
           {  
                   return  "hello  "+name;  
           }  
    }  
    2.編寫LogHandler.java  
    import  org.apache.Axis.AxisFault;  
    import  org.apache.Axis.Handler;  
    import  org.apache.Axis.MessageContext;  
    import  org.apache.Axis.handlers.BasicHandler;  
     
    import  java.util.Date;  
     
    public  class  LogHandler    
    extends  BasicHandler    
    {  
     public  void  invoke  
    (MessageContext  msgContext)    
    throws  AxisFault  
           {  
                   /**  Log  an  access  each  time    
                           we  get  invoked.  
                     */  
                   try  {  
                           Handler  serviceHandler  
                                       =  msgContext.getService();  
     
                           Integer  numAccesses  =  
       (Integer)serviceHandler.getOption("accesses");  
                           if  (numAccesses  ==  null)  
                                   numAccesses  =  new  Integer(0);  
    numAccesses  =  new  Integer  
    (numAccesses.intValue()  +  1);  
    Date  date  =  new  Date();  
     String  result  =    
     date  +  ":  service  "  +  
    msgContext.getTargetService()  +  
    "  accessed  "  +  numAccesses  +  "  time(s).";  
    serviceHandler.setOption  
    ("accesses",  numAccesses);  
    System.out.println(result);  
                   }  catch  (Exception  e)  
                           {  
                           throw  AxisFault.makeFault(e);  
                   }  
           }  
    }  
       
     
     
     
    3、編寫wsdd文件    
     
     
    deploy.wsdd  
    <deployment  xmlns=  
    "http://xml.apache.org/Axis/wsdd/"  
       xmlns:java=  
                                       "http://xml.apache.org/Axis/wsdd/providers/java">                        
         <handler  name="print"  type="java:LogHandler"/>    
     <service  name="sayhello"  
     provider="java:RPC">  
         <requestFlow>  
             <handler  type="print"/>  
         </requestFlow>  
       <parameter  name="className"    
       value="server.SayHello"/>  
       <parameter  name="allowedMethods"  
       value="*"/>      
     </service>  
    </deployment>  
       
     
     
     
    3、將編譯后的文件拷貝到Axis_HOME/WEB-INF/classes下,如:D:\tomcat\webapps\Axis\WEB-INF\classes    
     
    4、發布服務:    
     
    java  org.apache.Axis.client.AdminClient  deploy.wsdd    
     
    5、生成client  stub文件    
     
    a:方式1    
     
    將SayHello.java拷貝到Axis_HOME/下,重命名為SayHello.jws,    
     
    執行下面的命令生存client  stub    
     
     
    java  org.apache.Axis.wsdl.WSDL2Java    
    -p  client    http://localhost:8080  
    /Axis/services/SayHello.jws?wsdl  
       
     
     
     
    b:方式2    
     
    執行如下命令生成SayHello.wsdl    
     
     
    java  org.apache.Axis.wsdl.Java2WSDL  
    -oSayHello.wsdl  -lhttp://localhost:8080  
    /Axis/services/SayHello  -nsayhello  server.SayHello  
       
     
     
     
    執行如下命令生成client  stub    
     
     
    java  org.apache.Axis.wsdl.WSDL2Java    
    SayHello.wsdl    -p  client  
       
     
     
     
    生成的stub  client文件列表為:    
     
    1.SayHello.java    
     
    2.SayHelloService.java。    
     
    3.SayHelloServiceLocator.java    
     
    4.SayHelloSoapBindingStub.java    
     
    6、編寫客戶端程序,編譯并執行    
     
     
    public  class  SayHelloClient  
    {  
           public  static  void  main(String[]  args)  
               {  
                   try  
                           {  
           SayHelloService  service  =  new  client.  
                 SayHelloServiceLocator();  
                       client.SayHello_PortType    
                               client  =  service.getSayHello();  
                           String  retValue=client.getName("zhangsan");  
                           System.out.println(retValue);  
    }    
    catch  (Exception  e)  
    {  
     System.err.println  
     ("Execution  failed.  Exception:  "  +  e);  
                   }  
           }  
    }  

    posted @ 2011-09-28 15:47 賀瑞龍 閱讀(397) | 評論 (0)編輯 收藏

            Xml的語法和HTML類似,都以一對相互匹配的起始和結束標記符號來標識信息。但是二者之間功能不同,HTML是用于顯示數據信息,而XML的標記則是用于描述數據的性質和結構,兩者之間的區別如下:
            1.HTML將數據和其顯示效果混在一起,它是一種表現技術,定義如何顯示信息的標簽;而XML文檔只是存儲了數據和描述了數據之間的關系,并沒有規定如何顯示數據,即將數據和其顯示進行了分離。
            2.HTML的格式要求比較松散,而HTML解析器通常采用盡量解釋的機制,這樣容易造成同一個頁面在不同的瀏覽器中可能顯示出大不相同的結果。而XMlL是非常嚴格的標記語言,如:嚴格區分大小寫等問題。
            3.HTMl的標記集合是固定的,你不能在自己的應用中擴展HTML標記;而XML沒有提供一組事先已經定義好的標簽,只是提供了一個標準,可以按照這個標準來定義自己專用的標記,所以XML的標記是可以無限的擴展的,它可以用于描述各種應用領域的數據信息。
            4.XML允許粒度更新,不必在XML文檔每次有局部改變時都發送整個文檔的內容,只有改變的元素才必須從服務器發送到客戶機,而HTML卻不支持這樣的功能。
            總結:XML不是HTML的升級,也不是HTML的代替產品,雖然兩者之間相似,但他們的應用領域和范圍完全不同。HTML的最終版本是HTML 4.01,HTMl目前已經不是Web標記的標準,它已經被XHTML所取代,XHTMLHTML和XML的混合物,它全采取的是XML的語法和規則來編寫Web頁面。XHTML有效的結合了HTML的簡單性和XML的可擴展行,它所運用的標記和屬性基本上還是HTML中定義的標記。XML可以應用在金融、科研等各個領域,XHTML只是XML在Web領域的一種應用。

    posted @ 2011-09-21 12:02 賀瑞龍 閱讀(255) | 評論 (0)編輯 收藏

            在使用java和Flex這兩個技術開發項目的時候,為了方便,快速的開發,可以給Java的開發工具中,添加Flex開發的插件。具體操作如下:

            1、在eclipse官網上下載eclipse3.3并安裝。

            2、在adobe的網站上下載Flex Builder 3 進行安裝。

            3、在任意目錄建一個以下結構的目錄:flex_plugin->eclipse->plugins , features

            4、進入Flex Builder 3 的安裝目錄 將plugins目錄下所有以 com.adobe 開頭的文件或文件夾copy到上面建好的 plugins 目錄下。

            5、進入Flex Builder 3 的安裝目錄 將features目錄下所有以 com.adobe 開頭的文件或文件夾copy到上面建好的 features目錄下。

            6、在eclipse3.3下新建一個myplugins目錄,并將flex_plugin目錄剪切到myplugins目錄下。

            7、在eclipse3.3下新建一個links目錄,并在links目錄下新建一個flex_plugin.link文件,在文件中寫入: path=ECLIPSE_HOME\\myplugins\\flex_plugin

            8 、進入Flex Builder 3 的安裝目錄,將sdks目錄copy到其它的目錄下。

            9、打開eclipse進入 window->preferences->flex->installed flex sdks ,設置一下你的flex sdk 路徑。至此我們以經成功的安裝了 eclipse flex plugin 了。這個時候你可以卸載你的Flex Builder 3 了。

            有人會說:我直接用Flex Builder 3 開發就好了,何必如此麻煩。我的答案是:當然,你完全可以直接用Flex Builder 3 進行開發。我這樣做的目的只是不想在開發的時候開著兩個完全可以合并到一起的ide。

     

    posted @ 2011-09-20 21:03 賀瑞龍 閱讀(2416) | 評論 (0)編輯 收藏

    Jode是一種反編譯的工具,如果將其添加到eclipse中,可以方便程序員的開發。
            eclipse工具配置Jode反編譯工具步驟如下:
            eclipse:help => Software Updates => Find and Install... => Search for new features to install,單擊"New Remote Site..." 在URL欄輸入 http://www.technoetic.com/eclipse/update 然后下一步,就可以看到“jode decompiler plugin *.*”了,選上安裝就可以了,由于Jode Decompiler是純Java編寫的所以也不需要其他的什么組件來支持了,安裝好了可以看到Window => Preferences... => Java => Jode Decompiler選項卡。安裝好了再設置一下文件關聯就可以了,Window => Preferences... => General => Editors => File Associations找到"*.class"在"Associated editors"里面可以看到"Jode class file viewer"選中它再單擊Default按鈕就OK了.
            隨后,就可以使用Jode查看包括Jar包內.class文件的源代碼了。


    posted @ 2011-09-20 13:26 賀瑞龍 閱讀(404) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 国产美女视频免费观看的网站 | 一级毛片在线免费看| 国产免费播放一区二区| 人妻巨大乳hd免费看| 人妻仑乱A级毛片免费看| 免费一区二区无码视频在线播放| 日韩色视频一区二区三区亚洲| 亚洲欧美日韩中文字幕在线一区| 亚洲xxxx18| 亚洲无吗在线视频| 亚洲国产AV一区二区三区四区| 日日摸日日碰夜夜爽亚洲| 免费无码AV一区二区| 一级毛片免费播放视频| 中文字幕永久免费| 无码一区二区三区免费| 亚欧人成精品免费观看| 色窝窝免费一区二区三区| 国外成人免费高清激情视频| 国产jizzjizz免费看jizz| 亚洲日韩国产成网在线观看| 永久亚洲成a人片777777| 亚洲国产人成网站在线电影动漫 | 亚洲成AV人在线观看网址| 三上悠亚亚洲一区高清| 亚洲成在人天堂在线| 亚洲中文字幕在线无码一区二区| 亚洲中文字幕一区精品自拍| 国产精品亚洲av色欲三区| a高清免费毛片久久| 久久久国产精品无码免费专区| 免费能直接在线观看黄的视频| 午夜视频免费成人| 精品国产日韩亚洲一区| 久久久久亚洲精品影视| 亚洲avav天堂av在线网爱情| 久久亚洲精品无码av| 光棍天堂免费手机观看在线观看| 国产成人精品免费视频大全麻豆| 国产精品va无码免费麻豆| 国产∨亚洲V天堂无码久久久|