﻿<?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-我爱佳娃-随笔分类-Perl</title><link>http://www.blogjava.net/alwayscy/category/17732.html</link><description>&lt;br&gt;
有兴趣可以访问下我的生活博客：&lt;a href="http://qqmovie.qzone.com"&gt;qqmovie.qzone.com&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Sun, 09 Oct 2011 02:15:26 GMT</lastBuildDate><pubDate>Sun, 09 Oct 2011 02:15:26 GMT</pubDate><ttl>60</ttl><item><title>一目了然PERL编码,是转的</title><link>http://www.blogjava.net/alwayscy/archive/2011/10/09/360236.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Sun, 09 Oct 2011 00:04:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2011/10/09/360236.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/360236.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2011/10/09/360236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/360236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/360236.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 非常浅显易懂的PERL编码说明.<br>一目了然PERL编码,注意是转的&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2011/10/09/360236.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/360236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2011-10-09 08:04 <a href="http://www.blogjava.net/alwayscy/archive/2011/10/09/360236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>perl不用export,自动加入自己的搜索和动态链接库环境</title><link>http://www.blogjava.net/alwayscy/archive/2011/10/03/359970.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Mon, 03 Oct 2011 13:37:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2011/10/03/359970.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/359970.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2011/10/03/359970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/359970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/359970.html</trackback:ping><description><![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><u>下面以MAC为例,如果是LINUX需要把DYLD发为LD</u></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><u><br />
</u></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'MS Reference Sans Serif'; color: #b030f4; "><u>把下面代码加到代码开头,它就可以自启动了,不需要再EXPORT或者-I</u></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><span style="text-decoration: underline"><br />
</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><span style="text-decoration: underline">BEGIN </span><span style="text-decoration: underline ; color: #b83410">{</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'MS Reference Sans Serif'; "><font  color="#b83410">&nbsp; &nbsp; &nbsp; &nbsp; #需要加到LOADPATH的路径</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #3a01ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span><span style="color: #b030f4">my </span><span style="color: #000000">$</span><span style="color: #b013f4">need</span><span style="color: #000000"> </span><span style="color: #b83410">= </span>'/usr/local/nagios/pkg/ebase/'<span style="color: #b83410">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; min-height: 16.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b013f4"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">	</span></span>push <span style="color: #000000">@</span>INC<span style="color: #b83410">, </span><span style="color: #000000">$</span>need<span style="color: #b83410">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">	</span></span>if <span style="color: #b83410">( </span><span style="color: #000000">$</span><span style="color: #b013f4">^O</span><span style="color: #000000"> </span><span style="color: #b83410">!~ </span>/MSWin32/ <span style="color: #b83410">) {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span></span><span style="text-decoration: underline ; color: #b030f4">my </span><span style="text-decoration: underline">$</span><span style="text-decoration: underline ; color: #b013f4">ld</span><span style="text-decoration: underline"> </span><span style="text-decoration: underline ; color: #b83410">= </span><span style="text-decoration: underline">$</span><span style="text-decoration: underline ; color: #b013f4">ENV</span><span style="text-decoration: underline ; color: #b83410">{</span><span style="text-decoration: underline">DYLD_LIBRARY_PATH</span><span style="text-decoration: underline ; color: #b83410">};</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #b030f4">if </span>( !<span style="color: #000000">$</span><span style="color: #b013f4">ld</span><span style="color: #000000"> </span>) {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">			</span></span>$<span style="color: #b013f4">ENV</span><span style="color: #b83410">{</span>DYLD_LIBRARY_PATH<span style="color: #b83410">} = </span>$<span style="color: #b013f4">need</span><span style="color: #b83410">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span></span>elsif <span style="color: #b83410">( </span><span style="color: #000000">$</span><span style="color: #b013f4">ld</span><span style="color: #000000"> </span><span style="color: #b83410">!~ </span>m#(^|:)\Q$need\E(:|$)# <span style="color: #b83410">) {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">			</span></span>$<span style="color: #b013f4">ENV</span><span style="color: #b83410">{</span>DYLD_LIBRARY_PATH<span style="color: #b83410">} .= </span><span style="color: #3a01ff">':' </span><span style="color: #b83410">. </span>$<span style="color: #b013f4">need</span><span style="color: #b83410">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="text-decoration: underline">}</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b030f4"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span></span>else <span style="color: #b83410">{</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">			</span><span style="color: #000000">$</span><span style="color: #b013f4">need</span><span style="color: #000000"> </span>= <span style="color: #3a01ff">""</span>;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #b030f4">if </span>(<span style="color: #000000">$</span><span style="color: #b013f4">need</span>) {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b013f4"><span style="color: #b83410"><span class="Apple-tab-span" style="white-space:pre">			</span></span>exec <span style="color: #3a01ff">'env'</span><span style="color: #b83410">, </span><span style="color: #000000">$</span>^X<span style="color: #b83410">, </span><span style="color: #000000">$</span>0<span style="color: #b83410">, </span><span style="color: #000000">@</span>ARGV<span style="color: #b83410">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">		</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'MS Reference Sans Serif'; color: #b83410">}</p>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/alwayscy/aggbug/359970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2011-10-03 21:37 <a href="http://www.blogjava.net/alwayscy/archive/2011/10/03/359970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>哭了：整一天Java Runtime exec的挂死（不退出）问题，原来是酱子</title><link>http://www.blogjava.net/alwayscy/archive/2009/05/15/270925.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Fri, 15 May 2009 13:04:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2009/05/15/270925.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/270925.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2009/05/15/270925.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/270925.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/270925.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天搞了一天，JAVA调用一个PERL程序，得不得就退不出，千试万试，LOG精细到逐行，知道在哪停住了，但打死不知道为什么。<br>后来吃个饭都放弃了，居然又找到答案，要没看到它，那真以为里面有鬼了。&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2009/05/15/270925.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/270925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2009-05-15 21:04 <a href="http://www.blogjava.net/alwayscy/archive/2009/05/15/270925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PERL通过CPAN和PROXY来安装</title><link>http://www.blogjava.net/alwayscy/archive/2009/05/12/270228.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Tue, 12 May 2009 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2009/05/12/270228.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/270228.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2009/05/12/270228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/270228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/270228.html</trackback:ping><description><![CDATA[如需要，设置PROXY：<br />
export http_proxy=http://127.0.0.1:3128<br />
<br />
启动，然后设置MIRROR，直接安装：<br />
perl -MCPAN -e shell<br />
cpan&gt; o conf urllist set http://www.perl87.cn/CPAN/<br />
cpan&gt; install JSON<br />
<img src ="http://www.blogjava.net/alwayscy/aggbug/270228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2009-05-12 16:31 <a href="http://www.blogjava.net/alwayscy/archive/2009/05/12/270228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>do/eval/requir区别</title><link>http://www.blogjava.net/alwayscy/archive/2008/08/12/221440.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Tue, 12 Aug 2008 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2008/08/12/221440.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/221440.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2008/08/12/221440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/221440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/221440.html</trackback:ping><description><![CDATA[<h3>
Ways to include code/library from another file (eval, do, require
and use)
</h3>
<p><font size="2" face="Arial">1)&nbsp; do $file is like eval `cat $file`, except the former:</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 1.1: searches @INC.</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 1.2: bequeaths an *unrelated* lexical scope on the eval'ed code.</font> </p>
<p><font size="2" face="Arial">2)&nbsp; require $file is like do $file, except the former:</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 2.1: checks for redundant loading, slipping already loaded files.</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 2.2: raises an exception on failure to find, compile, or execute $file.</font> </p>
<p><font size="2" face="Arial">3)&nbsp; require Module is like require "Module.pm", except the former:</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 3.1: translates each "::" into your system's directory separator.</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 3.2: primes the parser to disambiguate class Module as an indirect object.</font> </p>
<p><font size="2" face="Arial">4)&nbsp; use Module is like require Module, except the former:</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 4.1: loads the module at compile time, not run-time.</font> <br />
<font size="2" face="Arial">&nbsp;&nbsp;&nbsp; 4.2: imports symbols and semantics from that package to the current one.</font> <br />
</p>
<p><br />
</p>
<p>eval除了可以形成动态CODE外，还可以做异常捕捉：</p>
<pre><code>  eval {<br />
...<br />
};<br />
if ($@) {<br />
errorHandler($@);<br />
}<br />
<br />
$@在无异常时是NULL，否则是异常原因<br />
</code></pre>
<img src ="http://www.blogjava.net/alwayscy/aggbug/221440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2008-08-12 10:42 <a href="http://www.blogjava.net/alwayscy/archive/2008/08/12/221440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PAR和PP</title><link>http://www.blogjava.net/alwayscy/archive/2008/08/11/221371.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Mon, 11 Aug 2008 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2008/08/11/221371.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/221371.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2008/08/11/221371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/221371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/221371.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: PERL开源打包程序PAR和PP(类似于商业程序的perl2exe/perlapp)&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2008/08/11/221371.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/221371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2008-08-11 21:13 <a href="http://www.blogjava.net/alwayscy/archive/2008/08/11/221371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACTIVEPERL在LINUX下的安装以及PERL2EXE的使用</title><link>http://www.blogjava.net/alwayscy/archive/2008/02/20/180803.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Wed, 20 Feb 2008 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2008/02/20/180803.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/180803.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2008/02/20/180803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/180803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/180803.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ACTIVEPERL在LINUX下的安装以及PERL2EXE的使用&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2008/02/20/180803.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/180803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2008-02-20 12:40 <a href="http://www.blogjava.net/alwayscy/archive/2008/02/20/180803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一种不需要WSDL用CXF（原XFIRE）访问PERL（SOAP::Lite）编写的WEB SERVICE</title><link>http://www.blogjava.net/alwayscy/archive/2007/12/05/165446.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Wed, 05 Dec 2007 04:00:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/12/05/165446.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/165446.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/12/05/165446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/165446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/165446.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用PERL编写SOAP服务是相当方便的，但是如果用其它语言来访问它，却不容易，下面介绍一种不需要WSDL描述就能访问它的方法。&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2007/12/05/165446.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/165446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-12-05 12:00 <a href="http://www.blogjava.net/alwayscy/archive/2007/12/05/165446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PERL中遇到Your vendor has not defined Fcntl macro F_GETFL解决方法</title><link>http://www.blogjava.net/alwayscy/archive/2007/10/31/157300.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Wed, 31 Oct 2007 12:40:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/10/31/157300.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/157300.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/10/31/157300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/157300.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/157300.html</trackback:ping><description><![CDATA[<p></p> <p>今天在WINDOWS下用SOCKET时发现如下错误：（LINUX下正常）  <p>Your vendor has not defined Fcntl macro F_GETFL, used at :/Perl/site/lib/IO/Multiplex.pm line 932.  <p>&nbsp;  <p>只需要替换Multiplex.pm line 932处函数nonblock：  <p>sub nonblock<br>{<br>my $fh = shift;<br>my $flags = fcntl($fh, F_GETFL, 0)<br>or die "fcntl F_GETFL: $!\n"<br>fcntl($fh, F_SETFL, $flags | O_NONBLOCK)<br>or die "fcntl F_SETFL $!\n"<br>}  <p>替换为：  <p>use constant WIN32 =&gt; $^O =~ /win32/i;  <p>sub nonblock {<br>my $sock = shift;<br>if (WIN32) {<br>my $set_it = "1"<br>ioctl( $sock, 0x80000000 | (4 &lt;&lt; 16) | (ord('f') &lt;&lt; 8) | 126, $set_it) || return 0;<br>} else {<br>fcntl($sock, F_SETFL, fcntl($sock, F_GETFL, 0) | O_NONBLOCK) || return 0;<br>}<br>}  <p>即可。</p><img src ="http://www.blogjava.net/alwayscy/aggbug/157300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-10-31 20:40 <a href="http://www.blogjava.net/alwayscy/archive/2007/10/31/157300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CXF：咋总差一点呢？ （续：已解决）</title><link>http://www.blogjava.net/alwayscy/archive/2007/08/23/138820.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Thu, 23 Aug 2007 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/08/23/138820.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/138820.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/08/23/138820.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/138820.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/138820.html</trackback:ping><description><![CDATA[在<a href="http://www.blogjava.net/alwayscy/archive/2007/08/07/135074.html">上一篇文章</a>中的问题，今天又再试了下，居然解决了，看来把遇到问题放一放是有好处的。<br><br>第一，是要用对CXF的库，在一行代码未变的情况下，只要使用最新的库。看来在最新库里解决了数组问题：<br>2.1-incubator-SNAPSHOT<br>就没问题，如果是用：<br>2.0-incubator<br>就会出现上篇文章的情况。我使用MAVEN2，就写成：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">for&nbsp;cxf</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.apache.cxf</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">cxf-rt-frontend-jaxws</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">2.1-incubator-SNAPSHOT</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">&nbsp;version&gt;2.0-incubator&lt;/version</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.apache.cxf</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">cxf-rt-transports-http</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">2.1-incubator-SNAPSHOT</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.apache.cxf</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">groupId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">cxf-rt-databinding-aegis</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">artifactId</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">2.1-incubator-SNAPSHOT</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">version</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">&gt;</span></div>
<br><br>第二，对SOAP::Lite的改变，SOAP::Lite不支持doc/literal，但通过阅读<br>"NET-based Web Service Using the SOAP::Lite Perl Library". <br>我的上篇文章有链接，我写的PERL程序在某些情况下依然不行。<br>这次再加了两处改动后就可以了：（注意：CXF里不要使用aegisDatabinding，用默认的即可）<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$soap</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Lite<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;uri(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://magic.nms.exchangebit.com/</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;on_action(&nbsp;</span><span style="COLOR: #0000ff">sub</span><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">join</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">/</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://www.alfredbr.com</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_</span><span style="COLOR: #000000">[</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">]&nbsp;})<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;proxy(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://127.0.0.1:8080/ebnms/NotifyService</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">autotype(</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">);</span></div>
<br><br>其中的autotype(0)非常重要。另外一处改动是，程序中的根变量名改成"arg0"，即与WSDL中定义一致。<br>实验发现，带不带attr中的xmlns都可以。完整代码如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">use</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Lite&nbsp;(&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">trace&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;all</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;maptype&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;{}&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$soap</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Lite<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;uri(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://magic.nms.exchangebit.com/</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;on_action(&nbsp;</span><span style="COLOR: #0000ff">sub</span><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">join</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">/</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://www.alfredbr.com</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_</span><span style="COLOR: #000000">[</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">]&nbsp;})<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;proxy(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://127.0.0.1:8080/ebnms/NotifyService</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">autotype(</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">$soap-&gt;sendAlarmString&nbsp;("good");<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>#$soap-&gt;sendAlarm&nbsp;(SOAP::Data-&gt;name(arg0=&gt;{devName=&gt;"hehe",&nbsp;devIp=&gt;"ip1"}));</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>{</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;call&nbsp;send&nbsp;alarm</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;$header,</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(arg0&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;goodhehe)&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ns1:sendAlarmString</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">attr({</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">xmlns:ns1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">http://magic.nms.exchangebit.com/</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">});<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$soap</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">call(</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\nsend&nbsp;string&nbsp;alarm&nbsp;result:\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">fault)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">faultstring;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">result;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\nn</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>{</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;call&nbsp;send&nbsp;dev&nbsp;alarm</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(arg0</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">sendAlarm</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;attr({"xmlns:ns1"&nbsp;=&gt;&nbsp;'http://magic.nms.exchangebit.com/'});</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$soap</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">call(</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\nsend&nbsp;string&nbsp;alarm&nbsp;result:\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">fault)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">faultstring;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">result;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\n\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>{</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;call&nbsp;send&nbsp;arr&nbsp;alarm</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(arg0&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;[<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip1</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{devName</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">hehe2</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;devIp</span><span style="COLOR: #000000">=&gt;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ip2</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">}])<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;SOAP</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">name(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">sendAlarmArr</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$soap</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">call(</span><span style="COLOR: #800080">$method</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@params</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\nsend&nbsp;string&nbsp;alarm&nbsp;result:\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">fault)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">faultstring;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">@a</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;@{</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">result</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{item}};<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">foreach</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #800080">@a</span><span style="COLOR: #000000">)&nbsp;{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ele:&nbsp;$i-&gt;{devName},&nbsp;$i-&gt;{devIp}\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\n\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>}</span></div>
<img src ="http://www.blogjava.net/alwayscy/aggbug/138820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-08-23 14:13 <a href="http://www.blogjava.net/alwayscy/archive/2007/08/23/138820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CXF：咋总差一点呢？</title><link>http://www.blogjava.net/alwayscy/archive/2007/08/07/135074.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Tue, 07 Aug 2007 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/08/07/135074.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/135074.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/08/07/135074.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/135074.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/135074.html</trackback:ping><description><![CDATA[最近想用PERL通过SOAP与JAVA通信，想到了XFIRE，现在叫CXF提供的服务。但总是差一点成功。<br><br>第一步，<br>由于用了SPRING，所以最先看了这篇文章：<a title="Writing a service with Spring" href="http://cwiki.apache.org/CXF20DOC/writing-a-service-with-spring.html"><u><font color=#0000ff>Writing a service with Spring</font></u></a> <br>服务是建成功了，PERL和JAVA是可以正常通信了，详见<a href="http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html">上篇文章</a><br>可是CXF自己的CLIENT生成代码却访问&#8220;自定义结构数组&#8221;的函数不成功：<br>&nbsp;public List&lt;DeviceValue&gt; sendAlarmArr (List&lt;DeviceValue&gt; arr);<br><br>第二步，<br>左试右试不成功，甚至去试了Axis2，但那个生成的WSDL把上面的结构变成AnyType，估计不对。<br>又回来，看了<a href="http://cwiki.apache.org/CXF20DOC/aegis-databinding.html">Aegis绑定</a>，我还找到将它用到SPRING里的方法：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">beans&nbsp;</span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">="http://www.springframework.org/schema/beans"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns:xsi</span><span style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns:jaxws</span><span style="COLOR: #0000ff">="http://cxf.apache.org/jaxws"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xsi:schemaLocation</span><span style="COLOR: #0000ff">="<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans.xsd<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;http://cxf.apache.org/jaxws&nbsp;http://cxf.apache.org/schemas/jaxws.xsd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">import&nbsp;</span><span style="COLOR: #ff0000">resource</span><span style="COLOR: #0000ff">="classpath:META-INF/cxf/cxf.xml"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">import&nbsp;</span><span style="COLOR: #ff0000">resource</span><span style="COLOR: #0000ff">="classpath:META-INF/cxf/cxf-extension-soap.xml"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">import&nbsp;</span><span style="COLOR: #ff0000">resource</span><span style="COLOR: #0000ff">="classpath:META-INF/cxf/cxf-servlet.xml"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="serviceClass"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="com.exchangebit.nms.magic.NotifyServiceImpl"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="aegisDatabinding"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="org.apache.cxf.aegis.databinding.AegisDatabinding"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="serviceFactory"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="dataBinding"</span><span style="COLOR: #ff0000">&nbsp;ref</span><span style="COLOR: #0000ff">="aegisDatabinding"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="serverBeanFactory"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="org.apache.cxf.frontend.ServerFactoryBean"</span><span style="COLOR: #ff0000">&nbsp;init-method</span><span style="COLOR: #0000ff">="create"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="address"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="/NotifyService"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="bindingId"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="http://schemas.xmlsoap.org/soap/"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="serviceBean"</span><span style="COLOR: #ff0000">&nbsp;ref</span><span style="COLOR: #0000ff">="serviceClass"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="serviceFactory"</span><span style="COLOR: #ff0000">&nbsp;ref</span><span style="COLOR: #0000ff">="serviceFactory"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jaxws:endpoint&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="notifyService"</span><span style="COLOR: #ff0000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implementor</span><span style="COLOR: #0000ff">="com.exchangebit.nms.magic.NotifyServiceImpl"</span><span style="COLOR: #ff0000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address</span><span style="COLOR: #0000ff">="/NotifyService"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">jaxws:serviceFactory&gt;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;bean="serviceFactory"/&gt;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jaxws:serviceFactory</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jaxws:endpoint</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">beans</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>其实，跟前一种JAX-WS的方式转换非常简单，把其中的注释去掉就是Aegis绑定，注释掉就是JAX-WS。<br>客户端没有在SPRING里试成功，但写代码也相当简单，Aegis真好：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getBean&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">notifyClient</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientProxyFactoryBean&nbsp;factory&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ClientProxyFactoryBean();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory.setServiceClass(NotifyService.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory.setAddress(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://127.0.0.1:8080/ebnms/NotifyService</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory.getServiceFactory().setDataBinding(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;AegisDatabinding());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NotifyService&nbsp;client&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(NotifyService)&nbsp;factory.create();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoTest&nbsp;(client);</span></div>
<p><br>这次，到是CXF的SERVER和CLIENT都可以正常通信了。但我不说也知道啦，PERL又出问题了!</p>
<p>&nbsp;</p>
第三步，<br>又进一步搜，才知道Document, Literal, RPC, Encoding对SOAP消息的影响，<a href="http://www-128.ibm.com/developerworks/webservices/library/ws-whichwsdl/">这篇文章</a>(<a href="http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/">中文的</a>)相当好!<br>大义是RPC/Encoding将方法名称放入了operation节中，并且消息里含有类型信息，不方便检验。<br>而Document/Literal通过增加WSDL复杂度，将方法名、参数类型全部放入了types一节，方便了处理。<br>而SOAP::Lite只支持RPC/Encoding的方式，但也有办法让它形成Doc/Lit的消息：<a href="http://msdn2.microsoft.com/en-us/library/ms995764.aspx">点这里</a>。<br>但，这种方法只支持JAX-WS的服务，Aegis的PERL就会出错了。<br><br>所以，不管用哪种要么JAVA的CLIENT和SERVER通信有问题，不然就是把PERL拒之门外。我怀疑是不是CXF的JAX-WS的数组处理有问题，不然Aegis为何不出错？另外，Aegis对PERL的消息不够宽容，本已是Doc/Lit格式，只是带有TYPE信息也会出错。<br>不知如何解，先记在此，以后回过头来再研究了。
<img src ="http://www.blogjava.net/alwayscy/aggbug/135074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-08-07 21:39 <a href="http://www.blogjava.net/alwayscy/archive/2007/08/07/135074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SOAP::Lite组装和处理struct及array参数及返回值时的要点</title><link>http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Fri, 03 Aug 2007 14:37:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/134343.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/134343.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/134343.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: SOAP::Lite的Lite是说其好用，其实它的实现并不&#8220;轻量&#8221;，功能也非常强大，所以我们要用好它。在调用服务时，有时遇到有复杂结构或者数组时，还是有点小麻烦，下面以调用以下三个函数为例分别写出SOAP::Lite如何组合它们的参数，其它情况也应该能迎刃而解。public&nbsp;class&nbsp;DeviceValue&nbsp;{&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/134343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-08-03 22:37 <a href="http://www.blogjava.net/alwayscy/archive/2007/08/03/134343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Net::Server::Multiplex结构</title><link>http://www.blogjava.net/alwayscy/archive/2007/05/29/120637.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Tue, 29 May 2007 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/05/29/120637.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/120637.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/05/29/120637.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/120637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/120637.html</trackback:ping><description><![CDATA[<p>$self-&gt;{net_server}就是Multiplex，为了能够实现多态调用（在父类中调用实现子类的方法，PERL中使用SUPER实现），又定义了：</p> <p>Net::Server::Multiplex::MUX</p> <p>每有一个新连接，会NEW一个这样的对象进行管理。</p> <p>&nbsp;</p> <p>而封装的IO::Multiplex对象是存在：$self-&gt;{net_server}-&gt;{mux}中。</p><img src ="http://www.blogjava.net/alwayscy/aggbug/120637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-05-29 11:11 <a href="http://www.blogjava.net/alwayscy/archive/2007/05/29/120637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Perl的几点：多行注释，REF函数，类的初始化</title><link>http://www.blogjava.net/alwayscy/archive/2007/05/24/119736.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Thu, 24 May 2007 07:31:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2007/05/24/119736.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/119736.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2007/05/24/119736.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/119736.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/119736.html</trackback:ping><description><![CDATA[<p>多行注释：<br>perl没有多行注释，可以用下面代替：<br><span style="COLOR: #ff0000">=pod</span><br>代码行;<br>.<br>.<br>.<br>代码行;<br><span style="COLOR: #ff0000">=cut<br></span><br><br>关于ref函数：<br>&nbsp;ref EXPR<br>&nbsp;ref&nbsp;&nbsp;&nbsp;&nbsp; Returns a non-empty string if EXPR is a reference, the empty<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string otherwise. If EXPR is not specified, $_ will be used. The<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value returned depends on the type of thing the reference is a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reference to. Builtin types include:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCALAR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARRAY<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CODE<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GLOB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVALUE</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the referenced object has been blessed into a package, then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that package name is returned instead. You can think of "ref" as<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a "typeof" operator.<br><br><br><br>讲类的段落，比较明了：<br>Object Construction<br>All objects are references, but not all references are objects. A reference won't work as an object unless its referent is specially marked to tell Perl what package it belongs to. The act of marking a referent with a package name--and therefore, its class, since a class is just a package--is known as blessing. You can think of the blessing as turning a reference into an object, although it's more accurate to say that it turns the reference into an object reference.</p>
<p>The bless function takes either one or two arguments. The first argument is a reference and the second is the package to bless the referent into. If the second argument is omitted, the current package is used. </p>
<p>$obj = { };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get reference to anonymous hash.<br>bless($obj);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Bless hash into current package.<br>bless($obj, "Critter");&nbsp;&nbsp;&nbsp;&nbsp; # Bless hash into class Critter.<br>Here we've used a reference to an anonymous hash, which is what people usually use as the data structure for their objects. Hashes are extremely flexible, after all. But allow us to emphasize that you can bless a reference to anything you can make a reference to in Perl, including scalars, arrays, subroutines, and typeglobs. You can even bless a reference to a package's symbol table hash if you can think of a good reason to. (Or even if you can't.) Object orientation in Perl is completely orthogonal to data structure.</p>
<p>Once the referent has been blessed, calling the built-in ref function on its reference returns the name of the blessed class instead of the built-in type, such as HASH. If you want the built-in type, use the reftype function from the attributes module. See use attributes in Chapter 31, "Pragmatic Modules".</p>
<p>And that's how to make an object. Just take a reference to something, give it a class by blessing it into a package, and you're done. That's all there is to it if you're designing a minimal class. If you're using a class, there's even less to it, because the author of a class will have hidden the bless inside a method called a constructor, which creates and returns instances of the class. Because bless returns its first argument, a typical constructor can be as simple as this: </p>
<p>package Critter;<br>sub spawn { bless {}; }<br>Or, spelled out slightly more explicitly: <br>package Critter;<br>sub spawn {<br>&nbsp;&nbsp;&nbsp; my&nbsp;&nbsp;&nbsp;&nbsp; $self = {};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Reference to an empty anonymous hash<br>&nbsp;&nbsp;&nbsp; bless&nbsp; $self, "Critter"; # Make that hash a Critter object<br>&nbsp;&nbsp;&nbsp; return $self;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Return the freshly generated Critter<br>}<br>With that definition in hand, here's how one might create a Critter object: <br>$pet = Critter-&gt;spawn;</p>
<p>12.4.1. Inheritable Constructors<br>Like all methods, a constructor is just a subroutine, but we don't call it as a subroutine. We always invoke it as a method--a class method, in this particular case, because the invocant is a package name. Method invocations differ from regular subroutine calls in two ways. First, they get the extra argument we discussed earlier. Second, they obey inheritance, allowing one class to use another's methods.</p>
<p>We'll describe the underlying mechanics of inheritance more rigorously in the next section, but for now, some simple examples of its effects should help you design your constructors. For instance, suppose we have a Spider class that inherits methods from the Critter class. In particular, suppose the Spider class doesn't have its own spawn method. The following correspondences apply: </p>
<p>Method Call Resulting Subroutine Call <br>Critter-&gt;spawn() Critter::spawn("Critter") <br>Spider-&gt;spawn() Critter::spawn("Spider") </p>
<p>The subroutine called is the same in both cases, but the argument differs. Note that our spawn constructor above completely ignored its argument, which means our Spider object was incorrectly blessed into class Critter. A better constructor would provide the package name (passed in as the first argument) to bless: </p>
<p>sub spawn {<br>&nbsp;&nbsp;&nbsp; my $class =&nbsp; shift;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Store the package name<br>&nbsp;&nbsp;&nbsp; my $self&nbsp; =&nbsp; { };<br>&nbsp;&nbsp;&nbsp; bless($self, $class);&nbsp;&nbsp;&nbsp;&nbsp; # Bless the reference into that package<br>&nbsp;&nbsp;&nbsp; return $self;<br>}<br>Now you could use the same subroutine for both these cases: <br>$vermin = Critter-&gt;spawn;<br>$shelob = Spider-&gt;spawn;<br>And each object would be of the proper class. This even works indirectly, as in: <br>$type&nbsp; = "Spider";<br>$shelob = $type-&gt;spawn;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # same as "Spider"-&gt;spawn<br>That's still a class method, not an instance method, because its invocant holds a string and not a reference.</p>
<p>If $type were an object instead of a class name, the previous constructor definition wouldn't have worked, because bless needs a class name. But for many classes, it makes sense to use an existing object as the template from which to create another. In these cases, you can design your constructors so that they work with either objects or class names: </p>
<p>sub spawn {<br>&nbsp;&nbsp;&nbsp; my $invocant = shift;<br>&nbsp;&nbsp;&nbsp; my $class&nbsp;&nbsp;&nbsp; = ref($invocant) || $invocant;&nbsp; # Object or class name<br>&nbsp;&nbsp;&nbsp; my $self&nbsp;&nbsp;&nbsp;&nbsp; = { };<br>&nbsp;&nbsp;&nbsp; bless($self, $class);<br>&nbsp;&nbsp;&nbsp; return $self;<br>}</p>
<p>12.4.2. Initializers<br>Most objects maintain internal information that is indirectly manipulated by the object's methods. All our constructors so far have created empty hashes, but there's no reason to leave them empty. For instance, we could have the constructor accept extra arguments to store into the hash as key/value pairs. The OO literature often refers to such data as properties, attributes, accessors, member data, instance data, or instance variables. The section "Instance Variables" later in this chapter discusses attributes in more detail.</p>
<p>Imagine a Horse class with instance attributes like "name" and "color": </p>
<p>$steed = Horse-&gt;new(name =&gt; "Shadowfax", color =&gt; "white");<br>If the object is implemented as a hash reference, the key/value pairs can be interpolated directly into the hash once the invocant is removed from the argument list: <br>sub new {<br>&nbsp;&nbsp;&nbsp; my $invocant = shift;<br>&nbsp;&nbsp;&nbsp; my $class = ref($invocant) || $invocant;<br>&nbsp;&nbsp;&nbsp; my $self = { @_ };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Remaining args become attributes<br>&nbsp;&nbsp;&nbsp; bless($self, $class);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Bestow objecthood<br>&nbsp;&nbsp;&nbsp; return $self;<br>}<br>This time we used a method named new for the class's constructor, which just might lull C++ programmers into thinking they know what's going on. But Perl doesn't consider "new" to be anything special; you may name your constructors whatever you like. Any method that happens to create and return an object is a de facto constructor. In general, we recommend that you name your constructors whatever makes sense in the context of the problem you're solving. For example, constructors in the Tk module are named after the widgets they create. In the DBI module, a constructor named connect returns a database handle object, and another constructor named prepare is invoked as an instance method and returns a statement handle object. But if there is no suitable context-specific constructor name, new is perhaps not a terrible choice. Then again, maybe it's not such a bad thing to pick a random name to force people to read the interface contract (meaning the class documentation) before they use its constructors.</p>
<p>Elaborating further, you can set up your constructor with default key/value pairs, which the user could later override by supplying them as arguments: </p>
<p>sub new {<br>&nbsp;&nbsp;&nbsp; my $invocant = shift;<br>&nbsp;&nbsp;&nbsp; my $class&nbsp;&nbsp; = ref($invocant) || $invocant;<br>&nbsp;&nbsp;&nbsp; my $self = {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color&nbsp; =&gt; "bay",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; legs&nbsp;&nbsp; =&gt; 4,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; owner&nbsp; =&gt; undef,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @_,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Override previous attributes<br>&nbsp;&nbsp;&nbsp; };<br>&nbsp;&nbsp;&nbsp; return bless $self, $class;<br>}</p>
<p>$ed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Horse-&gt;new;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # A 4-legged bay horse<br>$stallion = Horse-&gt;new(color =&gt; "black");&nbsp; # A 4-legged black horse<br>This Horse constructor ignores its invocant's existing attributes when used as an instance method. You could create a second constructor designed to be called as an instance method, and if designed properly, you could use the values from the invoking object as defaults for the new one: <br>$steed&nbsp; = Horse-&gt;new(color =&gt; "dun");<br>$foal&nbsp;&nbsp; = $steed-&gt;clone(owner =&gt; "EquuGen Guild, Ltd.");</p>
<p>sub clone {<br>&nbsp;&nbsp;&nbsp; my $model = shift;<br>&nbsp;&nbsp;&nbsp; my $self&nbsp; = $model-&gt;new(%$model, @_);<br>&nbsp;&nbsp;&nbsp; return $self;&nbsp;&nbsp;&nbsp;&nbsp; # Previously blessed by -&gt;new<br>}<br></p>
<img src ="http://www.blogjava.net/alwayscy/aggbug/119736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2007-05-24 15:31 <a href="http://www.blogjava.net/alwayscy/archive/2007/05/24/119736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装perl的net_ssleay的PPM包</title><link>http://www.blogjava.net/alwayscy/archive/2006/11/26/83576.html</link><dc:creator>我爱佳娃</dc:creator><author>我爱佳娃</author><pubDate>Sun, 26 Nov 2006 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/alwayscy/archive/2006/11/26/83576.html</guid><wfw:comment>http://www.blogjava.net/alwayscy/comments/83576.html</wfw:comment><comments>http://www.blogjava.net/alwayscy/archive/2006/11/26/83576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alwayscy/comments/commentRss/83576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alwayscy/services/trackbacks/83576.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 更新于2008年1月6日：<br>最近，又再次试图自己安装OPENSSL＋SSLeay，用了SSLeay里README.WIN32说的方法&nbsp;&nbsp;<a href='http://www.blogjava.net/alwayscy/archive/2006/11/26/83576.html'>阅读全文</a><img src ="http://www.blogjava.net/alwayscy/aggbug/83576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alwayscy/" target="_blank">我爱佳娃</a> 2006-11-26 11:35 <a href="http://www.blogjava.net/alwayscy/archive/2006/11/26/83576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>