﻿<?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>IT博客-低调星空</title><link>http://www.cnitblog.com/zzr82528/</link><description>程序是字母与数字的魔术</description><language>zh-cn</language><lastBuildDate>Mon, 04 May 2026 20:56:01 GMT</lastBuildDate><pubDate>Mon, 04 May 2026 20:56:01 GMT</pubDate><ttl>60</ttl><item><title>测试</title><link>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33835.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Thu, 20 Sep 2007 05:48:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33835.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/33835.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/33835.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/33835.html</trackback:ping><description><![CDATA[ <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/libT07zzr_8"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/libT07zzr_8" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><img src ="http://www.cnitblog.com/zzr82528/aggbug/33835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-09-20 13:48 <a href="http://www.cnitblog.com/zzr82528/archive/2007/09/20/33835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试一个视频002</title><link>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33834.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Thu, 20 Sep 2007 05:44:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33834.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/33834.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/33834.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/33834.html</trackback:ping><description><![CDATA[<embed src="http://player.youku.com/player.php/sid/XODY1NDcyNA==/v.swf" quality="high" width="450" height="372" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed><img src ="http://www.cnitblog.com/zzr82528/aggbug/33834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-09-20 13:44 <a href="http://www.cnitblog.com/zzr82528/archive/2007/09/20/33834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试一个视频：搞笑</title><link>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33807.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Thu, 20 Sep 2007 01:58:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33807.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/33807.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/09/20/33807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/33807.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/33807.html</trackback:ping><description><![CDATA[<object width="425" height="350"><param name="movie" value="http://www.youv.jp/video/vp/3munW3sa&at=pvb0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youv.jp/video/vp/3munW3sa&at=pvb0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><img src ="http://www.cnitblog.com/zzr82528/aggbug/33807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-09-20 09:58 <a href="http://www.cnitblog.com/zzr82528/archive/2007/09/20/33807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试一个视频</title><link>http://www.cnitblog.com/zzr82528/archive/2007/09/19/33715.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Wed, 19 Sep 2007 02:35:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/09/19/33715.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/33715.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/09/19/33715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/33715.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/33715.html</trackback:ping><description><![CDATA[<object width="425" height="350"><param name="movie" value="http://www.youv.jp/video/vp/y80nOQ98&at=pvb0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youv.jp/video/vp/y80nOQ98&at=pvb0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><img src ="http://www.cnitblog.com/zzr82528/aggbug/33715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-09-19 10:35 <a href="http://www.cnitblog.com/zzr82528/archive/2007/09/19/33715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ISO-3166:国家代码</title><link>http://www.cnitblog.com/zzr82528/archive/2007/05/24/27533.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Thu, 24 May 2007 05:21:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/05/24/27533.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/27533.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/05/24/27533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/27533.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/27533.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&#183;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Country&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.cnitblog.com/zzr82528/archive/2007/05/24/27533.html'>阅读全文</a><img src ="http://www.cnitblog.com/zzr82528/aggbug/27533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-05-24 13:21 <a href="http://www.cnitblog.com/zzr82528/archive/2007/05/24/27533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ISO 639：语言代码</title><link>http://www.cnitblog.com/zzr82528/archive/2007/05/22/27441.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Tue, 22 May 2007 05:29:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/05/22/27441.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/27441.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/05/22/27441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/27441.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/27441.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;NOTE: This page is obsolete! Please see the Codes for the representation of names of languages maintained by the Library of Congress or the W3C Internationalization Activity for further and up...&nbsp;&nbsp;<a href='http://www.cnitblog.com/zzr82528/archive/2007/05/22/27441.html'>阅读全文</a><img src ="http://www.cnitblog.com/zzr82528/aggbug/27441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-05-22 13:29 <a href="http://www.cnitblog.com/zzr82528/archive/2007/05/22/27441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个XFire服务简单实例</title><link>http://www.cnitblog.com/zzr82528/archive/2007/05/17/27122.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Thu, 17 May 2007 06:12:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/05/17/27122.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/27122.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/05/17/27122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/27122.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/27122.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>下面是一个</span><span>XFire</span><span>服务实例，这个例子已经在</span><span>tomcat <st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">5.5.28</st1:chsdate>+jdk1.4.2</span><span>中测试通过。</span></p>
<p><span><span>1、&nbsp;</span></span><span>创建服务接口</span><span>ReadArticle</span><span>，代码如下</span></p>
<p><span>package cn.starfield.service;</span></p>
<p>&nbsp;</p>
<p><span>public interface ReadArticle {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String getContent(String article) ;</span></p>
<p><span>}</span></p>
<p><span>本类实现了一个服务方法</span><span>getContent(String article)</span></p>
<p><span><span>2、&nbsp;</span></span><span>创建服务类</span><span>ReadArticleImpl</span><span>，代码如下：</span></p>
<p><span>package cn.starfield.service.impl;</span></p>
<p>&nbsp;</p>
<p><span>import java.io.BufferedReader;</span></p>
<p><span>import java.io.File;</span></p>
<p><span>import java.io.FileInputStream;</span></p>
<p><span>import java.io.FileNotFoundException;</span></p>
<p><span>import java.io.IOException;</span></p>
<p><span>import java.io.InputStreamReader;</span></p>
<p>&nbsp;</p>
<p><span>import org.apache.commons.logging.Log;</span></p>
<p>&nbsp;</p>
<p><span>import cn.starfield.log.Logger;</span></p>
<p><span>import cn.starfield.service.ReadArticle;</span></p>
<p>&nbsp;</p>
<p><span>public class ReadArticleImpl implements ReadArticle {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>private static Log log = Logger.getLog();</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public String getContent(String article) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>StringBuffer datas = new StringBuffer(1024);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>File articleFile = new File("../webapps/xfiredemo/art/" + article</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>+ ".art");</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>try {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>BufferedReader br = new BufferedReader(new InputStreamReader(</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>new FileInputStream(articleFile)));</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (br != null) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String line = br.readLine();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>while (line != null) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>datas.append(line);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>datas.append('\n');</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>line = br.readLine();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>} catch (FileNotFoundException e) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>log.error("Article conn't found!", e);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>} catch (IOException e) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>log.error("Article conn't read!", e);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return datas.toString();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span>}</span></p>
<p><span>本类实现了服务接口，完成服务的最终操作。</span></p>
<p><span><span>3、&nbsp;</span></span><span>创建</span><span>services.xml</span><span>，代码如下：</span></p>
<p align=left><span>&lt;</span><span>beans </span><span>xmlns</span><span>=</span><span>"http://xfire.codehaus.org/config/1.0"</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>service</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>name</span><span>&gt;</span><span>ReadArticle</span><span>&lt;/</span><span>name</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>namespace</span><span>&gt;</span><span>http://starfield.cn/ReadArticle</span><span>&lt;/</span><span>namespace</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>serviceClass</span><span>&gt;</span><span>cn.starfield.service.ReadArticle</span><span>&lt;/</span><span>serviceClass</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>implementationClass</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>cn.starfield.service.impl.ReadArticleImpl</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>implementationClass</span><span>&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>service</span><span>&gt;</span></p>
<p><span>&lt;/</span><span>beans</span><span>&gt;</span></p>
<p><span>将此文件置于</span><span>class/META-INF</span><span>目录下</span></p>
<p><span><span>4、&nbsp;</span></span><span>修改</span><span>web.xml</span><span>。修改方法在前而的部署手册中已经说明。</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span>下载<a href="http://www.cnitblog.com/Files/zzr82528/xfiredemo.rar">工程代码</a>后，在</span><span>lib</span><span>中导入必要的包就可发布服务了。（需要的包在前面的手册中有说明）</span></p>
<p>&nbsp;</p>
<p><span>客户端调用代码如下：</span></p>
<p><span>package cn.starfield.service.client;</span></p>
<p>&nbsp;</p>
<p><span>import java.lang.reflect.Proxy;</span></p>
<p><span>import java.net.MalformedURLException;</span></p>
<p>&nbsp;</p>
<p><span>import org.apache.commons.logging.Log;</span></p>
<p><span>import org.codehaus.xfire.client.Client;</span></p>
<p><span>import org.codehaus.xfire.client.XFireProxy;</span></p>
<p><span>import org.codehaus.xfire.client.XFireProxyFactory;</span></p>
<p><span>import org.codehaus.xfire.service.Service;</span></p>
<p><span>import org.codehaus.xfire.service.binding.ObjectServiceFactory;</span></p>
<p><span>import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;</span></p>
<p>&nbsp;</p>
<p><span>import cn.starfield.log.Logger;</span></p>
<p><span>import cn.starfield.service.ReadArticle;</span></p>
<p>&nbsp;</p>
<p><span>public class ReadArticleClient {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Log log = Logger.getLog();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public String getContent(String atrticle) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String content = null;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String serviceURL = "http://127.0.0.1:8080/xfiredemo/services/ReadArticle";</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>创建</span><span>service</span><span>对象</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Service serviceModel = new ObjectServiceFactory().create(</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ReadArticle.class, null, "http://test.yicha.cn/adreport", null);</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XFireProxyFactory serviceFactory = new XFireProxyFactory();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>try {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>获取服务对象</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ReadArticle service = (ReadArticle) serviceFactory.create(</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>serviceModel, serviceURL);</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>获取客户端代理</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Client client = ((XFireProxy) Proxy.getInvocationHandler(service))</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.getClient();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>启动</span><span>response</span><span>压缩</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.GZIP_RESPONSE_ENABLED,</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Boolean.TRUE);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>启动</span><span>request</span><span>压缩</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.GZIP_RESPONSE_ENABLED,</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Boolean.TRUE);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>同时启动</span><span>response</span><span>和</span><span>request</span><span>压缩</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED,</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Boolean.TRUE);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>忽略超时</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>调用服务</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>content = service.getContent(atrticle);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>} catch (MalformedURLException e) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>log.error("Service conn't be use.", e);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return content;</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/**</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;* </span><span>测试用</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;*/</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public static void main(String[] args) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ReadArticleClient client = new ReadArticleClient();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String content = client.getContent("article1");</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>System.out.print(content);</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span>}</span></p>
<img src ="http://www.cnitblog.com/zzr82528/aggbug/27122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-05-17 14:12 <a href="http://www.cnitblog.com/zzr82528/archive/2007/05/17/27122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XFire服务部署手册</title><link>http://www.cnitblog.com/zzr82528/archive/2007/05/11/26884.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Fri, 11 May 2007 08:58:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2007/05/11/26884.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/26884.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2007/05/11/26884.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/26884.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/26884.html</trackback:ping><description><![CDATA[<h2 align=center><span>XFire</span><span>服务部署手册</span></h2>
<h3><span>一、准备工作：工程目录结构</span></h3>
<p><span>工程的目录结构如下图所示：</span></p>
<p align=center><img height=139 alt="" src="http://www.cnitblog.com/images/cnitblog_com/zzr82528/clip_image002.jpg" width=162 border=0></p>
<p align=center><span>图</span><span>1-1</span><span>：工程目录结构</span></p>
<p><span>ldaxfire</span><span>是工程的根目录。</span><span>/WEB-INF/classes/META-INF/xfire</span><span>目录用于存放</span><span>service.xml</span><span>文件。将</span><span>XFire<st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on">1.2.5</st1:chsdate></span><span>下的包（用到的）</span><span>copy</span><span>到</span><span>/WEB-INF/lib</span><span>目录下。</span></p>
<h3><span>二、修改</span><span>web.xml</span><span>文件</span></h3>
<p><span>在</span><span>web.xml</span><span>文件中加入如下定义</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>servlet</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>servlet-name</span><span>&gt;</span><span>XFireServlet</span><span>&lt;/</span><span>servlet-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>display-name</span><span>&gt;</span><span>XFire Servlet</span><span>&lt;/</span><span>display-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>servlet-class</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>org.codehaus.xfire.transport.http.XFireConfigurableServlet</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>servlet-class</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>servlet</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>servlet-mapping</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>servlet-name</span><span>&gt;</span><span>XFireServlet</span><span>&lt;/</span><span>servlet-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>url-pattern</span><span>&gt;</span><span>/services/*</span><span>&lt;/</span><span>url-pattern</span><span>&gt;</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>servlet-mapping</span><span>&gt;</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>2-1:</span><span>：</span><span>web.xml</span><span>中增加的部分</span></p>
<p><span>这样在工程中发布的所有服务都可以在工程</span><span>URL</span><span>的</span><span>services</span><span>子目录下访问。</span></p>
<h3><span>三、类结构调整</span></h3>
<p><span>XFire</span><span>对于要发布的服务没有多余的要求，它可以自动的将指定服务类的公共方法发布出去。但是</span><span>POJOs</span><span>的调用要求传入的参数类型必须是接口；同时由于</span><span>XFire</span><span>生成的桩使用了</span><span>JDK<st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on">1.4.2</st1:chsdate></span><span>不支持的</span><span>JSR181</span><span>注释类型，所以在这里最好是遵从</span><span>POJOs</span><span>的要求，为每一个要发布的服务类生成一个接口，以便于低版本的客户端使用</span><span>POJOs</span><span>方式进行访问。</span></p>
<h3><span>四、类型影射</span></h3>
<p><span>XFire</span><span>支持的数据类型包括基础类型、数组、集合、字符串、</span><span>Date</span><span>（</span><span>java.util.Date</span><span>、</span><span>java.util.Calendar</span><span>、</span><span>java.sql.Timestamp</span><span>、</span><span>java.sql.Date</span><span>、</span><span>java.sql.Time</span><span>）、</span><span>XML</span><span>类型（</span><span>Document</span><span>、</span><span>Element</span><span>、</span><span>XMLStreamReader</span><span>、</span><span>Source</span><span>）及以上类型组成的复合类型。</span></p>
<p><span>基础类型、数组、</span><span>String</span><span>、</span><span>Date</span><span>类型不用进行类型影射，除此之外的数据类型如</span><span>List</span><span>、</span><span>Map</span><span>等集合对象或是其它的复合类型，必须要写对应的类型影射。</span></p>
<p><span>XFire</span><span>的类型影射在</span><span>ServiceClassName.aegis.xml</span><span>（</span><span>ServiceClassName</span><span>为服务类</span><span>/</span><span>接口的名字）文件中声明。</span></p>
<p><span>在这里尽量要求发布服务的参数和返回值不要超出基础类型、数组、</span><span>String</span><span>的泛围，因此类型影射在此不作详细说明。</span></p>
<h3><span>五、服务的发布</span><span>——service.xml</span><span>文件配置</span></h3>
<p><span>在</span><span>XFire</span><span>工程中</span><span>service.xml</span><span>必须位于</span><span>/WEB-INF/classes/META-INF/xfire/</span><span>目录下。其基本格式如下</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p align=left><span>&lt;</span><span>beans </span><span>xmlns</span><span>=</span><span>"http://xfire.codehaus.org/config/1.0"</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>xfire</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>handler </span><span>handlerClass</span><span>=</span><span>""</span><span>&gt;&lt;/</span><span>handler</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>xfire</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>service</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>name </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>namespace </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>serviceClass </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>implementationClass </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>serviceFactory </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>bindingProvider </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>style</span><span>&gt;</span><span>document|rpc|message|wrapped</span><span>&lt;/</span><span>style</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>use</span><span>&gt;</span><span>literal|encoded</span><span>&lt;/</span><span>use</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>scope</span><span>&gt;</span><span>request|session|application</span><span>&lt;/</span><span>scope</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>invoker </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>executor </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>handler </span><span>handlerClass</span><span>=</span><span>"" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>outHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>handler </span><span>handlerClass</span><span>=</span><span>"" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>outHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>faultHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>handler </span><span>handlerClass</span><span>=</span><span>"" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>faultHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>createDefaultBindings</span><span>&gt;</span><span>true|false</span><span>&lt;/</span><span>createDefaultBindings</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>bindings</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>soap11Binding </span><span>name</span><span>=</span><span>"qname" </span><span>transport</span><span>=</span><span>""</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>allowUndefinedEndpoints</span><span>=</span><span>""</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>endpoints</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>endpoint </span><span>name</span><span>=</span><span>"qname" </span><span>url</span><span>=</span><span>"" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>endpoints</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>soap11Binding</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>soap12Binding </span><span>name</span><span>=</span><span>"qname" </span><span>transport</span><span>=</span><span>""</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>allowUndefinedEndpoints</span><span>=</span><span>""</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>endpoints</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>endpoint </span><span>name</span><span>=</span><span>"qname" </span><span>url</span><span>=</span><span>"" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>endpoints</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>soap12Binding</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>bindings</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>service</span><span>&gt;</span></p>
            <p><span>&lt;/</span><span>beans</span><span>&gt;</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>5-1</span><span>：</span><span>service.xml</span><span>的完整配置</span></p>
<p><span><span>1、</span></span><span>name</span><span>：必须的。</span><span>ServiceRegisty</span><span>就是通过这个名字进行服务注册的，服务部署完成后也是用它来调用服务。</span></p>
<p><span><span>2、</span></span><span>namespace</span><span>：可选。用于指定服务的目标命空间。</span></p>
<p><span><span>3、</span></span><span>serviceClass</span><span>：必须的。要部署到服务中的类，可以是接口。</span></p>
<p><span><span>4、</span></span><span>implementationClass</span><span>：可选的。服务被调用时使用的实现类。如果</span><span>serviceClass</span><span>的值是一个接口，那么这个值就必须配置，且必须为</span><span>serviceClass</span><span>指定接口的实现类。</span></p>
<p><span><span>5、</span></span><span>serviceFactory</span><span>：可选的。</span><span>ServiceFactory</span><span>控制服务创建和配置。</span></p>
<p><span><span>6、</span></span><span>bindingProvider</span><span>：设置</span><span>bindingProvider</span><span>，提供绑定相关的信息。如端口等。</span></p>
<p><span><span>7、</span></span><span>style</span><span>：可选的。参数样式。默认值为</span><span>wrapped</span><span>。可取值为</span><span>wrapped</span><span>、</span><span>message</span><span>、</span><span>document </span><span>及</span><span>rpc</span><span>。</span></p>
<p><span><span>8、</span></span><span>use</span><span>：可选的。指定编码类型。取值可以是</span><span>encoding</span><span>或</span><span>litaral</span><span>，目前的</span><span>XFire</span><span>支持</span><span>literal</span><span>格式，即无编码。</span></p>
<p><span><span>9、</span></span><span>scope</span><span>：可选的。指定服务的生存周期。默认值为</span><span>application</span><span>，即在所以访问期间只创建一个服务，不用时可以会被持久化。可以是</span><span>application</span><span>、</span><span>session</span><span>或</span><span>request</span><span>。</span></p>
<p><span><span>10、<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>invoker</span><span>：可选的。设置调用转接器。如果当服务实现类不是一个无格式</span><span>java bean</span><span>时</span><span>invoker</span><span>可以指定其调用方式。</span></p>
<p><span><span>11、<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>excutor</span><span>：可选值。可以为服务指定一个默认值以外的执行策略。</span></p>
<p><span><span>12、<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>handlers</span><span>：可以使用</span><span>inHandlers</span><span>、</span><span>outHandlers</span><span>或</span><span>faulterHandlers</span><span>为服务指定输入、输出和出错时的调用的处理。每个</span><span>handler</span><span>自身是一个</span><span>XML</span><span>解析的处理句柄。</span></p>
<p><span><span>13、<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>createDefaultBinding</span><span>：可选。默认为</span><span>true</span><span>，即创建默认的</span><span>SOAP1.1 HTTP</span><span>绑定。如果不想创建默认的绑定，可将其值设为</span><span>false</span><span>。</span></p>
<p><span><span>14、<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>绑定配置：每一个绑定都要指定的一个</span><span>transport ID</span><span>。下面是对应的</span><span>Transport</span><span>与</span><span>ID</span><span>的对应表。使用</span><span>endpoint</span><span>选项可以覆盖掉默认的端口地址。</span></p>
<div align=center>
<table cellPadding=0 border=0>
    <tbody>
        <tr>
            <td>
            <p align=center><strong><span>Transport </span></strong></p>
            </td>
            <td>
            <p align=center><strong><span>Transport ID </span></strong></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=left><span>HTTP + SOAP 1.1 </span></p>
            </td>
            <td>
            <p align=left><span><a title="Visit page outside Confluence" href="http://schemas.xmlsoap.org/soap/http"><span>http://schemas.xmlsoap.org/soap/http</span></a> </span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=left><span>HTTP + SOAP 1.2 </span></p>
            </td>
            <td>
            <p align=left><span><a title="Visit page outside Confluence" href="http://www.w3.org/2003/05/soap/bindings/HTTP/"><span>http://www.w3.org/2003/05/soap/bindings/HTTP/</span></a> </span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=left><span>XMPP </span></p>
            </td>
            <td>
            <p align=left><span><a title="Visit page outside Confluence" href="http://jabber.org/protocol/soap"><span>http://jabber.org/protocol/soap</span></a> </span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=left><span>JMS </span></p>
            </td>
            <td>
            <p align=left><span>urn:xfire:transport:jms </span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=left><span>Local </span></p>
            </td>
            <td>
            <p align=left><span>urn:xfire:transport:local </span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p><span>下面给出一个</span><span>service.xml</span><span>的典型配置：</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p align=left><span>&lt;</span><span>beans </span><span>xmlns</span><span>=</span><span>"http://xfire.codehaus.org/config/1.0"</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>service</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>name</span><span>&gt;</span><span>ServiceName</span><span>&lt;/</span><span>name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>namespace</span><span>&gt;</span><span>http://yourcompany.com/ServiceName</span><span>&lt;/</span><span>namespace</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>serviceClass</span><span>&gt;</span><span> com.yourcompany.yourpath.<span>.ServiceInterface</span><span>&lt;/</span><span>serviceClass</span><span>&gt;</span></span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>implementationClass</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>com.yourcompany.yourpath.Se<span>rviceImpl</span></span><span>Class</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>implementationClass</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>handler</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>handlerClass</span><span>=</span><span>"com.yourcompany.yourpath.HandlerClass" </span><span>/&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>inHandlers</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>service</span><span>&gt;</span></p>
            <p><span>&lt;/</span><span>beans</span><span>&gt;</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>5-2</span><span>：</span><span>service.xml</span><span>的典型配置</span></p>
<p><span>用自己实际的路径和类名取代上面的配置就是一个典型的</span><span>XFire service</span><span>配置。</span></p>
<h3><span>六、客户端调用</span></h3>
<p><span>客户端调用采用</span><span>POJOs</span><span>方式。在这种方式下要用到在服务端定义的服务接口。具体代码如下：</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String serviceURL = "http://192.168.0.225/ldaxfire/services/LDAService";</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>创建</span><span>service</span><span>对象</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Service serviceModel = new ObjectServiceFactory().create(</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ServiceInterface.class, null, "http://test.yicha.cn/adreport", null);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XFireProxyFactory serviceFactory = new XFireProxyFactory();</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>获取服务对象</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ServiceInterface service = (ServiceInterface) serviceFactory.create(</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>serviceModel, serviceURL);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>忽略超时</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Client client = Client.getInstance(service);</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>调用服务</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>data = service.serviceMethod();</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>6-1</span><span>：客户端调用代码（</span><span>POJOs</span><span>方式）</span></p>
<p><span>注：其中的</span><span>ServiceInterface</span><span>在实际工程中要以实际的接口类型替代，</span><span>serviceMethod</span><span>以具体的方法名替代。</span></p>
<h3><span>七、</span><span>GZip</span><span>的启用</span></h3>
<p><span>在</span><span>XFire1.2</span><span>以后支持</span><span>SOAP</span><span>消息的</span><span>GZip</span><span>压缩传输，在合适的地方启动</span><span>GZip</span><span>压缩可以减少网络传输的数据量，加快速度。</span></p>
<p><span>在</span><span>XFire</span><span>中启动</span><span>GZip</span><span>压缩要用到一个开源的</span><span>Filter</span><span>：</span><span>PJL Compressing Filter</span><span>。这个</span><span>F</span><span>ilter</span><span>的最新版本是</span><st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on"><span>1.6.4</span></st1:chsdate><span>，自</span><span>1.5.0</span><span>开始该工程开始构建于</span><span>JDK5.0</span><span>，因此在</span><span>JDK1.4</span><span>环境下只能使用</span><span>1.4.6</span><span>（这个版本会与高版本同步更新）。</span></p>
<p><span>一、服务端启动</span><span>GZip</span><span>：在服务端启动</span><span>GZip</span><span>只需将</span><span>PJL Compressing Filter</span><span>下的</span><span>jar</span><span>包（用到的）导入到</span><span>web</span><span>的</span><span>/WEB-INF/lib</span><span>目录下。并在</span><span>web.xml</span><span>文件中增加如下配置：</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>filter</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>filter-name</span><span>&gt;</span><span>CompressingFilter</span><span>&lt;/</span><span>filter-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>filter-class</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>com.planetj.servlet.filter.compression.CompressingFilter</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>filter-class</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>init-param</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>param-name</span><span>&gt;</span><span>debug</span><span>&lt;/</span><span>param-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>param-value</span><span>&gt;</span><span>false</span><span>&lt;/</span><span>param-value</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>init-param</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>init-param</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>param-name</span><span>&gt;</span><span>statsEnabled</span><span>&lt;/</span><span>param-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>param-value</span><span>&gt;</span><span>true</span><span>&lt;/</span><span>param-value</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>init-param</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>filter</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>filter-mapping</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>filter-name</span><span>&gt;</span><span>CompressingFilter</span><span>&lt;/</span><span>filter-name</span><span>&gt;</span></p>
            <p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;</span><span>url-pattern</span><span>&gt;</span><span>/*</span><span>&lt;/</span><span>url-pattern</span><span>&gt;</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&lt;/</span><span>filter-mapping</span><span>&gt;</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>7-1</span><span>：</span><span>服务端加入</span><span>GZip</span><span>时</span><span>web.xml</span><span>中增加的配置</span></p>
<p><span>注：根据</span><span>web.xml</span><span>文法定义，这个定义必须位于</span><span>servlet</span><span>定义之前。</span></p>
<p><span>二、客户端启用</span><span>GZip</span><span>：客户端启动</span><span>GZip</span><span>只要将客户端的</span><span>GZip</span><span>的属性设为</span><span>true</span><span>却可。代码如下：</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String serviceURL = "http://192.168.0.225/ldaxfire/services/LDAService";</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>创建</span><span>service</span><span>对象</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Service serviceModel = new ObjectServiceFactory().create(</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ServiceInterface.class, null, "http://test.yicha.cn/adreport", null);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XFireProxyFactory serviceFactory = new XFireProxyFactory();</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>获取服务对象</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ServiceInterface service = (ServiceInterface) serviceFactory.create(</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>serviceModel, serviceURL);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>获取客户端代理</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Client client = ((XFireProxy) Proxy.getInvocationHandler(service))</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>.getClient();</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>启动</span><span>response</span><span>压缩</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GZIP_RESPONSE_ENABLED, Boolean.TRUE);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>启动</span><span>request</span><span>压缩</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GZIP_RESPONSE_ENABLED,Boolean.TRUE);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>同时启动</span><span>response</span><span>和</span><span>request</span><span>压缩</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED,</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Boolean.TRUE);</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>忽略超时</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");</span></p>
            <p>&nbsp;</p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </span><span>调用服务</span></p>
            <p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>data = service.serviceMethod();</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=center><span>代码清单</span><span>7-2</span><span>：客户端调用的修改</span></p>
<p><span>注：在同时启用时，不必再分别启用</span><span>response</span><span>和</span><span>request</span><span>的</span><span>GZip</span><span>压缩。</span></p>
<p><span>注意，当服务端没有启用</span><span>GZip</span><span>，客户端启用请求</span><span>GZip</span><span>压缩时，会产生</span><span>SOAP</span><span>解析错误，如果服务端启动了</span><span>GZip</span><span>压缩功能，客户端是否启用</span><span>GZip</span><span>都没有影响。</span></p>
<img src ="http://www.cnitblog.com/zzr82528/aggbug/26884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2007-05-11 16:58 <a href="http://www.cnitblog.com/zzr82528/archive/2007/05/11/26884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的日语学习日志（005）</title><link>http://www.cnitblog.com/zzr82528/archive/2005/11/14/4441.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Mon, 14 Nov 2005 02:20:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2005/11/14/4441.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/4441.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2005/11/14/4441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/4441.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/4441.html</trackback:ping><description><![CDATA[ここは学校です。<BR>ここは王さんの学校です。<BR><BR>そこは教室です。<BR>そこは日本語の教室です。<BR><BR>あそこは体育館です。<BR>あそこは図書館です。<BR><BR>郵便局はここです。<BR>映画館はそこです。<BR>駅はあそこです。<BR><BR>デパートはどこですか。<BR>デパートはあそこです。<BR>デパートは駅の前です。<BR><BR>店員：いらっしゃいませ。<BR>田中：ワイシャツの売り場はここです。<BR>店員：はい，そうです。<BR>田中：そのワイシャツはいくらですか。<BR>店員：そこは５０００円いただきます。<BR>田中：それをください。<BR>店員：ありがとうございます。５０００円いただきます。<BR><img src ="http://www.cnitblog.com/zzr82528/aggbug/4441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2005-11-14 10:20 <a href="http://www.cnitblog.com/zzr82528/archive/2005/11/14/4441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的日语学习日志（004）</title><link>http://www.cnitblog.com/zzr82528/archive/2005/11/12/4400.html</link><dc:creator>citystar</dc:creator><author>citystar</author><pubDate>Sat, 12 Nov 2005 12:44:00 GMT</pubDate><guid>http://www.cnitblog.com/zzr82528/archive/2005/11/12/4400.html</guid><wfw:comment>http://www.cnitblog.com/zzr82528/comments/4400.html</wfw:comment><comments>http://www.cnitblog.com/zzr82528/archive/2005/11/12/4400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zzr82528/comments/commentRss/4400.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zzr82528/services/trackbacks/4400.html</trackback:ping><description><![CDATA[<P><FONT size=4>看几个新的单语：<BR>雑誌（ざっし）　　　　　　　　　　杂志<BR>本（ほん）　　　　　　　　　　　　书<BR>誰（だれ）　　　　　　　　　　　　谁<BR>万年筆（まんねんひつ）　　　　　　自来水笔<BR>辞書（じしょ）　　　　　　　　　　辞典<BR>中国語（ちゅうごくご）　　　　　　汉语<BR>新聞（しんぶん）　　　　　　　　　报纸<BR>科学（かがく）　　　　　　　　　　科学<BR>歴史（れきし）　　　　　　　　　　历史<BR>人（ひと）　　　　　　　　　　　　人<BR>誰（だれ）　　　　　　　　　　　　谁<BR>友達（ともだち）　　　　　　　　　朋友<BR>張（ちょう）　　　　　　　　　　　张（姓）<BR>こんにちは　　　　　　　　　　　　你好（白天用）<BR>英語（えいご）　　　　　　　　　　英语<BR>すみません　　　　　　　　　　　　对不起</FONT></P>
<P><FONT size=4>これ（近称）　　　　　　　　　　　这个（在说话人身边）<BR>それ（中称）　　　　　　　　　　　那个（在听话人身边）<BR>あれ（远称）　　　　　　　　　　　那个（离说话人和听话人都比较远）<BR>どれ（不定称）　　　　　　　　　　哪个（表询问）<BR>代词，表征某一事物</FONT></P>
<P><FONT size=4>この（近称）　　　　　　　　　　　这个（在说话人身边）<BR>その（中称）　　　　　　　　　　　那个（在听话人身边）<BR>あの（远称）　　　　　　　　　　　那个（离说话人和听话人都比较远）<BR>どの（不定称）　　　　　　　　　　哪个（表询问）<BR>后跟名词，指代方位</FONT></P>
<P><FONT size=4>それは雑誌でしか。<BR>译：那是杂志嘛？<BR>これは本でし。<BR>译：这是书。<BR>これは雑誌ではありません。<BR>译：这不是杂志。<BR>これは誰の万年筆ですか。<BR>译：这是谁的钢笔。<BR>それは王さんの万年筆です。<BR>译：这是小王的钢笔。<BR>それは私の万年筆ではありません。<BR>译：这不是我的钢笔。<BR>あれは中国語の辞書ですか。<BR>译：那是汉语字典嘛？<BR>あれは中国語の辞書です。<BR>译：那是汉语字典。<BR>あれは日本語の辞書ではありません。<BR>译：那不是日语字典。</FONT></P>
<P><FONT size=4>この新聞は日本の新聞ですか。<BR>译：这份报纸是日本的报纸嘛？<BR>はい，それは日本の新聞です。<BR>译：是的，这是日本的报纸。<BR>その本は科学の本ですか。<BR>译：那本书是科学书嘛。<BR>いいえ，これは科学の本ではありません。歴史の本です。<BR>译：不是，这不是科学书，这是历史书。<BR>王さん，こんにちは。<BR>译：小王，你好。<BR>こんにちは。<BR>译：你好。<BR>あの人はだれですか。<BR>译：那个为是谁？<BR>あの人は私の友達です。あの人は張さんです。<BR>译：那个人是我的朋友，那个人是小张。</FONT></P>
<P><FONT size=4>王さん，こんにちは。<BR>译：小王，你好。<BR>こんにちは。<BR>译：你好。<BR>それは何ですか。<BR>译：那是什么？<BR>これは辞書です。<BR>译：这是字典。<BR>それは英語の辞書ですか。<BR>译：那是英语字典嘛？<BR>いいえ，英語の辞書ではありません。これはフランス語の辞書です。<BR>译：不，不是，这不是英语字典，这是法语字典。<BR>その辞書は王さんのですか。<BR>译：那本字典是小王你的嘛？<BR>いいえ，そうではありません。友達のです。<BR>译：不，不是我的，是我的朋友的。<BR>これは張さんの辞書です。<BR>译：这是小张的字典。</FONT></P>
<P><FONT size=4>すみません。<BR>译：对不起。<BR>いいえ，こちらこそすみません。<BR>译：不，说对不起的应该是我。<BR>私の本は。<BR>译：我的书呢？<BR>あなたの本は歴史の本ですか。<BR>译：你的书是历史书嘛？<BR>いいえ，辞書です。英語の辞書です。<BR>译：不，是字典，英语字典。<BR>この本ですか。<BR>译：是这本书嘛？<BR>ええ，そうです。<BR>译：是，就是这本。</FONT></P>
<P><FONT size=4>何<BR>表示不了解的事物，<BR>それは何ですか。<BR>那是什么。<BR>どれ相当于汉语中的哪个。<BR><BR>こんにちは。<BR>日间用的寒暄语，意为你好，大致用在中午到晚上。<BR>こちらこそ。<BR>直为,我的,我们的,或者是,我们也,根据情况可译为,应该是我,或,也等等.<BR>例：<BR>初めまして。どぞう，よろしくお願いします。<BR>初めまして。こちらこそよろしくお願いします。<BR>初次见面，请多多关照。<BR>初次见面，也请您多多关照。</FONT></P><img src ="http://www.cnitblog.com/zzr82528/aggbug/4400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zzr82528/" target="_blank">citystar</a> 2005-11-12 20:44 <a href="http://www.cnitblog.com/zzr82528/archive/2005/11/12/4400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>