﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-xmatthew-随笔分类-Rest</title><link>http://www.blogjava.net/xmatthew/category/35675.html</link><description>孤独键盘手</description><language>zh-cn</language><lastBuildDate>Fri, 21 Nov 2008 18:52:13 GMT</lastBuildDate><pubDate>Fri, 21 Nov 2008 18:52:13 GMT</pubDate><ttl>60</ttl><item><title>Jetty cometd(Continuation)学习笔记</title><link>http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html</link><dc:creator>x.matthew</dc:creator><author>x.matthew</author><pubDate>Thu, 20 Nov 2008 12:04:00 GMT</pubDate><guid>http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html</guid><wfw:comment>http://www.blogjava.net/xmatthew/comments/208911.html</wfw:comment><comments>http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xmatthew/comments/commentRss/208911.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xmatthew/services/trackbacks/208911.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关键字: Jetty, Cometd, Continuation, dojo<br><br>前言：<br>为了更容易的掌握Jetty cometd的使用方法，本笔记通过讲解Jetty 6.0自带的chat演示程序来辅助讲解Jetty Cometd的实现。&nbsp;&nbsp;<a href='http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html'>阅读全文</a><img src ="http://www.blogjava.net/xmatthew/aggbug/208911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xmatthew/" target="_blank">x.matthew</a> 2008-11-20 20:04 <a href="http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSR 311(JAX-RS: Java API for RESTful Web Services) 规范正式发布 </title><link>http://www.blogjava.net/xmatthew/archive/2008/10/21/235777.html</link><dc:creator>x.matthew</dc:creator><author>x.matthew</author><pubDate>Tue, 21 Oct 2008 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/xmatthew/archive/2008/10/21/235777.html</guid><wfw:comment>http://www.blogjava.net/xmatthew/comments/235777.html</wfw:comment><comments>http://www.blogjava.net/xmatthew/archive/2008/10/21/235777.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/xmatthew/comments/commentRss/235777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xmatthew/services/trackbacks/235777.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 期待了好久了，终于等到了规范的正式的发布。下面官方发布信息,记录了JSR 311规范从筹备到发布的历程。<br />
<br />
<table class="box_fill" width="100%" bgcolor="#f1f1f6" border="0" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td width="7" nowrap="nowrap"><br />
            </td>
            <!-- Gutter //-->
            <td colspan="7" height="5" nowrap="nowrap"><img src="http://jcp.org/images/common/trans.gif" alt="" width="1" height="1" /></td>
            <td width="9" nowrap="nowrap"><img src="http://jcp.org/images/common/trans.gif" alt="" width="1" height="1" /></td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><span class="header3">Status: Final</span></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td width="275"><span class="header4">Stage</span></td>
            <td width="4">&nbsp;</td>
            <!-- Gutter //-->
            <td width="194">&nbsp;</td>
            <td width="4">&nbsp;</td>
            <!-- Gutter //-->
            <td width="193"><span class="header4">Start</span></td>
            <td width="4">&nbsp;</td>
            <!-- Gutter //-->
            <td width="174"><span class="header4">Finish</span></td>
            <td width="9">&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Final Release </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/aboutJava/communityprocess/final/jsr311/index.html">Download page</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>10 Oct, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Final Approval Ballot </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/en/jsr/results?id=4715">View results</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>09 Sep, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>22 Sep, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Proposed Final Draft </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr311/index.html">Download page</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>15 Aug, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Public Review Ballot </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/en/jsr/results?id=4628">View results</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>27 May, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>02 Jun, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Public Review </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/aboutJava/communityprocess/pr/jsr311/index.html">Download page</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>02 May, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>02 Jun, 2008</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Early Draft Review </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/aboutJava/communityprocess/edr/jsr311/index.html">Download page</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>24 Oct, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>23 Nov, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>Expert Group Formation </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>27 Feb, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>15 Aug, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>JSR Review Ballot </td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td><a href="http://jcp.org/en/jsr/results?id=4168">View results</a></td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>13 Feb, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td>26 Feb, 2007</td>
            <td>&nbsp;</td>
            <!-- Gutter //-->
        </tr>
        <tr>
            <td>&nbsp;</td>
            <!-- Gutter //-->
            <td colspan="7">
            &nbsp;<br />
            <!-- ********************************************** -->
            <!-- JCP Version                                   -->
            <!-- ********************************************** -->
            JCP version in use: <a href="http://jcp.org/procedures/jcp2"> 2.6</a><br />
            Java Specification Participation Agreement version in use: 2.0<br />
            <!-- ********************************************** -->
            <!-- JSR Comments Email excluding JSR 900 and up   -->
            <!-- ********************************************** -->
            Please direct comments on this JSR to: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#115;&#114;&#45;&#51;&#49;&#49;&#45;&#99;&#111;&#109;&#109;&#101;&#110;&#116;&#115;&#64;&#106;&#99;&#112;&#46;&#111;&#114;&#103;&#63;&#115;&#117;&#98;&#106;&#101;&#99;&#116;&#61;&#74;&#83;&#82;&#37;&#50;&#48;&#51;&#49;&#49;&#37;&#50;&#48;&#67;&#111;&#109;&#109;&#101;&#110;&#116;&#115;">jsr-311-comments@jcp.org</a><br />
            </td>
            <td>&nbsp;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
&nbsp;&nbsp;&nbsp; 与其它规范发布一样，伴随此次发布，Sun同步发布该规范的参考实现项目<a href="https://jersey.dev.java.net/">jersey</a>。最新版本为1.0。 为了让大家能快速体验Rest带给我们全新的架构风格，可以直接从本地下载程序。<a href="http://www.blogjava.net/Files/xmatthew/helloworld-webapp-1.0.war.zip">bookstore-1.0.war</a> 源代码 <a href="http://www.blogjava.net/Files/xmatthew/bookstore-1.0-project.zip">bookmark-1.0-project.zip</a>.<br />
<br />
下面展示了一个代码片断，让大家直观感受一下。<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">@Path(</span><span style="color: #000000;">"</span><span style="color: #000000;">/bank</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Bank&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@POST<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Path(</span><span style="color: #000000;">"</span><span style="color: #000000;">/account/{name}</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Account&nbsp;createAccount(@PathParam(</span><span style="color: #000000;">"</span><span style="color: #000000;">name</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;String&nbsp;name,&nbsp;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@QueryParam(</span><span style="color: #000000;">"</span><span style="color: #000000;">balance</span><span style="color: #000000;">"</span><span style="color: #000000;">)BigDecimal&nbsp;balance)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Account(name,&nbsp;balance);<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@GET<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Path(</span><span style="color: #000000;">"</span><span style="color: #000000;">/account/{name}</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Account&nbsp;getAccount(@PathParam(</span><span style="color: #000000;">"</span><span style="color: #000000;">name</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;String&nbsp;name)&nbsp;{<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #008000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;Account.getByName(name);<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">20</span>&nbsp;</div>
<br />
<br />
上面的代码，就会发布两个资源服务:<br />
<br />
POST /bank/account/newAccount<br />
GET&nbsp; /bank/account/newAccount<br />
<br />
大家看到，用Rest发布资源服务非常方便。当然上面例子只是一个非常简单的示例，用于展示Rest的应用，也希望大家提出好的建议和意见。<br />
<br />
Good Luck!<br />
Yours Matthew!<br />
<br />
<br />
<img src ="http://www.blogjava.net/xmatthew/aggbug/235777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xmatthew/" target="_blank">x.matthew</a> 2008-10-21 21:29 <a href="http://www.blogjava.net/xmatthew/archive/2008/10/21/235777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>