不要為了位置,而放棄追求未來(lái)。

          位置可以放棄,未來(lái)必須努力!
          posts - 6, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2011年10月20日

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

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

          2011年9月28日

          Axis支持三種web  service的部署和開(kāi)發(fā),分別為:  
           
          1、Dynamic  Invocation  Interface  (  DII)  
           
          2、Stubs方式  
           
          3、Dynamic  Proxy方式  
           
          二、編寫(xiě)DII(Dynamic  Invocation  Interface  )方式web服務(wù)  
           
          1.編寫(xiě)服務(wù)端程序HelloClient  
           
           
          public  class  HelloClient  
          {  
                 public  String  getName(String  name)  
                 {  
                         return  "hello  "+name;  
                 }  
          }  
             
           
           
           
          2、將源碼拷貝到Axis_HOME下,重命名為  HelloClient.jws    
           
          3、訪問(wèn)連接http://localhost:8080/Axis/HelloClient.jws?wsdl,頁(yè)面顯示Axis自動(dòng)生成的wsdl    
           
          4、編寫(xiě)訪問(wèn)服務(wù)的客戶端  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();  
                         }  
                 }  
          }  
             
           
           
           
          三、編寫(xiě)Dynamic  Proxy方式訪問(wèn)服務(wù)    
           
          1、編寫(xiě)部署服務(wù)端程序,同上邊DII方式,本次仍使用上邊部署的HelloClient    
           
          2、編寫(xiě)代理接口    
           
           
          public  interface  HelloClientInterface  
          extends  java.rmi.Remote  
          {  
                 public  String  getName(String  name)  
                     throws  java.rmi.RemoteException;  
          }  
             
           
           
           
          3、編寫(xiě)并執(zhí)行客戶端程序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()  ;  
                         }  
                 }  
          }  
             
           
           
           
          四、編寫(xiě)wsdd發(fā)布web服務(wù),編寫(xiě)stub  client訪問(wèn)web服務(wù)    
           
          1、編寫(xiě)服務(wù)端程序server,SayHello.java,編譯server.SayHello.java    
           
           
          package  server;  
          public  class  SayHello  
          {  
                 public  String  getName(String  name)  
                 {  
                         return  "hello  "+name;  
                 }  
          }  
          2.編寫(xiě)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、編寫(xiě)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、發(fā)布服務(wù):    
           
          java  org.apache.Axis.client.AdminClient  deploy.wsdd    
           
          5、生成client  stub文件    
           
          a:方式1    
           
          將SayHello.java拷貝到Axis_HOME/下,重命名為SayHello.jws,    
           
          執(zhí)行下面的命令生存client  stub    
           
           
          java  org.apache.Axis.wsdl.WSDL2Java    
          -p  client    http://localhost:8080  
          /Axis/services/SayHello.jws?wsdl  
             
           
           
           
          b:方式2    
           
          執(zhí)行如下命令生成SayHello.wsdl    
           
           
          java  org.apache.Axis.wsdl.Java2WSDL  
          -oSayHello.wsdl  -lhttp://localhost:8080  
          /Axis/services/SayHello  -nsayhello  server.SayHello  
             
           
           
           
          執(zhí)行如下命令生成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、編寫(xiě)客戶端程序,編譯并執(zhí)行    
           
           
          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 賀瑞龍 閱讀(400) | 評(píng)論 (0)編輯 收藏

          2011年9月21日

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

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

          2011年9月20日

                  在使用java和Flex這兩個(gè)技術(shù)開(kāi)發(fā)項(xiàng)目的時(shí)候,為了方便,快速的開(kāi)發(fā),可以給Java的開(kāi)發(fā)工具中,添加Flex開(kāi)發(fā)的插件。具體操作如下:

                  1、在eclipse官網(wǎng)上下載eclipse3.3并安裝。

                  2、在adobe的網(wǎng)站上下載Flex Builder 3 進(jìn)行安裝。

                  3、在任意目錄建一個(gè)以下結(jié)構(gòu)的目錄:flex_plugin->eclipse->plugins , features

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

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

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

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

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

                  9、打開(kāi)eclipse進(jìn)入 window->preferences->flex->installed flex sdks ,設(shè)置一下你的flex sdk 路徑。至此我們以經(jīng)成功的安裝了 eclipse flex plugin 了。這個(gè)時(shí)候你可以卸載你的Flex Builder 3 了。

                  有人會(huì)說(shuō):我直接用Flex Builder 3 開(kāi)發(fā)就好了,何必如此麻煩。我的答案是:當(dāng)然,你完全可以直接用Flex Builder 3 進(jìn)行開(kāi)發(fā)。我這樣做的目的只是不想在開(kāi)發(fā)的時(shí)候開(kāi)著兩個(gè)完全可以合并到一起的ide。

           

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

          Jode是一種反編譯的工具,如果將其添加到eclipse中,可以方便程序員的開(kāi)發(fā)。
                  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編寫(xiě)的所以也不需要其他的什么組件來(lái)支持了,安裝好了可以看到Window => Preferences... => Java => Jode Decompiler選項(xiàng)卡。安裝好了再設(shè)置一下文件關(guān)聯(lián)就可以了,Window => Preferences... => General => Editors => File Associations找到"*.class"在"Associated editors"里面可以看到"Jode class file viewer"選中它再單擊Default按鈕就OK了.
                  隨后,就可以使用Jode查看包括Jar包內(nèi).class文件的源代碼了。


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

          2011年9月19日

            有這樣一句話:“老板只能給你一個(gè)位置,卻給不了你一個(gè)未來(lái)!”......

          posted @ 2011-09-19 23:21 賀瑞龍 閱讀(267) | 評(píng)論 (1)編輯 收藏

          主站蜘蛛池模板: 墨竹工卡县| 涪陵区| 那曲县| 稷山县| 平江县| 莱芜市| 绍兴县| 山西省| 佛教| 玉山县| 鄯善县| 德保县| 南通市| 宝清县| 垫江县| 赤水市| 巴东县| 东方市| 潼南县| 公安县| 怀远县| 广饶县| 辉南县| 清徐县| 申扎县| 莲花县| 灯塔市| 本溪市| 介休市| 昌宁县| 恩平市| 锦州市| 石首市| 耿马| 江都市| 筠连县| 高雄市| 喀喇沁旗| 宣威市| 丹东市| 朝阳市|