ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>成人在线中文字幕,性欧美xxxx免费岛国不卡电影,亚洲国产精品精华液网站http://www.aygfsteel.com/javalinjx/category/51731.htmlå…Ïx³¨æŠ€æœ¯ï¼Œçƒ­çˆ±ç”Ÿæ´»zh-cnWed, 21 Aug 2013 03:04:21 GMTWed, 21 Aug 2013 03:04:21 GMT60linux¾pȝ»Ÿä¹‹ä¸Šæ­å¾maven 之nexus服务½‹?/title><link>http://www.aygfsteel.com/javalinjx/archive/2013/08/21/403110.html</link><dc:creator>javalinjx</dc:creator><author>javalinjx</author><pubDate>Wed, 21 Aug 2013 01:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/javalinjx/archive/2013/08/21/403110.html</guid><wfw:comment>http://www.aygfsteel.com/javalinjx/comments/403110.html</wfw:comment><comments>http://www.aygfsteel.com/javalinjx/archive/2013/08/21/403110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javalinjx/comments/commentRss/403110.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javalinjx/services/trackbacks/403110.html</trackback:ping><description><![CDATA[<div style="margin-bottom: 15px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 12px; line-height: 18px;"><h3><span style="line-height: 1.8em;"><span style="font-weight: normal;">       ä»Šå¤©åˆšå¥½æœ‰ç‚¹æ—‰™—´åQŒå°±æƒ›_œ¨å…¬å¸çš„æœåŠ¡å™¨æ­å¾ä¸€ä¸ªç§æœï¼Œä»¥ä¾¿ä»¥åŽå¯ä»¥å”¯æˆ‘æ‰€ç”¨ï¼Œå½“ç„¶å‰ææ˜¯æœåŠ¡å™¨æœ€å¥½å¯ä»¥ä¸Š¾|‘,否则˜q˜éœ€è¦é…¾|®ä»£ç†æœåС噍åQŒå‰ä¸¤å¤©åˆšå¥½æŠŠæœåŠ¡å™¨çš„ç½‘¾lœç»™é…ç½®äº†ä¸‹åQŒè¿™è¾¹å°±ä¸è¯¦˜qîCº†åQå¤§å®¶ä¸€å®šç€æ€¥äº†å§ï¼Œ½Eå®‰åŠ¡ç‡¥åQŒè¿™ž®Þp¿›å…¥æ­£é¢˜ï¼ŒO(∩_∩)O~</span></span></h3></div><div class="wmqeeuq" id="blog_content" style="line-height: 1.8em; font-family: Helvetica, Tahoma, Arial, sans-serif;"><p style="margin: 0px; padding: 0px;">        linux安装˜q‡ç¨‹å’Œwindowä¸ÀLœº˜q˜æ˜¯å·®åˆ«æŒºå¤§çš„ã€?/p><p style="margin: 0px; padding: 0px;"><strong>1.下蝲nexus集成ç‰?/strong></p><p style="margin: 0px; padding: 0px;">到这个地æ–?a style="color: #108ac6; line-height: 1.5;">http://www.sonatype.org/nexus/go</a> ä¸‹è²åŽ‹ç¾ƒåŒ…ï¼Œæˆ‘è¿™è¾¹ä¸‹è½½çš„æ˜¯nexus-2.0.3-bundle.tar.gz˜q™ä¸ªç‰ˆæœ¬ã€?/p><p style="margin: 0px; padding: 0px;"><strong>2. 解压到相应的目录</strong></p><p style="margin: 0px; padding: 0px;">tar  -xzvf  nexus-2.0.3-bundle.tar.gz åQ?我这è¾ÒŽ”¾åœ?home/linjx/opendev/nexus-2.0.3目录下ã€?/p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"><strong>3. 讄¡½®ä¸ºç³»¾lŸæœåŠ?/strong></p><p style="margin: 0px; padding: 0px;">˜q™é‡Œéœ€è¦ä‹É用root权限åQŒå…·ä½“请çœ?a style="color: #108ac6; line-height: 1.5;">http://books.sonatype.com/nexus-book/reference/install-sect-service.html</a></p><p style="margin: 0px; padding: 0px;">½Ž€å•如下:</p><p style="margin: 0px; padding: 0px;"># cd  /etc/init.d</p><p style="margin: 0px; padding: 0px;"># cp  /home/linjx/opendev/nexus-2.0.3/bin/jsw/linux-x86-64/nexus ./nexus</p><p style="margin: 0px; padding: 0px;"># chmod 755 nexus</p><p style="margin: 0px; padding: 0px;"># chkconfig --add nexus</p><p style="margin: 0px; padding: 0px;"># chkconfig --levels 345 nexus on</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"><strong>4. </strong><strong>¾~–辑/etc/init.d/nexus</strong><strong>的文æœ?/strong></p><p style="margin: 0px; padding: 0px;">4.1. æ·ÕdŠ ä»¥ä¸‹å˜é‡</p><p style="margin: 0px; padding: 0px;">RUN_AS_USER=linjx    ## ˜q™ä¸ªä¸»è¦ä¸ÞZº†åŽé¢ä½¿ç”¨åQŒä¸éœ€è¦ä‹É用root用户启动服务</p><p style="margin: 0px; padding: 0px;">NEXUS_HOME=/home/linjx/opendev/nexus-2.0.3/</p><p style="margin: 0px; padding: 0px;">PLATFORM=linux-x86-64</p><p style="margin: 0px; padding: 0px;">PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"</p><p style="margin: 0px; padding: 0px;">4.2. 修改以下变量</p><p style="margin: 0px; padding: 0px;">WRAPPER_CMD="${PLATFORM_DIR}/wrapper"</p><p style="margin: 0px; padding: 0px;">WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf"</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">PIDDIR="${NEXUS_HOME}"</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"><strong>5. 启动服务</strong></p><p style="margin: 0px; padding: 0px;">切换会自å·Þqš„用户åQŒä¸éœ€è¦ä‹É用root用户åQ?/p><p style="margin: 0px; padding: 0px;"># service nexus start</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">˜q™ä¸ªå¤§å®¶å‡ºçŽ°ä»€ä¹ˆæƒ…å†µï¼Œæ˜¯ä¸æ˜¯å¤±è´¥äº†åQç•Œé¢ä¸Šå‡ºçް åQšCould not write pid file /etc/rc.d/init.d/./nexus.pid: Permission denied通过查看日志文äšgåQ?/p><p style="margin: 0px; padding: 0px;">fzdev#[/home/linjx/opendev/nexus-2.0.3/logs] cat w*  </p><p style="margin: 0px; padding: 0px;">wrapper  | ERROR: Could not write pid file /etc/rc.d/init.d/./nexus.pid: Permission denied</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">怎么办呢åQŒæ ¹æ®ä¿¡æ¯æ½Cºï¼Œnexus.pid无法写入åQŒåº”该还是权限问题,˜q™ä¸ªåº”该跟启动当前服务有兟ë€?/p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">查文æ¡?a style="color: #108ac6; font-size: 12px; line-height: 1.5;">http://books.sonatype.com/nexus-book/reference/install-sect-service.html</a>后发玎ͼŒä¸€æœ‰æ®µä¿¡æ¯æ²¡æœ‰é…ç½®åQ?/p><p style="margin: 0px; padding: 0px;">Change PIDDIR to a directory where this user has read/write permissions. In most Linux distributions, /var/run is only writable by root. The properties you need to add to customize the PID file location is "wrapper.pid". For more information about this property and how it would be configured in wrapper.conf, see: <a target="_top" style="color: #0088cc; line-height: 1.4em; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">http://wrapper.tanukisoftware.com/doc/english/properties.html</a></p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">大概意思就是服务启动时无法写入pidåQŒå°±æ˜¯è¯´init.d˜q™ä¸ªç›®å½•当前用户是没有权限写的,怎么办呢。可以自定义pid写入目录åQŒé‚£ä¹ˆåœ¨å“ªé‡Œé…ç½®å‘¢ï¼Œæ˜¯ä¸æ˜¯åˆæƒŒ™“v了wrapper.conf了,其他文档中也说明了ã€?/p><p style="margin: 0px; padding: 0px;">好吧åQŒé‚£ž®±å†åŠ ä¸ªé…ç½®å§ï¼Œ˜q™æ ·åQšPIDDIR="/home/linjx/piddir"</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">然后再启动服务,果然成功了!具体可以看看附äšg中的详细的日志!</p><p style="margin: 0px; padding: 0px;"><br /><img alt="" src="http://dl2.iteye.com/upload/attachment/0088/2747/6313fa03-5d0a-379d-92ad-2d104f79627f.jpg" title="点击查看原始大小囄¡‰‡" width="699" height="294" style="border: 0px; cursor: url(http://www.iteye.com/images/magplus.gif), pointer;" /><br /> </p><p style="margin: 0px; padding: 0px;"><strong>6. </strong><strong>启动之后åQŒå¯ä»¥ç™»å½•首™å‰|Ÿ¥çœ‹nexus的界é?/strong><strong><br /></strong></p><p style="margin: 0px; padding: 0px;">http://192.168.1.26:8081/nexus/index.html</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">默认½Ž¡ç†å‘˜ç”¨æˆ·å/密码: admin/admin123</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"><br /><img alt="" src="http://dl2.iteye.com/upload/attachment/0088/2749/3706bc1b-5c60-314b-b7d1-cf87d056c810.jpg" title="点击查看原始大小囄¡‰‡" width="700" height="316" style="border: 0px; cursor: url(http://www.iteye.com/images/magplus.gif), pointer;" /><br /> </p></div><img src ="http://www.aygfsteel.com/javalinjx/aggbug/403110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javalinjx/" target="_blank">javalinjx</a> 2013-08-21 09:32 <a href="http://www.aygfsteel.com/javalinjx/archive/2013/08/21/403110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用leiningen搭徏clojure开发环å¢?/title><link>http://www.aygfsteel.com/javalinjx/archive/2013/07/03/401170.html</link><dc:creator>javalinjx</dc:creator><author>javalinjx</author><pubDate>Wed, 03 Jul 2013 05:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/javalinjx/archive/2013/07/03/401170.html</guid><wfw:comment>http://www.aygfsteel.com/javalinjx/comments/401170.html</wfw:comment><comments>http://www.aygfsteel.com/javalinjx/archive/2013/07/03/401170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javalinjx/comments/commentRss/401170.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javalinjx/services/trackbacks/401170.html</trackback:ping><description><![CDATA[<div style="margin-bottom: 15px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 12px; line-height: 18px;"><h3><span style="line-height: 1.8em;">首先来讲下Leiningen是什么东东?</span></h3></div><div class="wmqeeuq" id="blog_content" style="line-height: 1.8em; font-family: Helvetica, Tahoma, Arial, sans-serif;"><p style="margin: 0px; padding: 0px;">Leiningen是一个用于自动化åQˆæž„建)clojure™å¹ç›®çš„工兗÷€?/p><p style="margin: 0px; padding: 0px;">它可以做刎ͼš</p><p style="margin: 0px; padding: 0px;">    创徏新项ç›?/p><p style="margin: 0px; padding: 0px;">    ½Ž¡ç†ä½ çš„™å¹ç›®çš„依赖关¾p?/p><p style="margin: 0px; padding: 0px;">    ˜qè¡Œ‹¹‹è¯•</p><p style="margin: 0px; padding: 0px;">    ˜qè¡Œä¸€ä¸ªREPL(è¯Õd–-求å€?打印循环:read-eval-print loop)</p><p style="margin: 0px; padding: 0px;">    ¾~–译java源码</p><p style="margin: 0px; padding: 0px;">    ˜qè¡Œ™å¹ç›®</p><p style="margin: 0px; padding: 0px;">    为项目äñ”生一个Maven风格的POMæ–‡äšg</p><p style="margin: 0px; padding: 0px;">    ä¸ÞZº†éƒ¨çÖvåQŒç¼–译和打包™å¹ç›®</p><p style="margin: 0px; padding: 0px;">    发布¾cÕdº“到Maven仓库åQŒä¾‹å¦‚Clojars</p><p style="margin: 0px; padding: 0px;">    ˜qè¡ŒClojure¾~–写的自定义的自动化ä»ÕdŠ¡åQˆç§°ä¸ºLeiningen插äšgåQ?/p><p style="margin: 0px; padding: 0px;">    ... 具体可以查看国内的大ç‰?killme2008)¾˜»è¯‘çš?a style="color: #108ac6;">Leiningen教程中文ç‰?/a>的详¾l†ä»‹¾lã€?/p><p style="margin: 0px; padding: 0px;">好些话说多了点,大家别着急啊åQŒé©¬ä¸Šå°±åˆ‡å…¥ä¸»é¢˜åQ?/p><p style="margin: 0px; padding: 0px;">1. 下蝲安装Leiningen</p><p style="margin: 0px; padding: 0px;">   linux: </p><p style="margin: 0px; padding: 0px;">        1. ¼‹®ä¿ä½ æ˜¯jdk 6 版本以下的ã€?/p><p style="margin: 0px; padding: 0px;">        2. <a title="lein" target="_blank" style="color: #108ac6;">下蝲脚本lein</a></p><p style="margin: 0px; padding: 0px;">        3. 把lein加入下当前的$path下(~/bin 是最好的选择åQ?/p><p style="margin: 0px; padding: 0px;">        4. 赋可执行权限åQˆchmod 755 ~/bin/leinåQ?/p><p style="margin: 0px; padding: 0px;">  windows:</p><p style="margin: 0px; padding: 0px;">        1. 可以直接下蝲打包好的文äšgåQŒåœ°å€æ˜¯ï¼š<a target="_blank" style="color: #108ac6;">Leiningen for windows</a></p><p style="margin: 0px; padding: 0px;">        2. 点击下蝲好的*.exeæ–‡äšg˜q›è¡Œå®‰è£…</p><p style="margin: 0px; padding: 0px;">        3. 安装好后åQŒå¯ä»¥æŸ¥çœ‹çŽ¯å¢ƒå˜é‡ä¸­ä¼šæœ‰ç›¸åº”çš„å˜é‡è¢«è®„¡½®å¥½äº†åQ?/p><p style="margin: 0px; padding: 0px;">         lein.bat is added to your PATH variable.</p><p style="margin: 0px; padding: 0px;">        LEIN_JAVA_CMD is set to point to your selected JDK, and the :java-cmd property is set in your              user profile in profiles.clj.</p><p style="margin: 0px; padding: 0px;">        </p><p style="margin: 0px; padding: 0px;">        接下来,打开命ä×o½H—口åQŒè¾“入命令:lein self-install  åQŒä¼šè‡ªåŠ¨ä¸‹è²å®‰è£…leiningen 相关的jaræ–‡äšgã€?/p><p style="margin: 0px; padding: 0px;">       </p><p style="margin: 0px; padding: 0px;">       éªŒè¯ä¸‹å®‰è£…成果: 在命令窗口中输入lein repl åQŒä¼šè‡ªåЍ˜qžä¸ŠnREPL serveråQŒè¿›å…¥repl模式åQŒå¦‚下所½Cºï¼š</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">      </p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">Shell代码 <embed wmode="transparent" src="http://javalinjx.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=C%3A%5CUsers%5Clinjx%3Elein%20repl%0AnREPL%20server%20started%20on%20port%2021912%0AREPL-y%200.2.0%0AClojure%201.5.1%0A%20%20%20%20Docs%3A%20(doc%20function-name-here)%0A%20%20%20%20%20%20%20%20%20%20(find-doc%20%22part-of-name-here%22)%0A%20%20Source%3A%20(source%20function-name-here)%0A%20Javadoc%3A%20(javadoc%20java-object-or-class-here)%0A%20%20%20%20Exit%3A%20Control%2BD%20or%20(exit)%20or%20(quit)%0A%0Auser%3D%3E" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="" title="收藏˜q™æ®µä»£ç " style="color: #108ac6;"><img src="http://javalinjx.iteye.com/images/icon_star.png" alt="收藏代码" style="border: 0px;" /></a></div></div><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;"><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">C:\Users\linjx>lein repl  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">nREPL server started on port <span style="color: #c00000;">21912</span>  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">REPL-y <span style="color: #c00000;">0.2</span>.<span style="color: #c00000;">0</span>  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">Clojure <span style="color: #c00000;">1.5</span>.<span style="color: #c00000;">1</span>  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    Docs: (doc function-name-here)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">          (find-doc "part-of-name-here")  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">  Source: (source function-name-here)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"> Javadoc: (javadoc java-object-or-class-here)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    Exit: Control+D or (exit) or (quit)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">user=>  </li></ol></div><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">    如果出现上面的提½Cºï¼Œåˆ™è¯´æ˜Žleiningen安装成功åQŒä½ å¯ä»¥åœ¨ä‹É用leiningen开发你的clojure之旅了ã€?/p><p style="margin: 0px; padding: 0px;">    但是往往我们不满­‘³äºŽçŽ°çŠ¶åQŒå¸Œæœ›å¯ä»¥æ›´æœ‰æ•ˆçš„ä‹É用lein¾~–写clojure。类似javaçš„idea,eclipseä¸€æ øP¼Œéƒ½å¯¹¾~–写java提供了强大的工具åQŒé‚£ä¹ˆæˆ‘们可以选择什么样的工具呢åQŒæ¯«æ— ç–‘问,Emacs是最合适的工具åQŒæ²¡æœ‰ä¹‹ä¸€åQšï¼‰</p><p style="margin: 0px; padding: 0px;">     å¯¹äºŽæˆ‘这断断¾l­ç®‹å­¦ä¹ emacs的来è¯ß_¼Œ˜q˜çœŸä¸æ˜¯ä¸å®¹æ˜“,昨晚查看了相关的e文说明,在emacs中成功装配了nrepl åQŒç”¨ä»¥åŽ¾l­çš„开发学习,便记录一下,希望对自å·×ƒ»¥åŽæŸ¥é˜…,以及需要的人有所帮助ã€?/p><p style="margin: 0px; padding: 0px;">     é¦–å…ˆåQŒæˆ‘本地有emacs 24 版本的, ˜q™é‡Œä¸æƒ³è®²emacs 的安装,˜q™ä¸ªå¤§å®¶è‡ªä¸ªå„¿æŸ¥è¯¢ä¸‹google便可以了ã€?/p><p style="margin: 0px; padding: 0px;">     åœ¨å®‰è£…好leiningen之后åQŒçŽ°åœ¨è¿›å…?a style="color: #108ac6;">nrepl</a>的主™å늜‹çœ‹ï¼Œ˜q™æ˜¯ä¸ªä»€ä¹ˆä¸œä¸œï¼</p><p style="margin: 0px; padding: 0px;">     nrepl.el is an Emacs client for nREPL,the Clojre networked REPL server.It's a great alternative to the now deprecated combination fo SLIME + swank-clojure.</p><p style="margin: 0px; padding: 0px;">    nrepl.el是emacsä½œäØ“nrepl的一个客æˆïL«¯åQŒnrepl是一个反对目前slime+swank-clojure¾l„合的最好的替代品ã€?/p><p style="margin: 0px; padding: 0px;">     ä¸‹é¢æ¥çœ‹ä¸‹å¦‚何安装nrepl.elåQ?/p><p style="margin: 0px; padding: 0px;">      1. emacs 24 以及更高版本是构建在package.el之上的,但是emacs 23以下版本的,你需要自å·ÞpŽ·å?a style="color: #108ac6;">package.el</a> .</p><p style="margin: 0px; padding: 0px;">      虽然我的æ˜?4版本的,但是我也下蝲了package.elåQŒåƈ存放åœ?    C:\Users\linjx\AppData\Roaming\.emacs.d 目前下,˜q™ä¸ªæ˜¯æˆ‘çš„emacs在windows下的配置目录ã€?/p><p style="margin: 0px; padding: 0px;">      2. ˜q™é‡Œéœ€è¦æä¸€ä¸ªæ–‡ä»Óž¼Œå?nbsp;.emacs æ–‡äšgåQŒè¿™ä¸ªæ˜¯emacs初始化配¾|®çš„æ–‡äšgåQŒä½äºŽC:\Users\linjx\AppData\Roaming 目录下ã€?/p><p style="margin: 0px; padding: 0px;">         å¦‚果你不需要ä‹É用Marmalade,则添加配¾|?åˆ?.emacsæ–‡äšg中,如下所½Cºï¼š</p><p style="margin: 0px; padding: 0px;"> </p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">Lisp代码 <embed wmode="transparent" src="http://javalinjx.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=(require%20'package)%0A(add-to-list%20'package-archives%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'(%22marmalade%22%20.%20%22http%3A%2F%2Fmarmalade-repo.org%2Fpackages%2F%22))%0A(package-initialize)" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="" title="收藏˜q™æ®µä»£ç " style="color: #108ac6;"><img src="http://javalinjx.iteye.com/images/icon_star.png" alt="收藏代码" style="border: 0px;" /></a></div></div><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;"><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(require 'package)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(add-to-list 'package-archives  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">             '("marmalade" . "http://marmalade-repo.org/packages/"))  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(package-initialize)  </li></ol></div><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;"> ç”׃ºŽä½¿ç”¨MELPA the code åQŒéœ€è¦æ·»åŠ é…¾|®åˆ° .emacsæ–‡äšg中,</p><p style="margin: 0px; padding: 0px;">     </p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">Lisp代码 <embed wmode="transparent" src="http://javalinjx.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=(require%20'package)%0A(add-to-list%20'package-archives%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'(%22melpa%22%20.%20%22http%3A%2F%2Fmelpa.milkbox.net%2Fpackages%2F%22)%20t)%0A(package-initialize)" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="" title="收藏˜q™æ®µä»£ç " style="color: #108ac6;"><img src="http://javalinjx.iteye.com/images/icon_star.png" alt="收藏代码" style="border: 0px;" /></a></div></div><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;"><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(require 'package)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(add-to-list 'package-archives  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">             '("melpa" . "http://melpa.milkbox.net/packages/") t)  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">(package-initialize)  </li></ol></div><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">  在emacs中打开.emacsæ–‡äšgåQŒåƈM-x eval-bufferåQŒæ‰§è¡Œå½“前的配置ã€?/p><p style="margin: 0px; padding: 0px;">    </p><p style="margin: 0px; padding: 0px;">     3.  åˆäh–°é…ç½®</p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">Lisp代码 <embed wmode="transparent" src="http://javalinjx.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=M-x%20package-refresh-contents%20%20%E5%9B%9E%E8%BD%A6" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="" title="收藏˜q™æ®µä»£ç " style="color: #108ac6;"><img src="http://javalinjx.iteye.com/images/icon_star.png" alt="收藏代码" style="border: 0px;" /></a></div></div><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;"><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">M-x package-refresh-contents  å›žèžR  </li></ol></div><p style="margin: 0px; padding: 0px;">     emacs会自动下载安装Marmalade , melpa相关的配¾|®ï¼›</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">     4. 安装nrepl</p><p style="margin: 0px; padding: 0px;">         è¾“入命ä×o </p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">命ä×o代码 <embed wmode="transparent" src="http://javalinjx.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=M-x%20package-install%20%E5%9B%9E%E8%BD%A6%0A%20%20%20%20%20%20%20nrepl%20%E5%9B%9E%E8%BD%A6" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="" title="收藏˜q™æ®µä»£ç " style="color: #108ac6;"><img src="http://javalinjx.iteye.com/images/icon_star.png" alt="收藏代码" style="border: 0px;" /></a></div></div><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;"><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">M-x package-install å›žèžR  </li><li style="font-size: 1em; margin-left: 38px; padding-right: 0px; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">       nrepl å›žèžR  </li></ol></div><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">     致此åQŒnrepl集成到emacs的安装完毕,可以使用emacs开发你的hello worldåQäº†ã€?/p><p style="margin: 0px; padding: 0px;">( 当然åQŒemacs˜q˜å¯ä»¥ä¸Žå…¶ä»–集成用来clojure的开发,˜q™é‡Œæˆ‘就不详˜qîCº†åQŒæ¯•竟没有ä‹É用!åQ?/p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">现在我们使用lein new 一个clojure™å¹ç›®å‡ºæ¥åQ?/p><p style="margin: 0px; padding: 0px;">1. $  lein new hello</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">2. 打开emacsåQŒåœ¨buffer中打开 hello所在的目录下的project.cljæ–‡äšg</p><p style="margin: 0px; padding: 0px;"> </p><p style="margin: 0px; padding: 0px;">3. 输入命ä×oåQšM-x nrepl-jack-inåQŒå³å¯åˆå§‹åŒ–一个nrepl server  å’?nrepl client</p><p style="margin: 0px; padding: 0px;">如下图所½Cºï¼š</p><p style="margin: 0px; padding: 0px;"><br /><img src="http://dl2.iteye.com/upload/attachment/0086/4648/dfe266e5-6ed1-3746-9e45-e0d64a3f5917.jpg" alt="" style="border: 0px;" /><br /> <br /><img src="http://dl2.iteye.com/upload/attachment/0086/4650/b9ef274b-c25a-3b04-9a6f-9862ca305608.jpg" alt="" style="border: 0px;" /><br /> <br /><img src="http://dl2.iteye.com/upload/attachment/0086/4652/834514a5-31fc-3287-a88b-8fabd9d92849.jpg" alt="" style="border: 0px;" /></p></div><img src ="http://www.aygfsteel.com/javalinjx/aggbug/401170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javalinjx/" target="_blank">javalinjx</a> 2013-07-03 13:40 <a href="http://www.aygfsteel.com/javalinjx/archive/2013/07/03/401170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>git命ä×o记录http://www.aygfsteel.com/javalinjx/archive/2013/07/03/401167.htmljavalinjxjavalinjxWed, 03 Jul 2013 04:18:00 GMThttp://www.aygfsteel.com/javalinjx/archive/2013/07/03/401167.htmlhttp://www.aygfsteel.com/javalinjx/comments/401167.htmlhttp://www.aygfsteel.com/javalinjx/archive/2013/07/03/401167.html#Feedback0http://www.aygfsteel.com/javalinjx/comments/commentRss/401167.htmlhttp://www.aygfsteel.com/javalinjx/services/trackbacks/401167.html

从服务器创徏一个本åœîC»“库的clone版本åQ?/span>

git clone /path/to/repository

如果是远端服务器上的仓库åQŒä½ çš„命令是˜q™æ ·åQ?/p>

git clone username@host:/path/to/repository

多种方式的URI

 

git add <filename>

git add *

git commit -m "代码提交信息"

 

ž®†æœ¬åœîC»“库的head中的东西提交到远½E‹æœåŠ¡å™¨ä¸Šï¼š

git push origin master(分支�

‹Æ²å°†æœ¬åœ°çš„仓库连接到某个˜qœç¨‹æœåŠ¡å™?/p>

git remote add origin <server>

 

持箋补充åQŒä½œä¸ø™‡ªå·±æŸ¥è¯¢ä‹Éç”?/p>



javalinjx 2013-07-03 12:18 发表评论
]]>
Junit 学习½W”è®° http://www.aygfsteel.com/javalinjx/archive/2013/06/17/400624.htmljavalinjxjavalinjxMon, 17 Jun 2013 01:52:00 GMThttp://www.aygfsteel.com/javalinjx/archive/2013/06/17/400624.htmlhttp://www.aygfsteel.com/javalinjx/comments/400624.htmlhttp://www.aygfsteel.com/javalinjx/archive/2013/06/17/400624.html#Feedback0http://www.aygfsteel.com/javalinjx/comments/commentRss/400624.htmlhttp://www.aygfsteel.com/javalinjx/services/trackbacks/400624.html上周½Iºé—²åQŒçœ‹å®Œäº†ã€Šå•元测试之道》,˜q™é‡Œå¯¹è‡ªå·Þqš„学习做个ž®ç»“åQŒä»¥ä¾¿ä»¥åŽæŸ¥é˜…: 

 

一般原则:
‹¹‹è¯•ä»ÖM½•可能å¤ÞpÓ|的地斏V€?/div>
‹¹‹è¯•ä»ÖM½•已经å¤ÞpÓ|的地斏V€?/div>
对于新加的代码,在被证明正确之前åQŒéƒ½å¯èƒ½æ˜¯æœ‰é—®é¢˜çš„ã€?/div>
臛_°‘¾~–写和äñ”品代码一样多的测试代码ã€?/div>
针对每次¾~–译都做局部测试ã€?/div>
½{‘Ö…¥ä»£ç ä¹‹å‰åšå…¨å±€‹¹‹è¯•ã€?/div>
需要回½{”的问题åQ?/strong>
我如何知道代码运行是否正¼‹®å‘¢åQ?/div>
我要如何对它˜q›è¡Œ‹¹‹è¯•åQ?/div>
˜q˜æœ‰å“ªäº›æ–šw¢å¯èƒ½ä¼šå‘生错误?
˜q™ä¸ªé—®é¢˜æ˜¯å¦ä¼šåœ¨å…¶ä»–的地方出现呢åQ?/div>
‹¹‹è¯•哪些斚w¢ åQšä‹É用junit ‹¹‹è¯•çš?个方面,¾lŸç§°ä¸ºï¼šRight-BICEP:
Right åQï¼åQ?¾l“果是否正确åQ?/div>
B åQï¼åQ?是否所有的边界条äšg都是正确åQ?/div>
I åQï¼åQ?能查一下反向关联吗åQ?/div>
C åQï¼åQ?能用其他手段交叉‹‚€æŸ¥ä¸€ä¸‹ç»“果吗åQ?/div>
E åQï¼åQ?你是否可以强刉™”™è¯¯æ¡ä»¶å‘生?
P åQï¼åQ?是否满èƒö性能要求åQ?/div>
¾~–写‹¹‹è¯•用例原则åQŒcorrect边界条äšgåQ?/strong>
conformance åQˆä¸€è‡´æ€§ï¼‰åQï¼ å€?是否和预期的一致ã€?/div>
OrderingåQˆé¡ºåºæ€§ï¼‰åQï¼ä¸€¾l„值是该有序或者无序的ã€?/div>
RangeåQˆåŒºé—´æ€§ï¼‰åQï¼å€¼æ˜¯å¦ä½äºŽåˆç†çš„æœ€ž®å€¼å’Œæœ€å¤§å€ég¹‹å†…ã€?/div>
ReferenceåQˆå¼•ç”?、耦合性)åQï¼ä»£ç æ˜¯å¦å¼•用了一些不在代码本íw«æŽ§åˆ¶èŒƒå›´ä¹‹å†…的外部资源ã€?/div>
ExistenceåQˆå­˜åœ¨æ€§ï¼‰åQï¼å€¼æ˜¯å¦å­˜åœ¨ï¼ˆä¾‹å¦‚åQŒæ˜¯å¦æ˜¯éžnullåQŒéž0åQŒåœ¨ä¸€ä¸ªé›†åˆä¸­½{‰ç­‰åQ‰ã€?/div>
CardinatityåQˆåŸºæ•°æ€§ï¼‰åQï¼æ˜¯å¦æ°å¥½æœ‰èƒö够的å€û|¼Ÿ
TimeåQˆç›¸å¯ÒŽˆ–者绝对的旉™—´æ€§ï¼‰åQï¼æ‰€æœ‰äº‹æƒ…的发生是否是有序的åQŸæ˜¯å¦æ˜¯åœ¨æ­£¼‹®çš„æ—¶åˆ»åQŸæ˜¯å¦æ°å¥½åŠæ—Óž¼Ÿ
环境斚w¢çš„因素:
内存耗光�/div>
¼‚ç›˜ç”¨æ»¡ã€?/div>
æ—‰™’Ÿå‡ºé—®é¢˜ã€?/div>
¾|‘络不可用或者有问题ã€?/div>
¾pȝ»Ÿ˜q‡è²ã€?/div>
调色杉K¢œè‰²æ•°ç›®æœ‰é™ã€?/div>
昄¡¤ºåˆ†èöL率过高或者过低ã€?/div>
0åQ?åQn 原则
Mock对象åQ?/strong>
真实对象å…ähœ‰ä¸å¯¼‹®å®šçš„行为(产生不可预测的结果,如股¼œ¨è¡Œæƒ…)
真实对象很难被创�/div>
真实对象的某些行为很难触发(如网¾lœé”™è¯¯ï¼‰ã€?/div>
真实对象令程序的˜qè¡Œé€Ÿåº¦å¾ˆæ…¢ã€?/div>
真实对象有(或者是åQ‰ç”¨æˆïL•Œé¢ã€?/div>
‹¹‹è¯•需要询问真实对象它是如何被调用的(例如åQŒæµ‹è¯•可能需要验证某个回调函数是否被调用了)ã€?/div>
çœŸå®žå¯¹è±¡å®žé™…ä¸ŠåÆˆä¸å­˜åœ¨ï¼ˆå½“éœ€è¦å’Œå…¶ä»–å¼€å‘å°¾l„,或者新的硬件系¾lŸæ‰“交道的时候,˜q™æ˜¯ä¸€ä¸ªæ™®éé—®é¢˜ï¼‰ã€?/div>
借助于mock对象åQŒæˆ‘们就可以解决上面提到的所有问题。在使用mock对象˜q›è¡Œ‹¹‹è¯•的时候,æ€Õd…±æœ?个步骤,分别是:
1. 使用一个接口来描述˜q™ä¸ªå¯¹è±¡ã€?/div>
2. ä¸ÞZñ”品代码实现这个接口ã€?/div>
3. ä»¥æµ‹è¯•äØ“ç›®çš„åQŒåœ¨mock对象中实现这个接口ã€?/div>
mock提供了所有系¾lŸåŠŸèƒ½çš„çŽ°æˆæŽ¥å£åQŒæ‰€ä»¥åœ¨æ›´å¤šçš„æ—¶å€™ï¼ŒäºÞZ»¬å¯èƒ½åQˆä¹Ÿè®¸å§åQ‰ä¼šä½¿ç”¨å®ƒè€Œä¸æ˜¯ç›´æŽ¥è°ƒç”¨è¯¸å¦‚System.currentTimeMillis()˜q™æ ·çš„东西,而是íw²åœ¨æŽ¥å£èƒŒåŽæ‹¥æœ‰äº†æŽ§åˆ¶ä¸€åˆ‡è¡Œä¸ºçš„能力ã€?/div>
˜q™å°±æ˜¯mock对象的全部;伪装出真实世界的某些部分åQŒä‹É你可以集中精力测试好自己¾~–写的代码。让我们接下来看看更加复杂的例子吧ã€?/div>
好的‹¹‹è¯•是一个AåQTPIPåQ?/strong>
1. 自动åŒ?(Automatic).  è°ƒç”¨‹¹‹è¯•自动化和‹‚€æŸ¥ç»“果自动化ã€?/div>
2. å½Õdº•çš?(Thorough).
3. 可重�(Repeatable).
4. 独立�(Independent).
5. 专业�(Professional).
在你发现bugæ—Óž¼Œæ‰€éœ€è¦åšçš„就是以下四个步骤:
1.验明bugåQ?/div>
2.¾~–写一个将å¤ÞpÓ|的测试来证明bug的存在ã€?/div>
3.修正代码åQŒè®©‹¹‹è¯•通过ã€?/div>
4.验证所有的‹¹‹è¯•仍然可以通过åQˆä¹Ÿž®±æ˜¯åQŒä½ æ²¡æœ‰åœ¨ä¿®è¡¥çš„æ—¶å€™æŸåå…¶ä»–çš„‹¹‹è¯•åQ‰ã€?/div>
‹¹‹è¯•的频率:
1.¾~–写新的函数    ¾~–译òq¶è¿è¡Œæœ¬åœ°çš„单元‹¹‹è¯•ã€?/div>
2.修正bug    ˜qè¡Œ‹¹‹è¯•来让bug现åÅžåQ›ä¿®òq¶å†‹Æ¡è¿è¡Œå•元测试ã€?/div>
3.每次成功¾~–译之后   ˜qè¡Œæœ¬åœ°çš„单元测试ã€?/div>
4.每次对版本控制的½{‘Ö…¥   ˜qè¡Œæ‰€æœ‰çš„æ¨¡å—或者系¾lŸçš„单元‹¹‹è¯•ã€?/div>
5. 持箋不断åœ?  åº”当有一åîC¸“门的机器来运行完整的构徏和测试。每‹Æ¡éƒ½åº”该从头开始,òq¶ä¸”整天自动˜qè¡ŒåQˆè¦ä¹ˆæ˜¯å‘¨æœŸæ€§çš„åQŒè¦ä¹ˆæ˜¯æ¯å½“有版本控制的½{‘Ö…¥è¡Œäؓ的时候)
¾~–码和评审以˜q™æ ·çš„顺序进行:
1. ¾~–写test case å’?或测试代码ã€?/div>
2. 评审test case �或测试代码�/div>
3. ¾lè¯„审修改test case å’?或测试代码ã€?/div>
4. ¾~–写能通过所有测试的产品代码ã€?/div>
5. 评审产品代码和测试代码�/div>
6. 在每‹Æ¡è¯„审后åQŒä¿®æ”ÒŽµ‹è¯•代码和产品代码ã€?/div>
在某些机器上‹¹‹è¯•å¤ÞpÓ|åQ?/span>
˜q™ç©¶ç«Ÿæ˜¯ä¸ÞZ»€ä¹ˆå‘¢åQŸè¿™äº›æœºå™¨ä¹‹é—´æœ‰ä»€ä¹ˆåŒºåˆ«å‘¢åQ?/span>
比较明显的答案可能是下面˜q™äº›èµ„源的差异:操作¾pȝ»Ÿç‰ˆæœ¬å—÷€è¿è¡Œåº“、java˜qè¡Œå¼•擎、数据库驱动½{‰ã€?/span>
¾lŸä¸€ä½¿ç”¨junit æ–ÒŽ³•çš„setup å’?tearDownæ–ÒŽ³•ã€?/div>


]]>åŸÞZºŽAxis、XFire、CXFçš„webservice 客户ç«?/title><link>http://www.aygfsteel.com/javalinjx/archive/2012/06/11/380539.html</link><dc:creator>javalinjx</dc:creator><author>javalinjx</author><pubDate>Mon, 11 Jun 2012 14:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/javalinjx/archive/2012/06/11/380539.html</guid><wfw:comment>http://www.aygfsteel.com/javalinjx/comments/380539.html</wfw:comment><comments>http://www.aygfsteel.com/javalinjx/archive/2012/06/11/380539.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javalinjx/comments/commentRss/380539.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javalinjx/services/trackbacks/380539.html</trackback:ping><description><![CDATA[<div><div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">Axis客户端调ç”?webservice:</p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: #ffffff; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 25px; text-align: left; "><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; color: #2b91af; "><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">URL endpointURL = <span style="color: #7f0055; ">new</span> URL("http://localhost:8080/webservice/HelloService");  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            String requestText = "javalinjx"  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            Service service = <span style="color: #7f0055; ">new</span> Service();  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            Call call = (Call) service.createCall();  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            call.setTargetEndpointAddress(endpointURL);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            call.setOperationName("sayHello");  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            call.addParameter("xml", XMLType.XSD_STRING, ParameterMode.IN);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            call.setReturnClass(String.<span style="color: #7f0055; ">class</span>);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            call.setReturnType(XMLType.XSD_STRING);// è®„¡½®˜q”回¾cÕdž‹  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            Object [] obj = <span style="color: #7f0055; ">new</span> Object[]{ requestText };  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">            String result = (String) call.invoke(obj);  </li></ol></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">XFire客户端调ç”?åQ?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "> </p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: #ffffff; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 25px; text-align: left; "><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; color: #2b91af; "><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: #7f0055; ">public</span> <span style="color: #7f0055; ">void</span> call() <span style="color: #7f0055; ">throws</span> Exception {  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">        Service service = <span style="color: #7f0055; ">new</span> ObjectServiceFactory().create(HelloService.<span style="color: #7f0055; ">class</span>);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">        XFireProxyFactory factory = <span style="color: #7f0055; ">new</span> XFireProxyFactory(XFireFactory.newInstance().getXFire());  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">        String url = "http://localhost:8080/webservice/HelloService";  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">        SmsService it = (SmsService)factory.create(service, url);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">        <span style="color: #7f0055; ">int</span> b = it.sayHello("javalinjx");  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">    }  </li></ol></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "> </p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">CXF客户端调用:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">    </p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">    JaxWsProxyFactoryBean factory1 = new JaxWsProxyFactoryBean();</p><div class="wmqeeuq" id="" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: #ffffff; width: 679px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 25px; text-align: left; "><ol start="1" style="font-size: 1em; line-height: 1.4em; margin-left: 0px; padding-top: 2px; padding-bottom: 2px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; color: #2b91af; "><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">factory1.setServiceClass(UaAuthInterfaces.<span style="color: #7f0055; ">class</span>);  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">factory1.setAddress("http://localhost:8080/webservices/HelloService");  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">UaAuthInterfaces u = (UaAuthInterfaces) factory1.create();  </li><li style="margin-left: 38px; padding-right: 0px; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; ">              u.sayHello("javalinjx");  </li></ol></div></div></div><img src ="http://www.aygfsteel.com/javalinjx/aggbug/380539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javalinjx/" target="_blank">javalinjx</a> 2012-06-11 22:32 <a href="http://www.aygfsteel.com/javalinjx/archive/2012/06/11/380539.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webservice构徏http://www.aygfsteel.com/javalinjx/archive/2012/06/11/380538.htmljavalinjxjavalinjxMon, 11 Jun 2012 14:28:00 GMThttp://www.aygfsteel.com/javalinjx/archive/2012/06/11/380538.htmlhttp://www.aygfsteel.com/javalinjx/comments/380538.htmlhttp://www.aygfsteel.com/javalinjx/archive/2012/06/11/380538.html#Feedback0http://www.aygfsteel.com/javalinjx/comments/commentRss/380538.htmlhttp://www.aygfsteel.com/javalinjx/services/trackbacks/380538.html


™å¹ç›®éœ€è¦åˆ¶ä½œçŸ­ä¿¡æŽ¥å£æœåŠ¡ç«¯,于是利用xfireå’Œspring ¾l“合,è½ÀL¾æž„徏webservice服务. 基本思èµ\如下:

 

1. 加入所需要类�

activation-1.1.jar 

commons-codec-1.3

commons-httpclient-3.0

jaxen-1.1-beta-9

jdom-1.0

mail

stax-api-1.0.1

wsdl4j-1.6.1

xbean-spring-2.8

xfire-all-1.2.6

xfire-jsr181-api-1.0-M1

xml-apis-1.3.04

XmlSchema-1.4.2

2. 在web.xml中添加相关的配置文äšg:

 

   <servlet>

        <servlet-name>xfire</servlet-name>

        <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>xfire</servlet-name>

        <url-pattern>/webservice/*</url-pattern>

    </servlet-mapping>

3. ¾~–写服务接口,实现¾c?

 

 

public interface SmsService {

 

    public int insertMessage(String paramStr);

 

}

 

 

 

public class SmsServiceImpl implements SmsService{

 

   public String   insertMessage (String name) {

......

   }

 

 

}

 

 

4. 服务接口的配¾|®ä¿¡æ?在applicationContext-ws.xmlæ–‡äšgä¸?

 

<bean id="SmsService" class="org.codehaus.xfire.spring.remoting.XFireExporter">

<property name="serviceFactory" ref="xfire.serviceFactory" />

 

<property name="xfire" ref="xfire" />

<property name="serviceBean" ref="smsBean" />

<property name="serviceClass" value="com.ailk.webservice.service.SmsService" />

<property name="name" value="SmsService" />

</bean>

 

è‡Ïx­¤,完成了服务端的构å»?

 

5.¾~–写客户端测试服务接å?具体实现ç•?



]]> Ö÷Õ¾Ö©Öë³ØÄ£°å£º ³»ÖÝÊÐ| µÂÇìÏØ| ºÊÔóÊÐ| ʯÚäÏØ| ·±ÖÅÏØ| µ¤Õ¯ÏØ| ÁÙÈªÏØ| çõ´ºÊÐ| ÈêÄÏÏØ| ½Ò¶«ÏØ| ·½É½ÏØ| ´ó°²ÊÐ| аͶû»¢×óÆì| ÎäÏçÏØ| ƽ¹ÈÇø| ¾¸ÓîÏØ| ÀëµºÇø| ɳÑÅÏØ| ͨµÀ| ¶õÖÝÊÐ| ÒÍÁ¼ÏØ| »ñ¼ÎÏØ| ɳºÓÊÐ| Ç­Î÷| Ï¢·éÏØ| Ê®ÑßÊÐ| ºÍË¶ÏØ| »á²ýÏØ| ²©¿Í| ÕýÏâ°×Æì| Âí¹ØÏØ| ½ðÐã| ÏçÄþÏØ| ÑĮ̀ÊÐ| ººÖÐÊÐ| ÇàÌïÏØ| ÔÇÎ÷ÏØ| ÁÙÏæÊÐ| ±Ï½ÚÊÐ| ½ðÌÃÏØ| ÈÕ¿¦ÔòÊÐ|