﻿<?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-不知疲倦的猪-随笔分类-java</title><link>http://www.blogjava.net/loocky/category/9875.html</link><description>不知疲倦的猪</description><language>zh-cn</language><lastBuildDate>Thu, 08 May 2008 06:03:42 GMT</lastBuildDate><pubDate>Thu, 08 May 2008 06:03:42 GMT</pubDate><ttl>60</ttl><item><title>Tibco面经</title><link>http://www.blogjava.net/loocky/archive/2008/05/08/199139.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 08 May 2008 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2008/05/08/199139.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/199139.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2008/05/08/199139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/199139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/199139.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 我面的是tibco&nbsp; global support的职位，他们HR张小姐是个不错的人，跟我详细介绍了这个职位，并约好面试时间，大概3月中旬，一面是个工程师面的，范围比较广Jms ,webservice,xpath,performance tuning,unix/linux,pl/sql,jta等等吧，之后个他们一个姓王的manager英语面试，大概有半个小时吧，我们交流的还是蛮愉快的，他告诉我有夜班的情况，工资也是double等等，也说了他们的薪水不会很高，2面试下旬开始也是一个工程师面的，这次只是范围更广，但是不深入，感觉没有太大问题，面完后还是上次那个manager，我们沟通了一下薪水问题，manager让我说一下薪资要求，他跟国外沟通一下，过了2天给我电话，说他们薪水达不到我期望的值，让我考虑一下，后来我给manager打了个电话，说很遗憾不能去那边，以后有机会合作，那个manager和nice的，也比较职业。<br />
&nbsp;&nbsp; 为什么放弃了这个机会主要是2个原因：1：tibco跟文思合作，让我对tibco的印象打了折扣 2：薪水。<br />
</p><img src ="http://www.blogjava.net/loocky/aggbug/199139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2008-05-08 09:43 <a href="http://www.blogjava.net/loocky/archive/2008/05/08/199139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>猎头职位，天津地区java(高级)工程师</title><link>http://www.blogjava.net/loocky/archive/2008/04/29/197007.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Tue, 29 Apr 2008 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2008/04/29/197007.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/197007.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2008/04/29/197007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/197007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/197007.html</trackback:ping><description><![CDATA[美资外企，招聘高级java工程师（工作地点天津）,有国外工作或者培训的机会。<br />
<font size="6"><font color="Red">务必</font></font><font color="Red">请注明应聘职位！</font><br />
<br />
敬请有意者尽快发简历，收到简历一周之内电话面试，外地应聘人员，一律采用电话面试。<br />
Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#97;&#118;&#97;&#111;&#107;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;">javaok@126.com</a><br />
msn：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#97;&#118;&#97;&#111;&#107;&#50;&#48;&#48;&#56;&#64;&#104;&#111;&#116;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">javaok2008@hotmail.com</a><br />
<br />
此职位2个月内有效，希望尽快投简历。<br />
&nbsp;&nbsp;<br />
<font color="Red">职位1：软件工程师（工作地点天津）</font><br />
扎实的Java基本功(熟悉java.util,thread,IO,network)<br />
深刻认识面向对象程序设计<br />
熟练使用PL/SQL及JDBC,最好使用过Oracle和MS SQL<br />
熟悉Linux环境和基本Shell的编写<br />
熟悉Servlet,JSP,了解jstl等taglib技术，熟悉JAVASCRIPT<br />
理解各种J2EE提及的设计模和基本技术，至少熟练其中三种技术(Servlet,Jsp,EJB,JMX,JMS,Web Service,Corba)<br />
3年j2ee开发经验，技术实力强者可以为2年<br />
英语能够读写，最好能够简单交流。<br />
<br />
<font color="Red">职位2:高级软件工程师（工作地点天津）</font><br />
An senior-level position as part of the
softwaredevelopmentteamdesigning and developing
advancedlarge-scalehigh-availabilitymulti-tier transactional systems.<br />
<br />
Seeking qualified Java developer with a broad and in
depthknowledgeofsoftware engineering concepts, technologies, and
practices.Willbecomponent owner for systems with large real-world
customer base.<br />
<br />
Responsibilities include:<br />
Design, develop and modify software based on
requirements.Mustutilizegood design practices, documentation, and
security policies.<br />
Lead team of developers to develop, test, resolve
defects,anddocumentassigned application modules. Conduct design and
codereviewswith teammembers or peers.<br />
Follow the process of an iterative software
developmentlifecycle.Including proper interactions with
development,projectmanagement,quality assurance, database, and
productionsupportpersonnel.<br />
Gain clear understanding of the application architecture, database design, and business domain for the assigned products.<br />
Keeping up with new technology and extend its applicability to the product.<br />
Perform the above duties for new implementations and maintenance of existing systems in production.<br />
Required Skills<br />
<br />
3 year working experience with Java&nbsp;&nbsp;programming in enterprise-level applications<br />
Strong knowledge in object oriented design and programming<br />
Strong experience in database programming and queries with JDBC and SQL, using databases such as Oracle<br />
Experience with database driven multi-tier web application development<br />
Experience with Linux environment and shell scripting<br />
Ability to own component development from requirements through implementation<br />
Ability to interface successfully with clients and office personnel<br />
<br />
<br />
Desired Skills:<br />
Experience with web development environments such as Apache, Tomcat<br />
Experience with SOAP-based web services<br />
Experience with database reporting.<br />
Ability to work in a fast paced &amp; dynamic company environment<br />
Excellent oral and written communication skills in English<br />
Excellent time management and multi-tasking capability<img src ="http://www.blogjava.net/loocky/aggbug/197007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2008-04-29 08:55 <a href="http://www.blogjava.net/loocky/archive/2008/04/29/197007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jboss ejb config (jboss.dtd)</title><link>http://www.blogjava.net/loocky/archive/2008/03/06/184136.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 06 Mar 2008 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2008/03/06/184136.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/184136.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2008/03/06/184136.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/184136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/184136.html</trackback:ping><description><![CDATA[<p>JMS CONTAINER INVOKER proxy-factory-config</p>
<p><br />
&lt;proxy-factory-config&gt;<br />
&nbsp;&nbsp; &lt;JMSProviderAdapterJNDI&gt;DefaultJMSProvider&lt;/JMSProviderAdapterJNDI&gt;<br />
&nbsp;&nbsp; &lt;ServerSessionPoolFactoryJNDI&gt;stdjmspool&lt;/ServerSessionPoolFactoryJNDI&gt;<br />
&nbsp;&nbsp; &lt;MinimumSize&gt;1&lt;/MinimumSize&gt;<br />
&nbsp;&nbsp; &lt;MaximumSize&gt;15&lt;/Maximumsize&gt;<br />
&nbsp;&nbsp; &lt;KeepAliveMills&gt;30000&lt;/keepAliveMills&gt;<br />
&nbsp;&nbsp; &lt;MaxMessages&gt;10&lt;/MaxMessages&gt;&nbsp; <br />
&nbsp;&nbsp; &lt;MDBConfig&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ReconnectIntervalSec&gt;10&lt;/ReconnectIntervalSec&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DLQConfig&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DestinationQueue&gt;queue/DLQ&lt;/DestinationQueue&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MaxTimesRedelivered&gt;10&lt;/MaxTimesRedelivered&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TimeToLive&gt;0&lt;/TimeToLive&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DLQConfig&gt;<br />
&nbsp;&nbsp; &lt;/MDBConfig&gt;<br />
&nbsp; &lt;/proxy-factory-config&gt;</p>
<p>&nbsp; MinimuSize :This specifies the minimum pool size for MDBS processig ,this defaluts to 1<br />
&nbsp; Maximusize :this specified the upper limit to the number of concurrent MDBS that will be <br />
&nbsp; allowed for the JMS destination ,this default to 15.<br />
&nbsp; MaxMessages:It is the maximum number of messages that can be assigned to a server session at one time. This defaults to 1. This<br />
&nbsp; value should not be modified from the default unless your JMS provider indicates this is supported.&nbsp; <br />
&nbsp; KeepAliveMillis:This specifies the keep alive time interval in milliseconds for sessions in the session pool.<br />
The default is 30000 .i think if it is not consumed ,then i will store in file or DB,not stay in pool(Memory)<br />
MDBConfig:Configuration for the MDB JMS connection behavior. </p>
<p>&nbsp; ReconnectIntervalSec:he time to wait (in seconds) before trying to recover the connection to the JMS<br />
server.</p>
<p>&nbsp; DeliveryActive: Whether or not the MDB is active at startup. The default is true.</p>
<p>DLQConfig: Configuration for an MDB's dead letter queue, used when messages are redelivered too many<br />
times.</p>
<p>EJB container-pool-conf element</p>
<p>&nbsp;MinimumSize:The MaximumSize specifies the maximum number of pool instances that are allowed.<br />
MaximumSize:The MaximumSize specifies the maximum number of pool instances that are allowed.<br />
strictMaximumSize:When there are MaximumSize active instances, any subsequent requests will be blocked<br />
until an instance is freed back to the pool. The default value for strictMaximumSize is false.</p>
<p>strictTimeout:A value less than or equal to 0 will mean not to wait at<br />
all. When a request times out waiting for an instance a java.rmi.ServerException is generated and the call<br />
aborted.&nbsp;&nbsp;&nbsp; </p>
<p><br />
these all from JBOSS.DTD</p><img src ="http://www.blogjava.net/loocky/aggbug/184136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2008-03-06 09:34 <a href="http://www.blogjava.net/loocky/archive/2008/03/06/184136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>how to set up duke bank for Jboss</title><link>http://www.blogjava.net/loocky/archive/2008/01/18/176114.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 18 Jan 2008 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2008/01/18/176114.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/176114.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2008/01/18/176114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/176114.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/176114.html</trackback:ping><description><![CDATA[<p>1:download resource<br />
----------------------------------------------|<br />
download jboss4.0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
download&nbsp; j2ee-1_4-doc-tutorial_2.zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; <br />
download apache-ant-1.6.2-bin.tar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
download&nbsp; j2sdk-1_4_2_15-linux-i586.bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
download&nbsp; jbossj2ee-src.zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
----------------------------------------------|</p>
<p><br />
2: create user .<br />
----------------------------------------------|&nbsp; <br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
useradd jboss -g oinstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
passwd jboss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
password:123456&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
su - jboss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; <br />
----------------------------------------------|</p>
<p>3:copy releated file and unzip files<br />
----------------------------------------------------------------------------------|<br />
pwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
/home/jboss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
mkdir soft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
ll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
/home/jboss/soft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
copy ant ,tutorial ,jdk, jboss and jbosstutorial to /home/jboss/soft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
[jboss@ohebt soft]$ ll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
total 139560&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; <br />
-rw-r--r--&nbsp; 1 jboss oinstall&nbsp; 7931179 Nov 26 15:16 apache-ant-1.6.2-bin.tar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
-rw-r--r--&nbsp; 1 jboss oinstall 17135608 Jan 15 10:56 j2ee-1_4-doc-tutorial_2.zip&nbsp;&nbsp;&nbsp; |<br />
-rwxr--r--&nbsp; 1 jboss oinstall 36377609 Jul 27 16:13 j2sdk-1_4_2_15-linux-i586.bin&nbsp; |<br />
-rw-r--r--&nbsp; 1 jboss oinstall 80866589 Jan 10 09:13 jboss-4.0.5.GA.zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
-rw-r--r--&nbsp; 1 jboss oinstall&nbsp;&nbsp; 399391 Jan 14 16:47 jbossj2ee-src.zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
tar -zxvf apache-ant-1.6.2-bin.tar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
./j2sdk-1_4_2_15-linux-i586.bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
unzip jboss-4.0.5.GA.zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
unzip j2ee-1_4-doc-tutorial_2.zip -d ..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
unzip jbossj2ee-src.zip -d ../j2eetutorial14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
[jboss@ohebt ~]$ cd ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
[jboss@ohebt ~]$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
[jboss@ohebt ~]$ ll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
total 24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
drwxr-xr-x&nbsp; 2 jboss oinstall 4096 Jan 17 03:39 Desktop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
drwxr-xr-x&nbsp; 5 jboss oinstall 4096 Jan 17 08:03 j2eetutorial14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
drwxr-xr-x&nbsp; 5 jboss oinstall 4096 Jan 17 07:59 soft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
----------------------------------------------------------------------------------|</p>
<p>4 modify user env<br />
----------------------------------------------------------|<br />
vi .bashrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
add the following four lines to the end of .bashrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
export ANT_HOME=/home/jboss/soft/apache-ant-1.6.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
export JAVA_HOME=/home/jboss/soft/j2sdk1.4.2_15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
export JBOSS_HOME=/home/jboss/soft/jboss-4.0.5.GA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
export PATH=${ANT_HOME}/bin:${JAVA_HOME}/bin:$PATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
----------------------------------------------------------|</p>
<p>5:logout and relogin<br />
---------------------------------|<br />
&nbsp;the user env become effective&nbsp;&nbsp; |<br />
---------------------------------|</p>
<p>6: config&nbsp; hsqldb-ds.xml<br />
---------------------------------------------------------------------------------------------------------|<br />
cd /home/jboss/soft/jboss-4.0.5.GA/server/default/deploy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
vi hsqldb-ds.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
comment&nbsp; &lt;connection-url&gt;jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB&lt;/connection-url&gt;&nbsp; |<br />
add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;connection-url&gt;jdbc:hsqldb:hsql://localhost:1701&lt;/connection-url&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
uncomment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
&nbsp;&nbsp; &lt;mbean code="org.jboss.jdbc.HypersonicDatabase"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; name="jboss:service=Hypersonic"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="Port"&gt;1701&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="BindAddress"&gt;${jboss.bind.address}&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="Silent"&gt;true&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="Database"&gt;default&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="Trace"&gt;false&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="No_system_exit"&gt;true&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp; &lt;/mbean&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mbean code="org.jboss.jdbc.HypersonicDatabase"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; name="jboss:service=Hypersonic,database=localDB"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="Database"&gt;localDB&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;attribute name="InProcessMode"&gt;true&lt;/attribute&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp; &lt;/mbean&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
uncomment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;depends&gt;jboss:service=Hypersonic,database=localDB&lt;/depends&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
add &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp; &lt;depends&gt;jboss:service=Hypersonic&lt;/depends&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
---------------------------------------------------------------------------------------------------------|<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
7:modify j2ee_tutorial related file<br />
--------------------------------------------------|<br />
cd /home/jboss/j2eetutorial14/examples/bank&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
vi&nbsp; build.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
only modify one line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
jdbc.resource.name=DefaultDS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
cd /home/jboss/j2eetutorial14/examples/bank/web&nbsp;&nbsp; | <br />
there's three \$ exits in the follwoing file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
transferAck.jsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
atmAck.jsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
accountList.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
delete \$ from the above three file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
--------------------------------------------------| </p>
<p>8: starup jboss<br />
--------------------------------------------------|<br />
cd /home/jboss/soft/jboss-4.0.5.GA/bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
nohup ./run.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
--------------------------------------------------|</p>
<p>9: Modify build related file<br />
--------------------------------------------|<br />
cd /home/jboss/j2eetutorial14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
modify jboss-build.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
jboss.home=/home/jboss/soft/jboss-4.0.5.GA&nbsp; |<br />
jboss.server=${jboss.home}/server/default&nbsp;&nbsp; |<br />
jboss.deploy.dir=${jboss.server}/deploy&nbsp;&nbsp;&nbsp;&nbsp; |<br />
--------------------------------------------|</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/loocky/aggbug/176114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2008-01-18 10:42 <a href="http://www.blogjava.net/loocky/archive/2008/01/18/176114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转findbugs的使用</title><link>http://www.blogjava.net/loocky/archive/2007/11/23/162656.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 23 Nov 2007 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/11/23/162656.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/162656.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/11/23/162656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/162656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/162656.html</trackback:ping><description><![CDATA[<p>官方网站：<a href="http://findbugs.sourceforge.net/">http://findbugs.sourceforge.net/</a><br />
Eclipse插件：<a href="http://findbugs.sourceforge.net/downloads.html">http://findbugs.sourceforge.net/downloads.html</a></p>
<p>　　<strong>插件管理技巧</strong><br />
<br />
　　提示：新下载的插件PlugIn一定不要都放在原始的Eclipse目录下去。<br />
</p>
<ol>
    <li>前提是你已经安装好了Eclipse工具了，比如安装在E:\OpenSource\Eclipse\目录下，以下这个目录以%ECLIPSE_HOME%来进行表示；
    <li>此时默认的插件是在%ECLIPSE_HOME%\plugins目录中的；
    <li>在%ECLIPSE_HOME%下建立一个PlugInsNew的目录；<br />
    比如：E:\OpenSource\Eclipse\PlugInsNew\
    <li>你下载了个新的插件，比如叫做：XYZ <br />
    　那么就在%ECLIPSE_HOME%\PlugInsNew\目录下建立XYZ目录，目录里面是eclipse目录，eclipse目录包含有features与plugins两个子目录；结构如下图所示：<br />
    <br />
    　　<img height="410" src="http://www.webdn.com/web_file/program/jsp/060208087/images/xq50b3j256x9.jpg" width="220" border="0"  alt="" /><br />
    <li>把下载的新插件的文件放在以下相应目录中 <br />
    %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features<br />
    %ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins<br />
    <li>建立相关的.link的文件 <br />
    然后在%ECLIPSE_HOME%\links目录里建立一个XYZ.link的文件 <br />
    内容如是：path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。 <br />
    当然，采用相对路径来表示可能更直观一些，方便进行文件整体移动和小组全部成员的共享命名用，省得移动后要改动Link文件里的绝对路径而费心费力。直接拷贝过去就可以使用。 <br />
    即XYZ.link文件的内容如是：path=../PlugInsNew/XYZ <br />
    这样，如果你下载了多个插件就可以如法炮制建立多个Link文件，想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%\links的目录中即可，使用与管理都很方便，建议千万不要放在默认的安装目录中； <br />
    如果你的%ECLIPSE_HOME%与此不同，请修改XYZ.link文件里的路径<br />
    <li>删除，关闭Eclipse <br />
    删除%ECLIPSE_HOME%\links\XYZ.link文件即可 <br />
    删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文件<br />
    <li>重新启动Eclipse即可 </li>
</ol>
<p>　　<strong>使用</strong><br />
<br />
　　重新启动Eclipse后，在Help =&gt; About Eclipse SDK =&gt; Plug-in Details你可以看到由&#8220;FindBugs Project&#8221;提供的&#8220;FindBugs Plug-in&#8221;版本0.0.17插件，如下图所示：<br />
<br />
　　<img height="439" src="http://www.webdn.com/web_file/program/jsp/060208087/images/ifrs62d7h0jt.jpg" width="520" border="0"  alt="" /><br />
<br />
　　<strong>FindBugs的使用方法</strong><br />
<br />
　　FindBugs是一个可以在Java程序中发现Bugs的程序。 <br />
<br />
　　它是专门用来寻找处于&#8220;Bug Patterns&#8221;列表中的代码的。 <br />
<br />
　　Bug Patterns指很有可能是错误的代码的实例。<br />
<br />
　　目前FindBugs最高版本0.9.4，不过更新速度很快的，你应当经常上去看看是否有新版本发布。Eclipse plugin for FindBugs最高版本0.0.17。<br />
<br />
　　<strong>系统要求</strong><br />
<br />
　　使用FindBugs至少需要JDK1.4.0以上版本，FindBugs是平台独立的，可以运行于GNU/Linux、Windows、MacOS X　等平台上。<br />
<br />
　　运行FindBugs至少需要有256 MB内存，如果你要分析一个很大的项目，那就需要更加多的内存了。<br />
<br />
　　FindBugs独立运行和与Ant结合的详细操作就不介绍了，可以看官方的文档<a href="http://findbugs.sourceforge.net/manual/" target="_blank"><u>http://findbugs.sourceforge.net/manual/</u></a><br />
<br />
　　独立运行的效果图如下：<br />
<br />
　　<img height="509" src="http://www.webdn.com/web_file/program/jsp/060208087/images/622m736481l0.jpg" width="554" border="0"  alt="" /><br />
</p>
<p>　　本文主要介绍在Eclipse中使用的情况<br />
<br />
　　打开Bug Details视图<br />
<br />
　　Windows =&gt; Show View =&gt; Other&#8230; =&gt; FindBugs =&gt; BugDetails<br />
<br />
　　<img height="414" src="http://www.webdn.com/web_file/program/jsp/060208087/images/41175t939i9s.jpg" width="296" border="0"  alt="" /><br />
<br />
　　在Package Explorer或Navigator视图中，选中你的Java项目，右键，可以看到&#8220;Find Bugs&#8221;菜单项，子菜单项里有&#8220;Find Bugs&#8221;和&#8220;Clear Bug Markers&#8221;两项内容，如下图所示：<br />
<br />
　　<img height="459" src="http://www.webdn.com/web_file/program/jsp/060208087/images/2ezt0h504fus.jpg" width="309" border="0"  alt="" /><br />
<br />
　　我们建立一个简单的测试文件Test.java 内容如下： <br />
<br />
</p>
<pre class="code">public class Test { private String[] name; public String[] getName() { return name; } public void setName(String[] name) { this.name = name; } } </pre>
<p><br />
　　我们点中&#8220;Find Bugs&#8221;，运行时会出现如下进度框：<br />
<br />
　　运行结束后可以在Problems中看到增加了如下的警告信息内容<br />
<br />
　　FindBugs运行后的警告信息内容不仅在Problems视图中显示，而且将标记在源代码标记框中，在源代码编辑器中我们可以看到警告标识，如下图： <br />
<br />
　　当光标指向你的警告信息的代码上面时，就会有相应的错误提示信息，与Eclipse本身的错误或警告信息提示类似。 <br />
<br />
　　选中Problems视图里出现的相应问题，就会在代码编辑器里切换到相应的代码上去，方便根据相应的提示信息进行代码的修改。 <br />
<br />
　　<img height="193" src="http://www.webdn.com/web_file/program/jsp/060208087/images/nrs082xwhx4h.jpg" width="554" border="0"  alt="" /><br />
<br />
　　在Problems视图里，选中相应的问题条目，右键，在弹出的菜单中，可以看到&#8220;Show Bug Details&#8221;，如下图所示：<br />
<br />
　　<img height="246" src="http://www.webdn.com/web_file/program/jsp/060208087/images/jn3j1644io3y.jpg" width="146" border="0"  alt="" /><br />
<br />
　　点中它，会切换到Bug Details视图上去，显示更加详细的提示信息。<br />
<br />
　　当然，在代码编辑窗口中，点击带有警告提示信息的图标时，也会自动切换到Bud Details窗口去，查看详细的警告信息，如下图所示。<br />
<br />
　　<img height="160" src="http://www.webdn.com/web_file/program/jsp/060208087/images/t4h5k4q5i5sx.jpg" width="423" border="0"  alt="" /><br />
<br />
　　根据这里详细的信息，你可以得到FindBugs为什么会对你的代码报警告信息，及相应的处理办法，根据它的提示，你可以快速方便地进行代码修改。<br />
<br />
　　<img height="193" src="http://www.webdn.com/web_file/program/jsp/060208087/images/71ll9wu3h2c6.jpg" width="554" border="0"  alt="" /><br />
<br />
　　根据提示，我们将代码修改成如下，再运行就不会报有警告信息了。<br />
</p>
<pre class="code">public class Test { private String[] name; public String[] getName() {     String[] temp = name; return temp; } public void setName(String[] name) {     String[] temp = name; this.name = temp; } } </pre>
<p>　　<strong>配置FindBugs</strong><br />
<br />
　　选择你的项目，右键 =&gt; Properties =&gt; FindBugs =&gt;<br />
<br />
　　<img height="454" src="http://www.webdn.com/web_file/program/jsp/060208087/images/w9782i23chf6.jpg" width="553" border="0"  alt="" /><br />
<br />
　　可以配置的信息包括如上图所示的四个选项的相关设置：<br />
</p>
<ol>
    <li>Run FindBugs Automatically开关 <br />
    <br />
    当此项选中后，FindBugs将会在你修改Java类时自动运行，如你设置了Eclipse自动编译开关后，当你修改完Java文件保存，FindBugs就会运行，并将相应的信息显示出来。 <br />
    <br />
    当此项没有选中，你只能每次在需要的时候自己去运行FindBugs来检查你的代码。 <br />
    <br />
    <li>Minimum priority to report选择项 <br />
    <br />
    这个选择项是让你选择哪个级别的信息进行显示，有Low、Medium、High三个选择项可以选择，很类似于Log4J的级别设置啦。 比如： <br />
    <br />
    你选择了High选择项，那么只有是High级别的提示信息才会被显示。 <br />
    <br />
    你选择了Medium选择项，那么只有是Medium和High级别的提示信息才会被显示。 <br />
    <br />
    你选择了Low选择项，那么所有级别的提示信息都会被显示。<br />
    <br />
    <li>Enable bug categories选择项 <br />
    <br />
    在这里是一些显示Bug分类的选择： <br />
    <br />
    Correctness关于代码正确性相关方面的 <br />
    <br />
    Performance关于代码性能相关方面的 <br />
    <br />
    Internationalization关于代码国际化相关方面的 <br />
    <br />
    Multithreaded correctness关于代码多线程正确性相关方面的<br />
    <br />
    Style关于代码样式相关方面的<br />
    <br />
    Malicious code vulnerability关于恶意破坏代码相关方面的 <br />
    <br />
    比如：如果你把Style的检查框去掉不选择中它，那么与Style分类相关的警告信息就不会显示了。其它的类似。<br />
    <br />
    <li>Select bug patterns to check for选择项 <br />
    <br />
    在这里你可以选择所要进行检查的相关的Bug Pattern条目 <br />
    <br />
    可以从Bug codes、Detector name、Detector description中看到相应的是要检查哪些方面的内容，你可以根据需要选择或去掉相应的 检查条件。 </li>
</ol>
<p>　　<strong>总结 </strong><br />
<br />
　　此插件的功能很不错，可以帮助我们提升Java代码的编写能力，写出更加安全可靠的代码。建议使用或加在Ant里进行持续构建。 <br />
<br />
　　现在，你可以马上拿出你已经开发的一个项目，检查一下你的代码有没有问题了</p><img src ="http://www.blogjava.net/loocky/aggbug/162656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-11-23 15:59 <a href="http://www.blogjava.net/loocky/archive/2007/11/23/162656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JACORB开发corba应用</title><link>http://www.blogjava.net/loocky/archive/2007/11/22/162301.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 22 Nov 2007 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/11/22/162301.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/162301.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/11/22/162301.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/162301.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/162301.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上篇文章讲述了jacorb 的配置，本章讲叙其应用，随后的几篇文章会重点讲述corba的开发&nbsp;JACORB开发以及corba的请求方式：&nbsp;&nbsp; JacORB的应用开发一般分为以下五步：1.写IDL接口定义2.编译IDL接口定义生成Java类3.实现步骤2中生成的接口4.写服务器启动类，并注册到ORB5.写客户端去获取服务对象引用&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2007/11/22/162301.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/162301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-11-22 10:41 <a href="http://www.blogjava.net/loocky/archive/2007/11/22/162301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JACORB搭建一个corba的开发环境</title><link>http://www.blogjava.net/loocky/archive/2007/11/21/162026.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Wed, 21 Nov 2007 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/11/21/162026.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/162026.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/11/21/162026.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/162026.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/162026.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; how to setup jacorb dev env<br />
1:download JacORB_2_2</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.jacorb.org/download.html <br />
&nbsp; download ant<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://ant.apache.org/bindownload.cgi</p>
<p>2:extact JacORB_2_2.jar to d:\JacORB_2_2 </p>
<p>3:setup sys environment</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set ANT_HOME=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set JAVA_HOME=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set JACORB_HOME=d:\JacORB_2_2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin;%JACORB_HOME%\bin;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set CLASSPAHT=.;%CLASSPAHT%;%ANT_HOME%\lib\ant.jar;%JACORB_HOME%\lib\jarorb.jar;%JACORB_HOME%\lib\idl.jar\;%JACORB_HOME%\lib\logkit-1.2.jar</p>
<p>4:rename %JACORB_HOME%\etc\jacorb_properties.template to %JACORB_HOME%\etc\jacorb.properties<br />
&nbsp; and modify the 50th line to 53th line to<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ORBInitRef.NameService=file:/y:/nsiona.ref<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
ORBInitRef.NameService=file://d://test//NS_Ref<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
#ORBInitRef.NameService=http://www.x.y.z/~user/NS_Ref<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
#ORBInitRef.TradingService=http://www.x.y.z/~user/TraderRef<br />
&nbsp; <br />
&nbsp; modify 618th line to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jacorb.naming.ior_filename=d://test//NS_Ref</p>
<p>5:rename&nbsp; %JACORB_HOME%\jacotemplate.bat to %JACORB_HOME%\jaco.bat<br />
&nbsp; <br />
&nbsp; and modify related env variable<br />
&nbsp; <br />
&nbsp; rename&nbsp;&nbsp; %JACORB_HOME%\idltemplate.bat to %JACORB_HOME%\idl.bat<br />
&nbsp;&nbsp; <br />
&nbsp; and modify related env variable</p>
<p>&nbsp;</p>
<p>6:&nbsp; use ant compile and build idl and java</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp; cd&nbsp; %JACORB_HOME%\demo\grid&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; run ant<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; the generate class file in %JACORB_HOME%\classes&nbsp; and generated java file in %JACORB_HOME%\demo\grid</p>
<p><br />
7: open a new cmd window:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cd %JACORB_HOME%&nbsp;&nbsp; ns <br />
&nbsp; <br />
&nbsp;&nbsp; you can see the following result:&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ configuration jacorb loaded from file %JAORB_HOME%\etc\jacorb.properties]</p>
<p>&nbsp;&nbsp; open a new cmd window:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cd %JACORB_HOME%&nbsp;&nbsp; jaco demo.grid.Server<br />
&nbsp; you can see the following result:&nbsp;&nbsp;&nbsp; <br />
&nbsp; [ configuration jacorb loaded from file %JAORB_HOME%\etc\jacorb.properties]<br />
&nbsp;&nbsp; <br />
&nbsp; open a new cmd window:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cd %JACORB_HOME%&nbsp;&nbsp; jaco demo.grid.client<br />
&nbsp;&nbsp;&nbsp; you can see the following result:&nbsp;&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp; [ configuration jacorb loaded from file D:\work\nj\JACORB\etc\jacorb.properties]<br />
&nbsp;&nbsp; Height = 31<br />
&nbsp;&nbsp; Width = 14<br />
&nbsp;&nbsp; Old value at (30,13): 0.21<br />
&nbsp;&nbsp; Setting (30,13) to 470.11<br />
&nbsp;&nbsp; New value at (30,13): 470.11<br />
&nbsp;&nbsp; MyException, reason: This is only a test exception, no harm done :-)<br />
&nbsp;&nbsp; done.</p><img src ="http://www.blogjava.net/loocky/aggbug/162026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-11-21 10:36 <a href="http://www.blogjava.net/loocky/archive/2007/11/21/162026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMS复习</title><link>http://www.blogjava.net/loocky/archive/2007/08/15/136816.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Wed, 15 Aug 2007 01:20:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/08/15/136816.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/136816.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/08/15/136816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/136816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/136816.html</trackback:ping><description><![CDATA[<p>由于一些原因，最近要复习一些东西，所以就把JMS的东西再复习一遍，以下便是例子<br />
<br />
jms 中最重要的几个概念destination，ACKNOWLEDGE，subscribe,durable subscribe</p>
<p>destination：topic queque<br />
&nbsp;&nbsp;queue简单点说就是1:1 一个消息只能由一个consumer去消费，别的consumer来消费的时候已经没了，先到先得<br />
topic简单点说就是1:N 一个消息可以由多个consumer来消费，谁来消费都有<br />
&nbsp;subscribe，拿topic来说如果当前订阅不是持久订阅，只有再订阅后生产者生产得消息才能被consumer得到，持久订阅只要没有被consumer消费，早晚会消费这个消息<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;一下是几个例子<br />
&nbsp;<br />
&nbsp;queuesend：queque消息产生<br />
&nbsp;queuereceive：queque消息得消费<br />
&nbsp;topicsend ：topic消息得产生<br />
&nbsp;topicreceive1：topic消息的非订阅<br />
&nbsp;topicrecieve2：topic消息的持久订阅<br />
&nbsp;<br />
&nbsp;这个例子实在WEBLOGIC814上测试过的，当然要定义JMSSERVER,FACTORY,DESTINATION。<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;QueueSend<br />
&nbsp;<br />
&nbsp;import java.io.BufferedReader;<br />
import java.io.IOException;<br />
import java.io.InputStreamReader;<br />
import java.util.Hashtable;</p>
<p>import javax.jms.JMSException;<br />
import javax.jms.Queue;<br />
import javax.jms.QueueConnection;<br />
import javax.jms.QueueConnectionFactory;<br />
import javax.jms.QueueSender;<br />
import javax.jms.QueueSession;<br />
import javax.jms.Session;<br />
import javax.jms.TextMessage;<br />
import javax.naming.Context;<br />
import javax.naming.InitialContext;<br />
import javax.naming.NamingException;</p>
<p>public class QueueSend {<br />
&nbsp;// Defines the JNDI context factory.<br />
&nbsp;public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";</p>
<p>&nbsp;// Defines the JNDI provider url.<br />
&nbsp;public final static String PROVIDER_URL = " t3://localhost:7001";</p>
<p>&nbsp;// Defines the JMS connection factory for the queue.<br />
&nbsp;public final static String JMS_FACTORY = "SendJMSFactory";</p>
<p>&nbsp;// Defines the queue.<br />
&nbsp;public final static String QUEUE = "SendJMSQueue";</p>
<p>&nbsp;private QueueConnectionFactory qconFactory;</p>
<p>&nbsp;private QueueConnection qcon;</p>
<p>&nbsp;private QueueSession qsession;</p>
<p>&nbsp;private QueueSender qsender;</p>
<p>&nbsp;private Queue queue;</p>
<p>&nbsp;private TextMessage msg;</p>
<p>&nbsp;/**<br />
&nbsp; * Creates all the necessary objects for sending messages to a JMS queue.<br />
&nbsp; * <br />
&nbsp; * @param ctx<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI initial context<br />
&nbsp; * @param queueName<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name of queue<br />
&nbsp; * @exception NamingException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation cannot be performed<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to initialize due to internal error<br />
&nbsp; */<br />
&nbsp;public void init(Context ctx, String queueName) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;JMSException {<br />
&nbsp;&nbsp;qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);<br />
&nbsp;&nbsp;qcon = qconFactory.createQueueConnection();<br />
&nbsp;&nbsp;qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);<br />
&nbsp;&nbsp;queue = (Queue) ctx.lookup(queueName);<br />
&nbsp;&nbsp;qsender = qsession.createSender(queue);<br />
&nbsp;&nbsp;msg = qsession.createTextMessage();<br />
&nbsp;&nbsp;qcon.start();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Sends a message to a JMS queue.<br />
&nbsp; * <br />
&nbsp; * @param message<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message to be sent<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to send message due to internal error<br />
&nbsp; */<br />
&nbsp;public void send(String message) throws JMSException {<br />
&nbsp;&nbsp;msg.setText(message);<br />
&nbsp;&nbsp;qsender.send(msg);<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Closes JMS objects.<br />
&nbsp; * <br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to close objects due to internal error<br />
&nbsp; */<br />
&nbsp;public void close() throws JMSException {<br />
&nbsp;&nbsp;qsender.close();<br />
&nbsp;&nbsp;qsession.close();<br />
&nbsp;&nbsp;qcon.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * main() method.<br />
&nbsp; * <br />
&nbsp; * @param args<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebLogic Server URL<br />
&nbsp; * @exception Exception<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation fails<br />
&nbsp; */<br />
&nbsp;public static void main(String[] args) throws Exception {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;InitialContext ic = getInitialContext();<br />
&nbsp;&nbsp;&nbsp;QueueSend qs = new QueueSend();<br />
&nbsp;&nbsp;&nbsp;qs.init(ic, QUEUE);<br />
&nbsp;&nbsp;&nbsp;readAndSend(qs);<br />
&nbsp;&nbsp;&nbsp;qs.close();<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;private static void readAndSend(QueueSend qs) throws IOException,<br />
&nbsp;&nbsp;&nbsp;JMSException {<br />
&nbsp;&nbsp;BufferedReader msgStream = new BufferedReader(new InputStreamReader(<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.in));<br />
&nbsp;&nbsp;String line = null;<br />
&nbsp;&nbsp;boolean quitNow = false;<br />
&nbsp;&nbsp;do {<br />
&nbsp;&nbsp;&nbsp;System.out.print("Enter message (\"quit\" to quit): ");<br />
&nbsp;&nbsp;&nbsp;line = msgStream.readLine();<br />
&nbsp;&nbsp;&nbsp;if (line != null &amp;&amp; line.trim().length() != 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;qs.send(line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("JMS Message Sent: " + line + "\n");<br />
&nbsp;&nbsp;&nbsp;&nbsp;quitNow = line.equalsIgnoreCase("quit");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} while (!quitNow);</p>
<p>&nbsp;}</p>
<p>&nbsp;private static InitialContext getInitialContext() throws NamingException {<br />
&nbsp;&nbsp;Hashtable env = new Hashtable();<br />
&nbsp;&nbsp;env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);<br />
&nbsp;&nbsp;env.put(Context.PROVIDER_URL, PROVIDER_URL);<br />
&nbsp;&nbsp;return new InitialContext(env);<br />
&nbsp;}</p>
<p>}</p>
<p><br />
QueueReceive</p>
<p>import java.util.Hashtable;</p>
<p>import javax.jms.JMSException;<br />
import javax.jms.Message;<br />
import javax.jms.MessageListener;<br />
import javax.jms.Queue;<br />
import javax.jms.QueueConnection;<br />
import javax.jms.QueueConnectionFactory;<br />
import javax.jms.QueueReceiver;<br />
import javax.jms.QueueSession;<br />
import javax.jms.Session;<br />
import javax.jms.TextMessage;<br />
import javax.naming.Context;<br />
import javax.naming.InitialContext;<br />
import javax.naming.NamingException;</p>
<p>public class QueueReceive implements MessageListener {<br />
&nbsp;// Defines the JNDI context factory.<br />
&nbsp;public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";</p>
<p>&nbsp;// Defines the JNDI provider url.<br />
&nbsp;public final static String PROVIDER_URL = " t3://localhost:7001";</p>
<p>&nbsp;// Defines the JMS connection factory for the queue.<br />
&nbsp;public final static String JMS_FACTORY = "SendJMSFactory";</p>
<p>&nbsp;// Defines the queue.<br />
&nbsp;public final static String QUEUE = "SendJMSQueue";</p>
<p>&nbsp;private QueueConnectionFactory qconFactory;</p>
<p>&nbsp;private QueueConnection qcon;</p>
<p>&nbsp;private QueueSession qsession;</p>
<p>&nbsp;private QueueReceiver qreceiver;</p>
<p>&nbsp;private Queue queue;</p>
<p>&nbsp;private boolean quit = false;</p>
<p>&nbsp;/**<br />
&nbsp; * Message listener interface.<br />
&nbsp; * <br />
&nbsp; * @param msg<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message<br />
&nbsp; */<br />
&nbsp;public void onMessage(Message msg) {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String msgText;<br />
&nbsp;&nbsp;&nbsp;if (msg instanceof TextMessage) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;msgText = ((TextMessage) msg).getText();<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;msgText = msg.toString();<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;System.out.println("Message Received: " + msgText);</p>
<p>//&nbsp;&nbsp;&nbsp;if (msgText.equalsIgnoreCase("123")) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;synchronized (this) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quit = true;<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.notifyAll(); // Notify main thread to quit<br />
//&nbsp;&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (JMSException jmse) {<br />
&nbsp;&nbsp;&nbsp;jmse.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Creates all the necessary objects for receiving messages from a JMS<br />
&nbsp; * queue.<br />
&nbsp; * <br />
&nbsp; * @param ctx<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI initial context<br />
&nbsp; * @param queueName<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name of queue<br />
&nbsp; * @exception NamingException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation cannot be performed<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to initialize due to internal error<br />
&nbsp; */<br />
&nbsp;public void init(Context ctx, String queueName) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;JMSException {<br />
&nbsp;&nbsp;qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);<br />
&nbsp;&nbsp;qcon = qconFactory.createQueueConnection();<br />
&nbsp;&nbsp;qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);<br />
&nbsp;&nbsp;queue = (Queue) ctx.lookup(queueName);<br />
&nbsp;&nbsp;qreceiver = qsession.createReceiver(queue);<br />
&nbsp;&nbsp;qreceiver.setMessageListener(this);<br />
&nbsp;&nbsp;qcon.start();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Closes JMS objects.<br />
&nbsp; * <br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to close objects due to internal error<br />
&nbsp; */<br />
&nbsp;public void close() throws JMSException {<br />
&nbsp;&nbsp;qreceiver.close();<br />
&nbsp;&nbsp;qsession.close();<br />
&nbsp;&nbsp;qcon.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * main() method.<br />
&nbsp; * <br />
&nbsp; * @param args<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebLogic Server URL<br />
&nbsp; * @exception Exception<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if execution fails<br />
&nbsp; */</p>
<p>&nbsp;public static void main(String[] args) throws Exception {</p>
<p>&nbsp;&nbsp;InitialContext ic = getInitialContext();<br />
&nbsp;&nbsp;QueueReceive qr = new QueueReceive();<br />
&nbsp;&nbsp;qr.init(ic, QUEUE);</p>
<p>&nbsp;&nbsp;System.out<br />
&nbsp;&nbsp;&nbsp;&nbsp;.println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");</p>
<p>&nbsp;&nbsp;// Wait until a "quit" message has been received.<br />
&nbsp;&nbsp;synchronized (qr) {<br />
&nbsp;&nbsp;&nbsp;System.out.println("111111111111");<br />
&nbsp;&nbsp;&nbsp;while (!qr.quit) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("2222222222");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qr.wait();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("333333333");<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (InterruptedException ie) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;qr.close();<br />
&nbsp;}</p>
<p>&nbsp;private static InitialContext getInitialContext() throws NamingException {<br />
&nbsp;&nbsp;Hashtable env = new Hashtable();<br />
&nbsp;&nbsp;env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);<br />
&nbsp;&nbsp;env.put(Context.PROVIDER_URL, PROVIDER_URL);<br />
&nbsp;&nbsp;return new InitialContext(env);<br />
&nbsp;}</p>
<p>}</p>
<p>&nbsp;</p>
<p>TopicSend</p>
<p>import java.io.BufferedReader;<br />
import java.io.IOException;<br />
import java.io.InputStreamReader;<br />
import java.util.Hashtable;</p>
<p>import javax.jms.JMSException;<br />
import javax.jms.Session;<br />
import javax.jms.TextMessage;<br />
import javax.jms.Topic;<br />
import javax.jms.TopicConnection;<br />
import javax.jms.TopicConnectionFactory;<br />
import javax.jms.TopicSession;<br />
import javax.naming.Context;<br />
import javax.naming.InitialContext;<br />
import javax.naming.NamingException;<br />
import javax.jms.TopicPublisher;<br />
public class TopicSend {<br />
&nbsp;// Defines the JNDI context factory.<br />
&nbsp;public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";</p>
<p>&nbsp;// Defines the JNDI provider url.<br />
&nbsp;public final static String PROVIDER_URL = " t3://localhost:7001";</p>
<p>&nbsp;// Defines the JMS connection factory for the queue.<br />
&nbsp;public final static String JMS_FACTORY = "SendJMSFactory";</p>
<p>&nbsp;// Defines the queue.<br />
&nbsp;public final static String TOPIC = "SendJMSTopic";</p>
<p>&nbsp;private TopicConnectionFactory tconFactory;</p>
<p>&nbsp;private TopicConnection tcon;</p>
<p>&nbsp;private TopicSession tsession;</p>
<p>&nbsp;private TopicPublisher tsender;</p>
<p>&nbsp;private Topic topic;</p>
<p>&nbsp;private TextMessage msg;<br />
&nbsp;public static InitialContext ic ;</p>
<p>&nbsp;/**<br />
&nbsp; * Creates all the necessary objects for sending messages to a JMS queue.<br />
&nbsp; * <br />
&nbsp; * @param ctx<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI initial context<br />
&nbsp; * @param queueName<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name of queue<br />
&nbsp; * @exception NamingException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation cannot be performed<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to initialize due to internal error<br />
&nbsp; */<br />
&nbsp;public void init(Context ctx, String queueName) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;JMSException {<br />
&nbsp;&nbsp;tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);<br />
&nbsp;&nbsp;tcon = tconFactory.createTopicConnection();<br />
&nbsp;&nbsp;tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);<br />
&nbsp;&nbsp;System.out.println(topic);<br />
&nbsp;&nbsp;topic = (Topic) ctx.lookup(queueName);<br />
&nbsp;&nbsp;System.out.println(topic);<br />
&nbsp;&nbsp;tsender = tsession.createPublisher(topic);<br />
&nbsp;&nbsp;msg = tsession.createTextMessage();<br />
&nbsp;&nbsp;tcon.start();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Sends a message to a JMS queue.<br />
&nbsp; * <br />
&nbsp; * @param message<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message to be sent<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to send message due to internal error<br />
&nbsp; */<br />
&nbsp;public void send(String message) throws JMSException ,NamingException{<br />
&nbsp;&nbsp;System.out.println(topic+"-----------");<br />
&nbsp;&nbsp;msg.setText(message);<br />
&nbsp;&nbsp;tsender.publish(msg);<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Closes JMS objects.<br />
&nbsp; * <br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to close objects due to internal error<br />
&nbsp; */<br />
&nbsp;public void close() throws JMSException {<br />
&nbsp;&nbsp;tsender.close();<br />
&nbsp;&nbsp;tsession.close();<br />
&nbsp;&nbsp;tcon.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * main() method.<br />
&nbsp; * <br />
&nbsp; * @param args<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebLogic Server URL<br />
&nbsp; * @exception Exception<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation fails<br />
&nbsp; */<br />
&nbsp;public static void main(String[] args) throws Exception {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;ic= getInitialContext();<br />
&nbsp;&nbsp;&nbsp;TopicSend ts = new TopicSend();<br />
&nbsp;&nbsp;&nbsp;ts.init(ic, TOPIC);<br />
&nbsp;&nbsp;&nbsp;readAndSend(ts);<br />
&nbsp;&nbsp;&nbsp;ts.close();<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;private static void readAndSend(TopicSend ts) throws IOException,<br />
&nbsp;&nbsp;&nbsp;JMSException,NamingException {<br />
&nbsp;&nbsp;BufferedReader msgStream = new BufferedReader(new InputStreamReader(<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.in));<br />
&nbsp;&nbsp;String line = null;<br />
&nbsp;&nbsp;boolean quitNow = false;<br />
&nbsp;&nbsp;do {<br />
&nbsp;&nbsp;&nbsp;System.out.print("Enter message (\"quit\" to quit): ");<br />
&nbsp;&nbsp;&nbsp;line = msgStream.readLine();<br />
&nbsp;&nbsp;&nbsp;if (line != null &amp;&amp; line.trim().length() != 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;ts.send(line);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("JMS Message Sent: " + line + "\n");<br />
&nbsp;&nbsp;&nbsp;&nbsp;quitNow = line.equalsIgnoreCase("quit");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} while (!quitNow);</p>
<p>&nbsp;}</p>
<p>&nbsp;private static InitialContext getInitialContext() throws NamingException {<br />
&nbsp;&nbsp;Hashtable env = new Hashtable();<br />
&nbsp;&nbsp;env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);<br />
&nbsp;&nbsp;env.put(Context.PROVIDER_URL, PROVIDER_URL);<br />
&nbsp;&nbsp;return new InitialContext(env);<br />
&nbsp;}</p>
<p>}</p>
<p>&nbsp;</p>
<p>TopicReceive1</p>
<p>import java.util.Hashtable;</p>
<p>import javax.jms.JMSException;<br />
import javax.jms.Message;<br />
import javax.jms.MessageListener;<br />
import javax.jms.Session;<br />
import javax.jms.TextMessage;<br />
import javax.jms.Topic;<br />
import javax.jms.TopicConnection;<br />
import javax.jms.TopicConnectionFactory;<br />
import javax.jms.TopicSession;<br />
import javax.jms.TopicSubscriber;<br />
import javax.naming.Context;<br />
import javax.naming.InitialContext;<br />
import javax.naming.NamingException;</p>
<p><br />
public class TopicReceive1 implements MessageListener {<br />
&nbsp;// Defines the JNDI context factory.<br />
&nbsp;public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";</p>
<p>&nbsp;// Defines the JNDI provider url.<br />
&nbsp;public final static String PROVIDER_URL = " t3://localhost:7001";</p>
<p>&nbsp;// Defines the JMS connection factory for the queue.<br />
&nbsp;public final static String JMS_FACTORY = "SendJMSFactory";</p>
<p>&nbsp;// Defines the queue.<br />
&nbsp;public final static String TOPIC = "SendJMSTopic";</p>
<p>&nbsp;private TopicConnectionFactory tconFactory;</p>
<p>&nbsp;private TopicConnection tcon;</p>
<p>&nbsp;private TopicSession tsession;</p>
<p>&nbsp;private TopicSubscriber tsubscriber;</p>
<p>&nbsp;private Topic topic;</p>
<p>&nbsp;private boolean quit = false;</p>
<p>&nbsp;/**<br />
&nbsp; * Message listener interface.<br />
&nbsp; * <br />
&nbsp; * @param msg<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message<br />
&nbsp; */<br />
&nbsp;public void onMessage(Message msg) {<br />
&nbsp;&nbsp;System.out.println("===================");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String msgText;<br />
&nbsp;&nbsp;&nbsp;if (msg instanceof TextMessage) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;msgText = ((TextMessage) msg).getText();<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;msgText = msg.toString();<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;System.out.println("Message Received: " + msgText);</p>
<p>//&nbsp;&nbsp;&nbsp;if (msgText.equalsIgnoreCase("123")) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;synchronized (this) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quit = true;<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.notifyAll(); // Notify main thread to quit<br />
//&nbsp;&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (JMSException jmse) {<br />
&nbsp;&nbsp;&nbsp;jmse.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Creates all the necessary objects for receiving messages from a JMS<br />
&nbsp; * queue.<br />
&nbsp; * <br />
&nbsp; * @param ctx<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI initial context<br />
&nbsp; * @param queueName<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name of queue<br />
&nbsp; * @exception NamingException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation cannot be performed<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to initialize due to internal error<br />
&nbsp; */<br />
&nbsp;public void init(Context ctx, String queueName) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;JMSException {<br />
&nbsp;&nbsp;tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);<br />
&nbsp;&nbsp;tcon = tconFactory.createTopicConnection();<br />
&nbsp;&nbsp;tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);<br />
&nbsp;&nbsp;topic = (Topic) ctx.lookup(queueName);<br />
&nbsp;&nbsp;tsubscriber = tsession.createSubscriber(topic);<br />
&nbsp;&nbsp;//System.out.println("12");<br />
&nbsp;&nbsp;//Message msg = treceiver.receive();<br />
&nbsp;&nbsp;//msg.acknowledge();<br />
&nbsp;&nbsp;//tsubscriber = tsession.createSubscriber(topic);Message msg = tsubscriber.receive();msg.acknowledge();<br />
&nbsp;&nbsp;//System.out.println(msg);<br />
&nbsp;&nbsp;tsubscriber.setMessageListener(this);<br />
&nbsp;&nbsp;tcon.start();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Closes JMS objects.<br />
&nbsp; * <br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to close objects due to internal error<br />
&nbsp; */<br />
&nbsp;public void close() throws JMSException {<br />
&nbsp;&nbsp;tsubscriber.close();<br />
&nbsp;&nbsp;tsession.close();<br />
&nbsp;&nbsp;tcon.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * main() method.<br />
&nbsp; * <br />
&nbsp; * @param args<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebLogic Server URL<br />
&nbsp; * @exception Exception<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if execution fails<br />
&nbsp; */</p>
<p>&nbsp;public static void main(String[] args) throws Exception {</p>
<p>&nbsp;&nbsp;InitialContext ic = getInitialContext();<br />
&nbsp;&nbsp;TopicReceive1 tr1 = new TopicReceive1();<br />
&nbsp;&nbsp;tr1.init(ic, TOPIC);</p>
<p>&nbsp;&nbsp;System.out<br />
&nbsp;&nbsp;&nbsp;&nbsp;.println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;// Wait until a "quit" message has been received.<br />
//&nbsp;&nbsp;synchronized (tr1) {<br />
//&nbsp;&nbsp;&nbsp;System.out.println("111111111111");<br />
//&nbsp;&nbsp;&nbsp;while (!tr1.quit) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("2222222222");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tr1.wait();<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("333333333");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;} catch (InterruptedException ie) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;}<br />
&nbsp;&nbsp;tr1.close();<br />
&nbsp;}</p>
<p>&nbsp;private static InitialContext getInitialContext() throws NamingException {<br />
&nbsp;&nbsp;Hashtable env = new Hashtable();<br />
&nbsp;&nbsp;env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);<br />
&nbsp;&nbsp;env.put(Context.PROVIDER_URL, PROVIDER_URL);<br />
&nbsp;&nbsp;return new InitialContext(env);<br />
&nbsp;}</p>
<p>}</p>
<p><br />
TopicReceive2</p>
<p><br />
import java.util.Hashtable;</p>
<p>import javax.jms.JMSException;<br />
import javax.jms.Session;<br />
import javax.jms.TextMessage;<br />
import javax.jms.Topic;<br />
import javax.jms.TopicConnection;<br />
import javax.jms.TopicConnectionFactory;<br />
import javax.jms.TopicSession;<br />
import javax.jms.TopicSubscriber;<br />
import javax.naming.Context;<br />
import javax.naming.InitialContext;<br />
import javax.naming.NamingException;</p>
<p><br />
public class TopicReceive2 {<br />
&nbsp;// Defines the JNDI context factory.<br />
&nbsp;public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";</p>
<p>&nbsp;// Defines the JNDI provider url.<br />
&nbsp;public final static String PROVIDER_URL = " t3://localhost:7001";</p>
<p>&nbsp;// Defines the JMS connection factory for the queue.<br />
&nbsp;public final static String JMS_FACTORY = "SendJMSFactory";</p>
<p>&nbsp;// Defines the queue.<br />
&nbsp;public final static String TOPIC = "SendJMSTopic";</p>
<p>&nbsp;private TopicConnectionFactory tconFactory;</p>
<p>&nbsp;private TopicConnection tcon;</p>
<p>&nbsp;private TopicSession tsession;</p>
<p>&nbsp;private TopicSubscriber tsubscriber;</p>
<p>&nbsp;private Topic topic;</p>
<p>&nbsp;private boolean quit = false;</p>
<p><br />
&nbsp;/**<br />
&nbsp; * Creates all the necessary objects for receiving messages from a JMS<br />
&nbsp; * queue.<br />
&nbsp; * <br />
&nbsp; * @param ctx<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI initial context<br />
&nbsp; * @param queueName<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name of queue<br />
&nbsp; * @exception NamingException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if operation cannot be performed<br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to initialize due to internal error<br />
&nbsp; */<br />
&nbsp;public void init(Context ctx, String queueName) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;JMSException,InterruptedException {<br />
&nbsp;&nbsp;tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);<br />
&nbsp;&nbsp;tcon = tconFactory.createTopicConnection();<br />
&nbsp;&nbsp;tcon.setClientID("IP10.200.7.104");<br />
&nbsp;&nbsp;tcon.start();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);<br />
&nbsp;&nbsp;System.out.println("333333333333");<br />
&nbsp;&nbsp;topic = (Topic) ctx.lookup(queueName);<br />
&nbsp;&nbsp;//tsubscriber = tsession.createSubscriber(topic);<br />
&nbsp;&nbsp;tsubscriber= tsession.createDurableSubscriber(topic,"88888");<br />
&nbsp;&nbsp; for (int i=0; i&lt;3; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextMessage message = (TextMessage) tsubscriber.receive();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("message["+i+"]: " + message.getText());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.sleep(10000);<br />
&nbsp;&nbsp;//System.out.println("12");<br />
&nbsp;&nbsp;//Message msg = treceiver.receive();<br />
&nbsp;&nbsp;//msg.acknowledge();<br />
&nbsp;&nbsp;//tsubscriber = tsession.createSubscriber(topic);Message msg = tsubscriber.receive();msg.acknowledge();<br />
&nbsp;&nbsp;//System.out.println(msg);</p>
<p>&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * Closes JMS objects.<br />
&nbsp; * <br />
&nbsp; * @exception JMSException<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if JMS fails to close objects due to internal error<br />
&nbsp; */<br />
&nbsp;public void close() throws JMSException {<br />
&nbsp;&nbsp;tsubscriber.close();<br />
&nbsp;&nbsp;tsession.close();<br />
&nbsp;&nbsp;tcon.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * main() method.<br />
&nbsp; * <br />
&nbsp; * @param args<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebLogic Server URL<br />
&nbsp; * @exception Exception<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if execution fails<br />
&nbsp; */</p>
<p>&nbsp;public static void main(String[] args) throws Exception {</p>
<p>&nbsp;&nbsp;InitialContext ic = getInitialContext();<br />
&nbsp;&nbsp;TopicReceive2 tr2 = new TopicReceive2();<br />
&nbsp;&nbsp;tr2.init(ic, TOPIC);</p>
<p>&nbsp;&nbsp;System.out<br />
&nbsp;&nbsp;&nbsp;&nbsp;.println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;// Wait until a "quit" message has been received.<br />
//&nbsp;&nbsp;synchronized (tr1) {<br />
//&nbsp;&nbsp;&nbsp;System.out.println("111111111111");<br />
//&nbsp;&nbsp;&nbsp;while (!tr1.quit) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("2222222222");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tr1.wait();<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("333333333");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;} catch (InterruptedException ie) {<br />
//&nbsp;&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;&nbsp;}<br />
//&nbsp;&nbsp;}<br />
&nbsp;&nbsp;tr2.close();<br />
&nbsp;}</p>
<p>&nbsp;private static InitialContext getInitialContext() throws NamingException {<br />
&nbsp;&nbsp;Hashtable env = new Hashtable();<br />
&nbsp;&nbsp;env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);<br />
&nbsp;&nbsp;env.put(Context.PROVIDER_URL, PROVIDER_URL);<br />
&nbsp;&nbsp;return new InitialContext(env);<br />
&nbsp;}</p>
<p>}<br />
</p><img src ="http://www.blogjava.net/loocky/aggbug/136816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-08-15 09:20 <a href="http://www.blogjava.net/loocky/archive/2007/08/15/136816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>axis的一点总结</title><link>http://www.blogjava.net/loocky/archive/2007/06/15/124515.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 15 Jun 2007 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/06/15/124515.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近复习了一下AXIS,写了2个小例子1：&nbsp; bean&nbsp;1package&nbsp;test.soap.vo;&nbsp;2&nbsp;3import&nbsp;java.io.Serializable;&nbsp;4&nbsp;5public&nbsp;class&nbsp;User&nbsp;implements&nbsp;Serializable&nbsp;{&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2007/06/15/124515.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/124515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-06-15 15:48 <a href="http://www.blogjava.net/loocky/archive/2007/06/15/124515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HttpConnection</title><link>http://www.blogjava.net/loocky/archive/2007/05/14/117233.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Mon, 14 May 2007 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/05/14/117233.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/117233.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/05/14/117233.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/117233.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/117233.html</trackback:ping><description><![CDATA[<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">import</span><span style="COLOR: #000000">&nbsp;java.io.BufferedReader;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.DataOutputStream;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.IOException;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.InputStream;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.InputStreamReader;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.net.HttpURLConnection;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.net.MalformedURLException;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.net.URL;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_272_1743_Open_Image onclick="this.style.display='none'; Codehighlighter1_272_1743_Open_Text.style.display='none'; Codehighlighter1_272_1743_Closed_Image.style.display='inline'; Codehighlighter1_272_1743_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_272_1743_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_272_1743_Closed_Text.style.display='none'; Codehighlighter1_272_1743_Open_Image.style.display='inline'; Codehighlighter1_272_1743_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestConn&nbsp;</span><span id=Codehighlighter1_272_1743_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_272_1743_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_294_308_Open_Image onclick="this.style.display='none'; Codehighlighter1_294_308_Open_Text.style.display='none'; Codehighlighter1_294_308_Closed_Image.style.display='inline'; Codehighlighter1_294_308_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_294_308_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_294_308_Closed_Text.style.display='none'; Codehighlighter1_294_308_Open_Image.style.display='inline'; Codehighlighter1_294_308_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;TestConn()&nbsp;</span><span id=Codehighlighter1_294_308_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_294_308_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_368_441_Open_Image onclick="this.style.display='none'; Codehighlighter1_368_441_Open_Text.style.display='none'; Codehighlighter1_368_441_Closed_Image.style.display='inline'; Codehighlighter1_368_441_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_368_441_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_368_441_Closed_Text.style.display='none'; Codehighlighter1_368_441_Open_Image.style.display='inline'; Codehighlighter1_368_441_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;</span><span id=Codehighlighter1_368_441_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_368_441_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHttpText(url);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">abc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_490_1740_Open_Image onclick="this.style.display='none'; Codehighlighter1_490_1740_Open_Text.style.display='none'; Codehighlighter1_490_1740_Closed_Image.style.display='inline'; Codehighlighter1_490_1740_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_490_1740_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_490_1740_Closed_Text.style.display='none'; Codehighlighter1_490_1740_Open_Image.style.display='inline'; Codehighlighter1_490_1740_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;String&nbsp;getHttpText(String&nbsp;str)&nbsp;</span><span id=Codehighlighter1_490_1740_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_490_1740_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_516_543_Open_Image onclick="this.style.display='none'; Codehighlighter1_516_543_Open_Text.style.display='none'; Codehighlighter1_516_543_Closed_Image.style.display='inline'; Codehighlighter1_516_543_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_516_543_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_516_543_Closed_Text.style.display='none'; Codehighlighter1_516_543_Open_Image.style.display='inline'; Codehighlighter1_516_543_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_516_543_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_516_543_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;URL(str);<br><img id=Codehighlighter1_577_605_Open_Image onclick="this.style.display='none'; Codehighlighter1_577_605_Open_Text.style.display='none'; Codehighlighter1_577_605_Closed_Image.style.display='inline'; Codehighlighter1_577_605_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_577_605_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_577_605_Closed_Text.style.display='none'; Codehighlighter1_577_605_Open_Image.style.display='inline'; Codehighlighter1_577_605_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(MalformedURLException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_577_605_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_577_605_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection&nbsp;huc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_645_1265_Open_Image onclick="this.style.display='none'; Codehighlighter1_645_1265_Open_Text.style.display='none'; Codehighlighter1_645_1265_Closed_Image.style.display='inline'; Codehighlighter1_645_1265_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_645_1265_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_645_1265_Closed_Text.style.display='none'; Codehighlighter1_645_1265_Open_Image.style.display='inline'; Codehighlighter1_645_1265_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_645_1265_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_645_1265_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(HttpURLConnection)&nbsp;url.openConnection();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestMethod(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GET</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Content-Type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">application/vnd.syncml.dm+xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;application/x-www-form-urlencoded<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;application/vnd.syncml.dm+xml</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setDoOutput(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Cache-Control</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">private</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Accept-Charset</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">utf-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Accept</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">application/vnd.syncml.dm+xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;huc.setRequestProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Content-Length</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;printout;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printout&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataOutputStream(huc.getOutputStream());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printout.writeBytes(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">abc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_1289_1317_Open_Image onclick="this.style.display='none'; Codehighlighter1_1289_1317_Open_Text.style.display='none'; Codehighlighter1_1289_1317_Closed_Image.style.display='inline'; Codehighlighter1_1289_1317_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1289_1317_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1289_1317_Closed_Text.style.display='none'; Codehighlighter1_1289_1317_Open_Image.style.display='inline'; Codehighlighter1_1289_1317_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_1289_1317_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1289_1317_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_1350_1384_Open_Image onclick="this.style.display='none'; Codehighlighter1_1350_1384_Open_Text.style.display='none'; Codehighlighter1_1350_1384_Closed_Image.style.display='inline'; Codehighlighter1_1350_1384_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1350_1384_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1350_1384_Closed_Text.style.display='none'; Codehighlighter1_1350_1384_Open_Image.style.display='inline'; Codehighlighter1_1350_1384_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_1350_1384_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1350_1384_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;huc.getInputStream();<br><img id=Codehighlighter1_1408_1436_Open_Image onclick="this.style.display='none'; Codehighlighter1_1408_1436_Open_Text.style.display='none'; Codehighlighter1_1408_1436_Closed_Image.style.display='inline'; Codehighlighter1_1408_1436_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1408_1436_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1408_1436_Closed_Text.style.display='none'; Codehighlighter1_1408_1436_Open_Image.style.display='inline'; Codehighlighter1_1408_1436_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_1408_1436_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1408_1436_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;BufferedReader(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;InputStreamReader(is));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;StringBuffer();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_1573_1661_Open_Image onclick="this.style.display='none'; Codehighlighter1_1573_1661_Open_Text.style.display='none'; Codehighlighter1_1573_1661_Closed_Image.style.display='inline'; Codehighlighter1_1573_1661_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1573_1661_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1573_1661_Closed_Text.style.display='none'; Codehighlighter1_1573_1661_Open_Image.style.display='inline'; Codehighlighter1_1573_1661_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_1573_1661_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1573_1661_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_1617_1657_Open_Image onclick="this.style.display='none'; Codehighlighter1_1617_1657_Open_Text.style.display='none'; Codehighlighter1_1617_1657_Closed_Image.style.display='inline'; Codehighlighter1_1617_1657_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1617_1657_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1617_1657_Closed_Text.style.display='none'; Codehighlighter1_1617_1657_Open_Image.style.display='inline'; Codehighlighter1_1617_1657_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;((line&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;br.readLine())&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)&nbsp;</span><span id=Codehighlighter1_1617_1657_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1617_1657_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(line).append(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1685_1713_Open_Image onclick="this.style.display='none'; Codehighlighter1_1685_1713_Open_Text.style.display='none'; Codehighlighter1_1685_1713_Closed_Image.style.display='inline'; Codehighlighter1_1685_1713_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1685_1713_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1685_1713_Closed_Text.style.display='none'; Codehighlighter1_1685_1713_Open_Image.style.display='inline'; Codehighlighter1_1685_1713_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</span><span id=Codehighlighter1_1685_1713_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1685_1713_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;sb.toString();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></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/loocky/aggbug/117233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-05-14 09:16 <a href="http://www.blogjava.net/loocky/archive/2007/05/14/117233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决IMAGEJ汉化菜单丢失的问题</title><link>http://www.blogjava.net/loocky/archive/2007/04/24/113192.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Tue, 24 Apr 2007 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/04/24/113192.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/113192.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/04/24/113192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/113192.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/113192.html</trackback:ping><description><![CDATA[&nbsp;其实这个问题不是程序的问题,主要是property中文问题,这个问题可以通过build解决掉<br><br>&nbsp;&lt;native2ascii src="." dest="build" includes="*Props.txt" /&gt;<br>把配置文件编码 windows下默认GBK编码,linux 要加encoding<br>代码一行不用改,放心汉化吧~~<img src ="http://www.blogjava.net/loocky/aggbug/113192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-04-24 15:21 <a href="http://www.blogjava.net/loocky/archive/2007/04/24/113192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有没有开源的在线图片处理的程序?</title><link>http://www.blogjava.net/loocky/archive/2007/04/19/111833.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 19 Apr 2007 01:20:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/04/19/111833.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/111833.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/04/19/111833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/111833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/111833.html</trackback:ping><description><![CDATA[如题,有没有朋友知道开源的在线图片处理的程序,在页面上直接处理图片,有点象iephotoshop,功能即使不如<em>imageJ,也要有一些基本的功能.</em><img src ="http://www.blogjava.net/loocky/aggbug/111833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-04-19 09:20 <a href="http://www.blogjava.net/loocky/archive/2007/04/19/111833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Sync4J和SCTS搭建一个OMA DM的学习环境</title><link>http://www.blogjava.net/loocky/archive/2007/02/05/97929.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Mon, 05 Feb 2007 02:02:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/02/05/97929.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/97929.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/02/05/97929.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/97929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/97929.html</trackback:ping><description><![CDATA[<p class="MsoNormal">
				<span lang="EN-US">
						<span style="">           </span>
				</span>
				<b style="">
						<span style="font-size: 15pt; font-family: 宋体;">
						</span>
				</b>
				<b style="">
						<span style="font-size: 15pt; font-family: 宋体;">
								<br />
						</span>
				</b>
				<b style="">
						<span style="font-size: 15pt;" lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">做为新一代</span>
				<st1:chmetcnv unitname="g" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">
						<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">3G</span>
				</st1:chmetcnv>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">及移动终端浪潮的设备管理平台，</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">OMA DM</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">技术获得了众多设备厂商和运营商的追捧，也为软件开发商提供新的崛起机会。业内目前也有不少工作在做这方面的软件。好多公司这方面的产品都是基于<span lang="EN-US">Sync4J</span>开发的。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">Sync4J</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">开源项目为我们提供了完整的</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">OMA DM <st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.1.2</st1:chsdate></span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">规范的</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">Java</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">实现。本文记录了</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: &quot;Microsoft Sans Serif&quot;;" lang="EN-US">Sync4J
DM Server</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">安装以及使用<span lang="EN-US">SCTS</span>模拟器来模拟手机做一个<span lang="EN-US">DM</span>业务，本文没有用<span lang="EN-US">PPG</span>来通过短信方式来用真手机来做，只是用模拟器来做的。<span lang="EN-US">SCTS</span>是<span lang="EN-US">OMA</span>官方提供的一个测试工具，主要用来测试<span lang="EN-US">DMserver</span>的，这里我们用来测试<span lang="EN-US">Sync4J</span>。<span lang="EN-US">Sync4J</span>和<span lang="EN-US">SCTS</span>的集合是我们学习<span lang="EN-US">OMA</span>的一个很好的方式。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<b style="">
						<span style="font-size: 16pt; line-height: 150%; font-family: 宋体;" lang="EN-US">1</span>
				</b>
				<b style="">
						<span style="font-size: 16pt; line-height: 150%; font-family: 宋体;">：用到以下工具。<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style="">  </span>
						<span style="color: black;">Oracle9i<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style="">  </span>jboss-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.2.3</st1:chsdate><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style="">  </span>sync4j-server-dm-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.4.9</st1:chsdate><span style="">   </span>sync4j</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">官方有下载<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style="">  </span>
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">SCTS_DeviceManagement_v1.12.zip<span style="">  </span>OMA</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">官方网站有下载。</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<b style="">
						<span style="font-size: 16pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				</b>
				<b style="">
						<span style="font-size: 16pt; line-height: 150%; font-family: 宋体;">：安装调试<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style=""> </span>
				</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2.1</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">解压文件：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">   </span>jboss-<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.2.3</st1:chsdate></span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">解压到</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">C:\jboss-3.2.3<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 31.25pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">把</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">sync4j-server-dm-<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">1.4.9</st1:chsdate></span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">解压到</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">D:\sync4j\all\server-dm
.<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 22.4pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">直接安装</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">SCTS.<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style="">  </span>2.2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">配置环境变量<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>JAVA_HOME=<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>J2EE_HOME=</span>
				<span lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">C:\jboss-<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.2.3</st1:chsdate><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>SYNCSERVER_HOME=</span>
				<span lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">D:\sync4j\all\server-dm<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2.3</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">修改<span lang="EN-US">SYNCSERVER_HOME</span>下的几个配置文件<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>
						<span style="color: lime;">
								<span style=""> </span>SYNCSERVER_HOME\</span>
				</span>
				<span style="color: lime;" lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial; color: lime;" lang="EN-US">default\config\common\properties\</span>
				<span style="color: lime;" lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial; color: lime;" lang="EN-US">Sync4j.properties <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">把第一行改为</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">server.uri=http://your
IP:8080/sync4j-dm/dm<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style=""> </span>
						<span style="color: lime;">SYNCSERVER_HOME\</span>
				</span>
				<span style="color: lime;" lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial; color: lime;" lang="EN-US">install.properties </span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体; color: lime;">改为</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial; color: lime;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; text-indent: 4.5pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">(1)server-name=http://10.150.4.7:8080/sync4j-dm/dm<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style=""> </span>(2)</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">用</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">oracle</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">的数据库，以下是用来连接数据库的，所以一定要配置正确。</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jdbc.classpath=C:\\jboss-<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.2.3</st1:chsdate>\\server\\all\\lib\\ojdbc14.jar<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jdbc.driver=oracle.jdbc.driver.OracleDriver<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jdbc.url=jdbc:oracle:thin:@<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">11.11.11</st1:chsdate>.11:1521:abc<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jdbc.user=sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jdbc.password=sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">．<span lang="EN-US">4</span>以上都做完后用<span lang="EN-US">Sync4j</span>自己带的安装脚本安装<span lang="EN-US">sync4j dm server<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">在</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">SYNCSERVER_HOME
</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">下运行</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
bin\install.cmd jboss32<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">．<span lang="EN-US">5</span>由于这个版本存在了一个<span lang="EN-US">bug,</span>所以在<span lang="EN-US">2.4</span>做完后要修改<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">SYNCSERVER_HOME\bin\start.cmd<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; text-indent: 4.5pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">把倒数第三行</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">call\run.bat -c
sync4j </span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">改为</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial; color: lime;" lang="EN-US">call %J2EE_HOME%\bin\run.bat -c sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">．<span lang="EN-US">6 </span>在<span lang="EN-US">SYNCSERVER_HOME </span>运行<span lang="EN-US"> bin\start.cmd</span>安装<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 13.55pt; text-align: left; text-indent: 13.25pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">所有程序到安装到了</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">jboss_home</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">下了，可以到</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">JBOSS_HOME\</span>
				<span lang="EN-US">
				</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">server\sync4j</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">就可以看到了，看一下你的</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">oralce</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">库里面也初始化了数据，表也建好了。</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">．<span lang="EN-US">7 </span>添加一个手机（我们其实是个模拟器）上来<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">http://your
ip:8080/dmdemo/jsp/addDevice.jsp </span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">填写一个</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">IMEI:111111111111111,<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<span style=""> </span>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">2</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">．<span lang="EN-US">8 </span>配置<span lang="EN-US">scts<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Add
device : IMEI:111111111111111 </span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">然后点</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">apply<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">点击</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">DM
Account <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Name</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">：</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Server:sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Con :</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">不用填写</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Address</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">：</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">http://your
ip /sync4j-dm/dm<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Port
:8080<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">Server
authentication:<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>Digest :</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">找数据库用</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">sync4j</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">的数据库中，</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">sycn4j_device
</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">表中</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">:IMEI:111111111111111</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">，</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">server</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">的</span>
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">password </span>
				<span style="font-size: 9pt; line-height: 150%; font-family: 宋体;">为：</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">srvpwd,</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">把这个</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">password</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">填写到</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">password</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">中。</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">Client authentication<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">  
</span>DIGEST: USER NAME:</span>
				<span lang="EN-US">
				</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">sync4j PASSWORD:</span>
				<span lang="EN-US">
				</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">sync4j<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">Add</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">就可以了</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">然后点</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">connect</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">连一下</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">DM SERVER</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">看看能否连上。</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;">
				</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">第一次一般会出现认证错我，接着再联一次就可以了，</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">SCTS</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">有日志可以查看。</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">如果连通了那下面就来做一个采集模拟器上的一个节点吧。</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">http://your ip:8080/dmdemo/index.html <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">用</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">device id</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">：</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">IMEI:111111111111111 login<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
 filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:415.5pt;
 height:301.5pt'>
 <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png"
  o:title=""/>
</v:shape><![endif]-->
						<!--[if !vml]-->
						<img src="http://www.blogjava.net/images/blogjava_net/loocky/1.JPG" alt="1.JPG" border="0" height="546" width="752" />
						<br />
						<!--[endif]-->
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style=""> </span>
				</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">然后点击</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">add to operation list <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<!--[if gte vml 1]><v:shape id="_x0000_i1026"
 type="#_x0000_t75" style='width:414.75pt;height:246pt'>
 <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png"
  o:title=""/>
</v:shape><![endif]-->
						<!--[if !vml]-->
						<img src="http://www.blogjava.net/images/blogjava_net/loocky/2.JPG" alt="2.JPG" border="0" height="452" width="759" />
						<br />
						<!--[endif]-->
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">然后用</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">SCTS</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">主动回联一下，看看</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">server</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">能够拿到这个节点的值</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<!--[if gte vml 1]><v:shape id="_x0000_i1027"
 type="#_x0000_t75" style='width:414.75pt;height:331.5pt'>
 <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png"
  o:title=""/>
</v:shape><![endif]-->
						<!--[if !vml]-->
						<img src="http://www.blogjava.net/images/blogjava_net/loocky/3.JPG" alt="3.JPG" border="0" height="1024" width="1280" />
						<br />
						<!--[endif]-->
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">你会看到</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">6</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">个</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">message</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">！！！</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">详细看一下这</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">6</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">个</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">message </span>
				<span style="font-size: 10pt; line-height: 150%; font-family: 宋体; color: black;">你会发现，这个节点的采集已经成功了！</span>
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 10pt; line-height: 150%; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 17.95pt; text-align: left; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left; text-indent: 17.95pt; line-height: 150%;" align="left">
				<span style="font-size: 9pt; line-height: 150%; font-family: Arial;" lang="EN-US">
						<span style="">  </span>
				</span>
				<span style="font-size: 12pt; line-height: 150%; font-family: 宋体;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/97929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-02-05 10:02 <a href="http://www.blogjava.net/loocky/archive/2007/02/05/97929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OMADM安全协议中计算生成Nounce的方法。</title><link>http://www.blogjava.net/loocky/archive/2007/01/11/93170.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 11 Jan 2007 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2007/01/11/93170.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/93170.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2007/01/11/93170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/93170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/93170.html</trackback:ping><description><![CDATA[<p> </p>
		<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">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.io.BufferedReader;<br /></span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.io.InputStreamReader;<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.security.MessageDigest;<br /></span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080"> 5</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> sun.misc.BASE64Decoder;<br /></span>
				<span style="COLOR: #008080"> 6</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> sun.misc.BASE64Encoder;<br /></span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_192_2442_Open_Image" onclick="this.style.display='none'; Codehighlighter1_192_2442_Open_Text.style.display='none'; Codehighlighter1_192_2442_Closed_Image.style.display='inline'; Codehighlighter1_192_2442_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_192_2442_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_192_2442_Closed_Text.style.display='none'; Codehighlighter1_192_2442_Open_Image.style.display='inline'; Codehighlighter1_192_2442_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> ConvertNounce </span>
				<span id="Codehighlighter1_192_2442_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_192_2442_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080"> 9</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">10</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Digest = H(B64(H(username:password)):nonce)<br /></span>
						<span style="COLOR: #008080">11</span>
						<span style="COLOR: #008000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> b1=B64(H(username:password));<br /></span>
						<span style="COLOR: #008080">12</span>
						<span style="COLOR: #008000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">
								<br />
						</span>
						<span style="COLOR: #008080">13</span>
						<span style="COLOR: #008000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//<br /></span>
						<span style="COLOR: #008080">14</span>
						<span style="COLOR: #008000">
								<img id="Codehighlighter1_286_309_Open_Image" onclick="this.style.display='none'; Codehighlighter1_286_309_Open_Text.style.display='none'; Codehighlighter1_286_309_Closed_Image.style.display='inline'; Codehighlighter1_286_309_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_286_309_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_286_309_Closed_Text.style.display='none'; Codehighlighter1_286_309_Open_Image.style.display='inline'; Codehighlighter1_286_309_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span id="Codehighlighter1_286_309_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_286_309_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">15</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> args<br /></span>
								<span style="COLOR: #008080">16</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">17</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_368_1945_Open_Image" onclick="this.style.display='none'; Codehighlighter1_368_1945_Open_Text.style.display='none'; Codehighlighter1_368_1945_Closed_Image.style.display='inline'; Codehighlighter1_368_1945_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_368_1945_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_368_1945_Closed_Text.style.display='none'; Codehighlighter1_368_1945_Open_Image.style.display='inline'; Codehighlighter1_368_1945_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> main(String[] args) </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000"> Exception </span>
						<span id="Codehighlighter1_368_1945_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_368_1945_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">18</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">19</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">20</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">21</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    if(args.length!=3) throw new Exception("args is wrong ,there is must by three args :username password nextNounce");</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">22</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">23</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        InputStreamReader reader </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> InputStreamReader(System.in);<br /></span>
								<span style="COLOR: #008080">24</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        BufferedReader input </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> BufferedReader(reader);<br /></span>
								<span style="COLOR: #008080">25</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span>
								<span style="COLOR: #008080">26</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">27</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">input username:</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">28</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String username </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">input.readLine();<br /></span>
								<span style="COLOR: #008080">29</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">input password:</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">30</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String pwd </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> input.readLine();<br /></span>
								<span style="COLOR: #008080">31</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">input nextNounce:</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">32</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">33</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String serverNounce </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> input.readLine();<br /></span>
								<span style="COLOR: #008080">34</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String clientNounce </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">;<br /></span>
								<span style="COLOR: #008080">35</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">36</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">""</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">37</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">38</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">userName=</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">username);<br /></span>
								<span style="COLOR: #008080">39</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">password=</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">pwd);<br /></span>
								<span style="COLOR: #008080">40</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">nextNounce=</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">serverNounce);<br /></span>
								<span style="COLOR: #008080">41</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">[] b1 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> calculateDigestAndEcode64(username, pwd);<br /></span>
								<span style="COLOR: #008080">42</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">43</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    System.out.println("b1="+new String(b1));<br /></span>
								<span style="COLOR: #008080">44</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">45</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">server 下来的nounce一定要先做B64的解码，否则算出来的结果对不上</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">46</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        serverNounce </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> String(</span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> BASE64Decoder().decodeBuffer(serverNounce));<br /></span>
								<span style="COLOR: #008080">47</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">48</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    System.out.println(serverNounce);</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">49</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">50</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">[] bserverNounce </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> serverNounce.getBytes();<br /></span>
								<span style="COLOR: #008080">51</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">52</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">[] buf </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">[b1.length </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> bserverNounce.length];<br /></span>
								<span style="COLOR: #008080">53</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">54</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.arraycopy(b1, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">, buf, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">, b1.length);<br /></span>
								<span style="COLOR: #008080">55</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">56</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        buf[b1.length] </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> (</span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">) </span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000">:</span>
								<span style="COLOR: #000000">'</span>
								<span style="COLOR: #000000">;<br /></span>
								<span style="COLOR: #008080">57</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.arraycopy(bserverNounce, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">, buf, b1.length</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">,<br /></span>
								<span style="COLOR: #008080">58</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        bserverNounce.length);<br /></span>
								<span style="COLOR: #008080">59</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        MessageDigest md </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> MessageDigest.getInstance(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">MD5</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">60</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">61</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    System.out.println(new String(buf));</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">62</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">63</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">byte</span>
								<span style="COLOR: #000000">[] digest </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> md.digest(buf);<br /></span>
								<span style="COLOR: #008080">64</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span>
								<span style="COLOR: #008080">65</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    System.out.println(new String(digest));</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">66</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">67</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        clientNounce </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> BASE64Encoder().encode(digest);<br /></span>
								<span style="COLOR: #008080">68</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">""</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">69</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">result Nounce=</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">clientNounce);<br /></span>
								<span style="COLOR: #008080">70</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">73</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">74</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">75</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">byte</span>
						<span style="COLOR: #000000">[] calculateDigestAndEcode64(String username,<br /></span>
						<span style="COLOR: #008080">76</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_2050_2435_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2050_2435_Open_Text.style.display='none'; Codehighlighter1_2050_2435_Closed_Image.style.display='inline'; Codehighlighter1_2050_2435_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_2050_2435_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2050_2435_Closed_Text.style.display='none'; Codehighlighter1_2050_2435_Open_Image.style.display='inline'; Codehighlighter1_2050_2435_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            String password) </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000"> Exception </span>
						<span id="Codehighlighter1_2050_2435_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_2050_2435_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">77</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
								</span>
								<span style="COLOR: #008080">78</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        MessageDigest md </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> MessageDigest.getInstance(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">MD5</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">79</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String cred </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">""</span>
								<span style="COLOR: #000000">;<br /></span>
								<span style="COLOR: #008080">80</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_2152_2183_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2152_2183_Open_Text.style.display='none'; Codehighlighter1_2152_2183_Closed_Image.style.display='inline'; Codehighlighter1_2152_2183_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_2152_2183_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2152_2183_Closed_Text.style.display='none'; Codehighlighter1_2152_2183_Open_Image.style.display='inline'; Codehighlighter1_2152_2183_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (username </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">) </span>
								<span id="Codehighlighter1_2152_2183_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_2152_2183_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">81</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            cred </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> username.trim();<br /></span>
										<span style="COLOR: #008080">82</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">83</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        cred </span>
								<span style="COLOR: #000000">+=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">:</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">;<br /></span>
								<span style="COLOR: #008080">84</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_2224_2256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2224_2256_Open_Text.style.display='none'; Codehighlighter1_2224_2256_Closed_Image.style.display='inline'; Codehighlighter1_2224_2256_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_2224_2256_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2224_2256_Closed_Text.style.display='none'; Codehighlighter1_2224_2256_Open_Image.style.display='inline'; Codehighlighter1_2224_2256_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (password </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">) </span>
								<span id="Codehighlighter1_2224_2256_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_2224_2256_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">85</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            cred </span>
										<span style="COLOR: #000000">+=</span>
										<span style="COLOR: #000000"> password.trim();<br /></span>
										<span style="COLOR: #008080">86</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">87</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">    System.out.println(cred);<br /></span>
								<span style="COLOR: #008080">88</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> System.out.println(new String(md.digest(cred.getBytes())));</span>
								<span style="COLOR: #008000">
										<br />
								</span>
								<span style="COLOR: #008080">89</span>
								<span style="COLOR: #008000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> BASE64Encoder().encode(md.digest(cred.getBytes()))<br /></span>
								<span style="COLOR: #008080">90</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                .getBytes();<br /></span>
								<span style="COLOR: #008080">91</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">92</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span>
						<span style="COLOR: #008080">93</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span>
						<span style="COLOR: #008080">94</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">95</span>
						<span style="COLOR: #000000">
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">96</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div><img src ="http://www.blogjava.net/loocky/aggbug/93170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2007-01-11 14:57 <a href="http://www.blogjava.net/loocky/archive/2007/01/11/93170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>10分钟在windows下面搭建一个cvs server.</title><link>http://www.blogjava.net/loocky/archive/2006/12/14/87737.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 14 Dec 2006 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/12/14/87737.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/87737.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/12/14/87737.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/87737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/87737.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<span>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">1:</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载</span>
						<span lang="EN-US">cvsnt-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">2.5.03</st1:chsdate>.2382(<a href="http://www.cvsnt.org/"><span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://www.cvsnt.org</span></a>)</span>
				</p>
		</span>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">2: </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装完全采用默认就可以了，安装完可以不重启</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：开始菜单</span>
				<span lang="EN-US">-&gt;CVSNT-&gt; Control Panel .</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">停止</span>
				<span lang="EN-US">CVS NT</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">4 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：进入</span>
				<span lang="EN-US">repository configuration </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">点击</span>
				<span lang="EN-US">add </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">添加一个如图所示：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>Localtion<span style="mso-spacerun: yes">  </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填写一个</span>
				<span lang="EN-US">D:/CVSRoot</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>Name<span style="mso-spacerun: yes">     </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">填写</span>
				<span lang="EN-US">/cvs</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">
						</span>
				</span> </p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
								<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
										<v:stroke joinstyle="miter">
										</v:stroke>
										<v:formulas>
												<v:f eqn="if lineDrawn pixelLineWidth 0">
												</v:f>
												<v:f eqn="sum @0 1 0">
												</v:f>
												<v:f eqn="sum 0 0 @1">
												</v:f>
												<v:f eqn="prod @2 1 2">
												</v:f>
												<v:f eqn="prod @3 21600 pixelWidth">
												</v:f>
												<v:f eqn="prod @3 21600 pixelHeight">
												</v:f>
												<v:f eqn="sum @0 0 1">
												</v:f>
												<v:f eqn="prod @6 1 2">
												</v:f>
												<v:f eqn="prod @7 21600 pixelWidth">
												</v:f>
												<v:f eqn="sum @8 21600 0">
												</v:f>
												<v:f eqn="prod @7 21600 pixelHeight">
												</v:f>
												<v:f eqn="sum @10 21600 0">
												</v:f>
										</v:formulas>
										<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect">
										</v:path>
										<o:lock v:ext="edit" aspectratio="t">
										</o:lock>
								</v:shapetype>
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
										<img height="413" alt="cvs_rep.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/cvs_rep.GIF" width="638" border="0" /> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">5</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：进入</span>
				<span lang="EN-US">server settting</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">
								<img height="412" alt="CVS_server_setting.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_server_setting.GIF" width="636" border="0" />  </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>Run as </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选择一个</span>
				<span lang="EN-US">windows</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下已有用户比如</span>
				<span lang="EN-US">(administrator)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，其余不用修改，应用就可以了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：进入</span>
				<span lang="EN-US">about :CVSNT </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动</span>
				<span lang="EN-US">. CVS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">已经配置完毕，至于安全什么方面的东西我没有弄过。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">7:</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开</span>
				<span lang="EN-US">eclilpse ,file-&gt;new-&gt;other ,CVS</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p> <img height="497" alt="CVS_ECLIPSE1.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE1.GIF" width="608" border="0" /></o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
										<img height="521" alt="CVS_ECLIPSE2.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE2.GIF" width="631" border="0" /> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入</span>
				<span lang="EN-US">Host</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">repository path</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、用户名、密码</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，其余默认，然后</span>
				<span lang="EN-US">next</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="525" alt="CVS_ECLIPSE3.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE3.GIF" width="632" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Next</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="522" alt="CVS_ECLIPSE4.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE4.GIF" width="639" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Next</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="528" alt="CVS_ECLIPSE5.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE5.GIF" width="723" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Next</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="599" alt="CVS_ECLIPSE6.GIF" src="http://www.blogjava.net/images/blogjava_net/loocky/CVS_ECLIPSE6.GIF" width="736" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一切搞定，你可以建立一个目录然后</span>
				<span lang="EN-US">就可以commit</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了</span>
				<span lang="EN-US">.</span>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/87737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-12-14 16:14 <a href="http://www.blogjava.net/loocky/archive/2006/12/14/87737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事务与锁的一些总结</title><link>http://www.blogjava.net/loocky/archive/2006/11/30/84496.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 30 Nov 2006 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/11/30/84496.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/84496.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/11/30/84496.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/84496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/84496.html</trackback:ping><description><![CDATA[<b>      <b>事务是用来保证数据的一致性（ integrity ）而锁是保证数据的并发（控制多个事务的并发）（ concurrency ）。 <b>  <b>锁的级别越高，可能会影响数据库的并发。锁的级别越低一般来说数据库的并发越好。 <b>  <b>锁在 JDBC,JTA 以及容器管理的事务中的用法基本一样，也有写不同，主要在 JTA 分布式事务上个别又差异。 <b>事务只是用来保证，数据一致性，一致性包括 : 能否保证与其他事务的隔离，以及能否在同一事务中保证重复读，脏读，脏写等等方面。 <b>  <b>Oracle 在不是手工加锁的情况下， ORACLE 会自动调度锁。 ORACLE 自动调度锁得执行顺序，一般不会发生死锁现象。有些数据库会自动调度数据库锁得级别，这就增加了死锁的可能， ORACLE 永远不会自动调度锁的级别，死锁发生时， oracle 也会去自动调度，这要延时一段时间， ORACLE 自己的策略，会 ROLLBACK 一个事务，以保证发生死锁的 2 个事务都执行下去。 <b>  <b>锁的种类很多，有 DML,DDL 锁以及其他，平时我们开发过程中主要是 DML,DDL 锁。 <b>DML 锁又分很多方面： <br /><b>RS: row share <b>RX: row exclusive <b>S: share <b>SRX: share row exclusive <b>X: exclusive <b>  <br /><b>（ 1 ） RS 可以通过一下声明方式来锁定表的行 
<div align="left"><b>SELECT ... FROM <em>table</em> ... FOR UPDATE OF ... ;  <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN ROW SHARE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>一旦被 RS 锁定，不允许再对表进行 LOCK TABLE <em>table</em> IN EXCLUSIVE MODE <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><b>（ 2 ） RX 可以通过一下声明方式来锁定表的行 
<div align="left"><b>INSERT INTO <em>table</em> ... ; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>UPDATE <em>table</em> ... ; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>DELETE FROM <em>table</em> ... ;  <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b>一旦通过 RX 锁定了表中的行，不允许对表进行下列操作 <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE MODE;  <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>（ 3 ） s （ share table lock ）可以通过以下方式锁定表 <b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE MODE （可以说有多个 S 锁定一个表） ; <b><br /><pre></pre></b></b></div><div align="left"><b>允许进行的操作，所有的查询以及 SELECT ... FOR UPDATE, 和 LOCK TABLE ... IN SHARE MODE ，只允许本事务内更新数据（ update ，这种情况也是只允许当前表上就一个 S 锁） <b><br /><pre></pre></b></b></div><div align="left"><b>不允许的操作 <b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b>（ 4 ） SRX 通过以下方式锁定表 <b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b>比 S 少了一点，这里只是允许一个 SRX 锁定一个表 <b><br /><pre></pre></b></b></div><div align="left"><b>不允许的操作： <b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN SHARE ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN ROW EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><div align="left"><b>LOCK TABLE <em>table</em> IN EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b>（ 5 ） X 级别最高的锁定形式： LOCK TABLE <em>table</em> IN EXCLUSIVE MODE; <b><br /><pre></pre></b></b></div><div align="left"><b>只允许其他事务 QUERY 不允许其他操作。 <b><br /><pre></pre></b></b></div><div align="left"><b><b><br /><pre></pre></b></b></div><b>Table 13-4 Locks Obtained By DML Statements 
<div align="left"><table class="MsoNormalTable" align="left" border="1"><thead><tr><td valign="bottom"><b>DML Statement </b></td><td valign="bottom"><b>Row Locks? </b></td><td valign="bottom"><b>Mode of Table Lock </b></td></tr></thead><tbody><tr><td valign="top"><b>SELECT ... FROM <em>table</em></b></td><td valign="top"><b>  </b></td><td valign="top"><b>  </b></td></tr><tr><td valign="top"><b>INSERT INTO <em>table</em> ... </b></td><td valign="top"><b>X </b></td><td valign="top"><b>RX </b></td></tr><tr><td valign="top"><b>UPDATE <em>table</em> ... </b></td><td valign="top"><b>X </b></td><td valign="top"><b>RX </b></td></tr><tr><td valign="top"><b>DELETE FROM <em>table</em> ... </b></td><td valign="top"><b>X </b></td><td valign="top"><b>RX </b></td></tr><tr><td valign="top"><b>SELECT ... FROM <em>table</em> ...    FOR UPDATE OF ... </b></td><td valign="top"><b>X </b></td><td valign="top"><b>RS- </b></td></tr><tr><td valign="top"><b>LOCK TABLE <em>table</em> IN ... </b></td><td valign="top"><b>  </b></td><td valign="top"><b>  </b></td></tr><tr><td valign="top"><b>ROW SHARE MODE </b></td><td valign="top"><b>  </b></td><td valign="top"><b>RS </b></td></tr><tr><td valign="top"><b>ROW EXCLUSIVE MODE </b></td><td valign="top"><b>  </b></td><td valign="top"><b>RX </b></td></tr><tr><td valign="top"><b>SHARE MODE </b></td><td valign="top"><b>  </b></td><td valign="top"><b>S </b></td></tr><tr><td valign="top"><b>SHARE EXCLUSIVE MODE </b></td><td valign="top"><b>  </b></td><td valign="top"><b>SRX </b></td></tr><tr><td valign="top"><b>EXCLUSIVE MODE </b></td><td valign="top"><b>  </b></td><td valign="top"><b>X </b></td></tr></tbody></table></div><b>  
<div align="left"><b><b><br /><pre></pre></b></b></div><b>  <b>  <b>  <b> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />这个表上很清楚 </b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b><img src ="http://www.blogjava.net/loocky/aggbug/84496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-11-30 10:36 <a href="http://www.blogjava.net/loocky/archive/2006/11/30/84496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 事务隔离级别,用jdbc体验</title><link>http://www.blogjava.net/loocky/archive/2006/11/16/81513.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 16 Nov 2006 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/11/16/81513.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/81513.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/11/16/81513.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/81513.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/81513.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 做技术支持				2				个月了，也就是说有				2				个月没有碰代码了，手都很生了，最近遇到项目大的并发问题，数据也有些不太正确，就想到了项目中，由于模块过多，异步的情况也有发生，所以想到事务与锁的相关知识，先写一点事务相关的理解，然后写一点锁相关的东西，以便加深自己的理解。																				 										...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2006/11/16/81513.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/81513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-11-16 13:48 <a href="http://www.blogjava.net/loocky/archive/2006/11/16/81513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>乐观锁与悲观锁</title><link>http://www.blogjava.net/loocky/archive/2006/11/15/81138.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Wed, 15 Nov 2006 00:35:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/11/15/81138.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/81138.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/11/15/81138.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/81138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/81138.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 文章转自网上好像是玉米田的，忘记了锁（				locking				）																		业务逻辑的实现过程中，往往需要保证数据访问的排他性。如在金融系统的日终结算																		处理中，我们希望针对某个				cut-off				时间点的数据进行处理，而不希望在结算进行过程中												...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2006/11/15/81138.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/81138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-11-15 08:35 <a href="http://www.blogjava.net/loocky/archive/2006/11/15/81138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一段用SHELL编写自动下载baidu MP3的教本(转)</title><link>http://www.blogjava.net/loocky/archive/2006/10/27/77661.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 27 Oct 2006 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/10/27/77661.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/77661.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/10/27/77661.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/77661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/77661.html</trackback:ping><description><![CDATA[#!/bin/bash <br />#Copyright (c) 2005 ubuntu.org.cn <br />#License: GPLv2 <br /><br />#需要安装编码转换器 <br />#sudo apt-get install recode <br /><br />#mp3的地址 <br />SOURCE="http://list.mp3.baidu.com/list/newhits.html" <br /><br />#保存mp3的目录 <br />SAVE="${HOME}/mp3100" <br /><br />#下载重试次数 <br />TRYCOUNT=2 <br /><br />#临时目录 <br />TMP="/tmp/${USER}" <br /><br />#创建下载目录 <br />if [ ! -d "${SAVE}" ];then <br />    mkdir -p "${SAVE}" <br />fi <br /><br />#创建临时下载目录 <br />if [ ! -d "${TMP}" ];then <br />    mkdir -p "${TMP}" <br />fi <br /><br />echo "开始下载百度最新100首歌曲列表" <br />wget -O ${TMP}/mp3.html ${SOURCE} <br />echo "下载百度最新100首歌曲列表完成。" <br /><br />#转换网页编码 <br />iconv -f gbk -t utf8 ${TMP}/mp3.html |\ <br /><br />grep "&lt;a href=\"http://mp3.baidu.com/m" |\ <br /><br />#将mp3list.txt所有开头的空格去掉 <br />sed -e 's/ *//' |\ <br /><br />#将mp3list.txt所有全角空格去掉 <br />sed -e 's/　//g' |\ <br /><br />#将所有的回车符去掉 <br />sed ':a;N;$!ba;s/\n/,/g' |\ <br /><br />#在td&gt;,后面加上回车符，一行表示一个mp3文件。 <br />sed -e 's/,&lt;td/\n&lt;td/g' |\ <br />sed -e 's/td&gt;,/td&gt;\n/g' |\ <br /><br />#删除&lt;td width="30%"&gt; &lt;td&gt; &lt;/td&gt; &lt;td...FFFFFF"&gt; &lt;p&gt; &lt;/p&gt; <br />sed -e 's/&lt;td width="30%"&gt;//g' |\ <br />sed -e 's/&lt;td&gt;//g' |\ <br />sed -e 's/&lt;\/td&gt;//g' |\ <br />sed -e 's/&lt;p&gt;//g' |\ <br />sed -e 's/&lt;\/p&gt;//g' |\ <br />sed -e 's/&lt;td.*FFFFFF"&gt;//g' |\ <br /><br />#删除&lt;/a&gt;..."_blank"&gt; <br />sed -e 's/&lt;\/a&gt;.*_blank"&gt;/-/g' |\ <br />sed -e 's/&lt;\/a&gt;.*_blank&gt;/-/g' |\ <br /><br />#删除&amp;amp; <br />sed -e 's/\&amp;amp\;/\//g' &gt;${TMP}/mp3list.txt <br /><br />#得到：&lt;a href="http://mp3.baidu.com/m?tn=baidump3&amp;ct=134217728&amp;lm=-1&amp;li=2&amp;word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8" target="_blank"&gt;Baby ,Baby tell me-王心凌&lt;/a&gt; <br /><br />#取得行号，循环 <br />line=$(awk 'END{print NR}' ${TMP}/mp3list.txt) <br />i=1; <br />while((i&lt;=line));do <br />   downed=0; <br />   mpline=`awk 'NR=='"$i"'' ${TMP}/mp3list.txt` <br />   url=`echo $mpline | sed -e 's/&lt;a href="//g' | sed 's/\ target.*//g' | sed 's/"//g' | cat` <br />   name=`echo $mpline | sed -e 's/.*_blank"&gt;//g' | sed -e 's/.*_blank&gt;//g' |\ <br />        sed -e 's/&lt;\/a&gt;//g' | sed -e 's/\//-/g' | sed -e 's/:/-/g'  | sed -e 's/"/'\''/g'  | cat` <br />  <br />   #检查是否已经下载过这首歌，如果下载过，放弃 <br />   if [ -e "${SAVE}/${name}.mp3" ] || [ -e "${SAVE}/${name}.wma" ]; then <br />      echo -e "\e[1;6m\e[1;31m发现 ${name} 下载过，忽略，继续下一首。\e[1;6m\e[00m" <br />      ((i++)) <br />      continue; <br />   fi <br /><br />   echo "开始通过 $url 下载 $name"; <br />   wget -O ${TMP}/down.html $url <br />   echo "获取 $name 下载列表完成。"; <br /><br />   ##### 找出有效的歌曲下载地址并根据下载文件的大小从大至少排序 ############### <br />   #down.txt为有效的下载地址 <br />   iconv -f gbk -t utf8 -c ${TMP}/down.html | grep "&lt;td height=\"28\" class=\"d\"&gt;" |\ <br />   sed -e 's/.*&lt;a href="//g' | sed -e 's/" target=_blank&gt;.*//g' |\ <br />   sed '/mid/d' &gt; ${TMP}/down.txt <br /><br />   #size.txt为有效的下载文件大小 <br />   iconv -f gbk -t utf8 -c ${TMP}/down.html | grep "M&lt;\/td&gt;" |\ <br />   sed -e 's/&lt;td class="t"&gt;//g' | sed -e 's/ M&lt;\/td&gt;//g' &gt; ${TMP}/size.txt <br /><br />   #down.txt与size.txt合并而在的down_size.txt文件中字段之间以" "作为分隔符 <br />   paste -d ' ' ${TMP}/down.txt ${TMP}/size.txt &gt; ${TMP}/down_size.txt <br /><br />   #得到以下形式 (下载地址 文件大小） <br />   #http://wma2.7t7t.com/pycs/pycs/311/370247.Wma 1.2 <br />   #http://snakelmq.hfxyd.com/milk/babybabytellme.mp3 3.2 <br />   #http://bbsatt2.ccmove.com.cn/download/1280590/baby%20baby%20tell%20me%28PXC%D6%C6%D7%F7%29.mp3 0.3 <br />   #http://vod.music165.com/music/song/new02/wxl_05.07.29/3.Wma 1.6 <br />   #http://202.107.247.54/16/0406/94/3.wma 1.6 <br /><br />   #排序 <br />   sort "+1nr" ${TMP}/down_size.txt &gt; ${TMP}/down_size_sort.txt <br /><br />   #去掉后面的尺寸 <br />   sed 's/ .*$//' ${TMP}/down_size_sort.txt &gt; ${TMP}/temp.txt <br />    <br />   ##### 析取出mp3 的下载地址或 wma的下载地址 ############## <br />   grep -i "mp3$" ${TMP}/temp.txt &gt; ${TMP}/down_mp3.txt <br />   grep -i "wma$" ${TMP}/temp.txt &gt; ${TMP}/down_wma.txt <br /><br />   downline_mp3=$(awk 'END{print NR}' ${TMP}/down_mp3.txt); <br />   downline_wma=$(awk 'END{print NR}' ${TMP}/down_wma.txt); <br />   echo -e "\e[1;6m\e[1;31m发现 ${downline_mp3} 个名为 ${name}.mp3 下载地址。\e[1;6m\e[00m" <br />   echo -e "\e[1;6m\e[1;31m发现 ${downline_wma} 个名为 ${name}.wma 下载地址。\e[1;6m\e[00m" <br />   # 初始化计数器 <br />   j=1; <br />   # 优先下载mp3格式的歌曲 <br />   while((j&lt;=downline_mp3)); do <br />      mp3=`awk 'NR=='"$j"'' ${TMP}/down_mp3.txt` <br />      echo -e "\e[1;6m\e[1;31m正在下载${name}.mp3\e[1;6m\e[00m" <br />      wget -c --tries=$TRYCOUNT $mp3 -O "${TMP}/${name}.mp3" <br />      if [ "$?" = 0 ]; then <br />         if [ `file -ib "${TMP}/${name}.mp3" | sed -e 's/\/.*//g'` = "audio" ]; then <br />            mv "${TMP}/${name}.mp3" "${SAVE}/${name}.mp3" <br />            downed=1; <br />            break; <br />         else <br />            echo -e "\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效，正在删除重新下载\e[1;6m\e[00m" <br />            rm "${TMP}/${name}.mp3"; <br />            ((j++))    <br />         fi <br />      else <br />         echo -e "\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效，正在删除重新下载\e[1;6m\e[00m" <br />         rm "${TMP}/${name}.mp3"; <br />         ((j++)) <br />      fi <br />   done <br /><br />   #如果下载成功继续下其余的歌 <br />   #continue用于跳过循环体中的后续命令 <br />   if [ "$downed" = 1 ] ; then <br />      ((i++)) <br />      echo -e "\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m" <br />      continue; <br />   fi <br /><br />   # 如果没有mp3格式的则下载wma格式的歌 <br />   j=1; <br />   while((j&lt;=downline_wma)); do <br />      wma=`awk 'NR=='"$j"'' ${TMP}/down_wma.txt` <br />      echo -e "\e[1;6m\e[1;31m正在下载${name}.wma\e[1;6m\e[00m" <br />      wget -c --tries=$TRYCOUNT $wma -O "${TMP}/${name}.wma" <br />      if [ "$?" = 0 ]; then <br />         if [ `file -ib "${TMP}/${name}.wma" | sed -e 's/\/.*//g'` = "application" ]; then <br />            mv "${TMP}/${name}.wma" "${SAVE}/${name}.wma" <br />            downed=1; <br />            break; <br />         else <br />            echo -e "\e[1;6m\e[1;31m下载 ${name}.wma 文件无效，正在删除重新下载\e[1;6m\e[00m" <br />            rm "${TMP}/${name}.wma"; <br />            ((j++))    <br />         fi <br />      else <br />          echo -e "\e[1;6m\e[1;31m下载 ${name}.wma 文件无效，正在删除重新下载\e[1;6m\e[00m" <br />          rm "${TMP}/${name}.wma"; <br />          ((j++)) <br />      fi <br />   done <br /><br />   ((i++)) <br />   if [ "$downed" = 1 ] ; then <br />      echo -e "\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m" <br />   else <br />      echo -e "\e[1;7m\e[1;41m下载 $name 失败\e[1;7m\e[00m" <br />   fi <br />done <br />rm -fr ${TMP} <br />exit 0 <br /><br />原理是用wget下载下页面来，然后用SED来提取页面，提取到连接后下载<br /><br /><img src ="http://www.blogjava.net/loocky/aggbug/77661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-10-27 15:41 <a href="http://www.blogjava.net/loocky/archive/2006/10/27/77661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>摘录一篇servlet线程的文章，顺便翻一下servlet2.3的规范，感觉这文章写的不错</title><link>http://www.blogjava.net/loocky/archive/2006/09/19/70477.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Tue, 19 Sep 2006 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/09/19/70477.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/70477.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/09/19/70477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/70477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/70477.html</trackback:ping><description><![CDATA[<table style="FLOAT: left; MARGIN: 3px" cellspacing="0" cellpadding="0" align="left" border="0">
				<tbody>
						<tr>
								<td>
										<script type="text/javascript">
												<!--
google_ad_client = "pub-8792714353477453";
google_alternate_ad_url = "/google.html";
google_ad_width = 250;
google_ad_height = 250;
google_ad_format = "250x250_as";
google_ad_type = "text_image";
google_ad_channel ="0118375248";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//-->
										</script>
										<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
										</script>
										<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-8792714353477453&amp;dt=1158636502125&amp;lmt=1154662712&amp;alternate_ad_url=%2Fgoogle.html&amp;prev_fmts=728x90_as&amp;format=250x250_as&amp;output=html&amp;channel=0118375248&amp;url=http%3A%2F%2Fwww.j2medev.com%2FArticle%2FClass10%2Fj2eeweb%2F200601%2F1183.html&amp;color_bg=FFFFFF&amp;color_text=000000&amp;color_link=0000FF&amp;color_url=008000&amp;color_border=336699&amp;ad_type=text_image&amp;ref=http%3A%2F%2Fwww.baidu.com%2Fs%3Fct%3D0%26ie%3Dgb2312%26bs%3Dservlet%2B%25CF%25DF%25B3%25CC%25B0%25B2%25C8%25AB%26sr%3D%26z%3D%26cl%3D3%26f%3D8%26wd%3D%25C9%25EE%25C8%25EB%25D1%25D0%25BE%25BFServlet%25CF%25DF%25B3%25CC%25B0%25B2%25C8%25AB%25D0%25D4%25CE%25CA%25CC%25E2&amp;cc=244&amp;u_h=864&amp;u_w=1152&amp;u_ah=830&amp;u_aw=1152&amp;u_cd=32&amp;u_tz=480&amp;u_java=true" frameborder="0" width="250" scrolling="no" height="250" allowtransparency="">
										</iframe>
								</td>
						</tr>
				</tbody>
		</table>
		<strong>摘 要</strong>：介绍了Servlet多线程机制，通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因，给出了保证Servlet线程安全的三种解决方案，并说明三种方案在实际开发中的取舍。<br /><br />　　<strong>关键字</strong>：Servlet 线程安全 同步 Java内存模型 实例变量 <br /><br />　　Servlet/JSP技术和ASP、PHP等相比，由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的，所以，在编写代码时需要非常细致地考虑多线程的<a class="bluekey" href="http://www.yesky.com/key/1714/161714.html" target="_blank"><u><font color="#0000ff">安全性</font></u></a>问题。然而，很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题，这往往造成编写的程序在少量用户访问时没有任何问题，而在并发用户上升到一定值时，就会经常出现一些莫明其妙的问题。<br /><br />　　<b>Servlet的多线程机制</b><br />　 <br />　　Servlet体系结构是建立在Java多线程机制之上的，它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时，Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时，一般不会再实例化该Servlet类，也就是有多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行，如图1所示。<br /><br /><table width="90%" align="center" border="0"><tbody><tr><td><div align="center"><img onerror="this.src='/Article/UploadFiles/200601/20060112210435741.jpg';" hspace="3" src="http://www.j2medev.com/Article/UploadFiles/200601/20060112210435741.jpg" align="center" vspace="1" border="1" /><br />图1 Servlet线程池</div></td></tr></tbody></table><br />　　这样，当两个或多个线程同时访问同一个Servlet时，可能会发生多个线程同时访问同一资源的情况，数据可能会变得不一致。所以在用Servlet构建的Web应用时如果不注意线程安全的问题，会使所写的Servlet程序有难以发现的错误。<br /><br />　　<b>Servlet的线程安全问题<br /></b><br />　　Servlet的线程安全问题主要是由于实例变量使用不当而引起的，这里以一个现实的例子来说明。<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Import javax.servlet. *; <br />Import javax.servlet.http. *; <br />Import java.<a class="bluekey" href="http://www.yesky.com/key/938/160938.html" target="_blank"><u><font color="#0000ff">io</font></u></a>. *; <br />Public class Concurrent Test extends HttpServlet {PrintWriter output; <br />Public void service (HttpServletRequest request,<br />HttpServletResponse response) throws ServletException, IOException {String username;<br />Response.setContentType ("text/html; charset=gb2312");<br />Username = request.getParameter ("username"); <br />Output = response.getWriter (); <br />Try {Thread. sleep (5000); //为了突出并发问题，在这设置一个延时<br />} Catch (Interrupted Exception e){}<br />output.println("用户名:"+Username+"&lt;BR&gt;"); <br />}<br />}</td></tr></tbody></table><br />　　该Servlet中定义了一个实例变量output，在service方法将其赋值为用户的输出。当一个用户访问该Servlet时，程序会正常的运行，但当多个用户并发访问时，就可能会出现其它用户的信息显示在另外一些用户的浏览器上的问题。这是一个严重的问题。为了突出并发问题，便于测试、观察，我们在回显用户信息时执行了一个延时的操作。假设已在web.xml配置文件中注册了该Servlet，现有两个用户a和b同时访问该Servlet（可以启动两个IE浏览器，或者在两台机器上同时访问）,即同时在浏览器中输入：<br /><br />　　a： http://localhost: 8080/servlet/ConcurrentTest? Username=a<br /><br />　　b： http://localhost: 8080/servlet/ConcurrentTest? Username=b<br /><br />　　如果用户b比用户a回车的时间稍慢一点，将得到如图2所示的输出：<br /><br /><table width="90%" align="center" border="0"><tbody><tr><td><div align="center"><img onerror="this.src='/Article/UploadFiles/200601/20060112210436460.jpg';" hspace="3" src="http://www.j2medev.com/Article/UploadFiles/200601/20060112210436460.jpg" align="center" vspace="1" border="1" /><br />图2 a用户和b用户的浏览器输出</div></td></tr></tbody></table><br />　　从图2中可以看到，Web服务器启动了两个线程分别处理来自用户a和用户b的请求，但是在用户a的浏览器上却得到一个空白的屏幕，用户a的信息显示在用户b的浏览器上。该Servlet存在线程不安全问题。下面我们就从分析该实例的内存模型入手,观察不同时刻实例变量output的值来分析使该Servlet线程不安全的原因。<br /><br />　　Java的内存模型JMM（Java <a class="bluekey" href="http://www.yesky.com/key/1549/161549.html" target="_blank"><u><font color="#0000ff">Memory</font></u></a><a class="bluekey" href="http://www.yesky.com/key/2432/162432.html" target="_blank"><u><font color="#0000ff">Model</font></u></a>）JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计，系统存在一个主内存(Main Memory)，Java中所有实例变量都储存在主存中，对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory)，工作内存由缓存和堆栈两部分组成，缓存中保存的是主存中变量的拷贝，缓存可能并不总和主存同步，也就是缓存中变量的修改可能没有立刻写到主存中；堆栈中保存的是线程的局部变量，线程之间无法相互直接访问堆栈中的变量。根据JMM，我们可以将论文中所讨论的Servlet实例的内存模型抽象为图3所示的模型。<br /><br /><table width="90%" align="center" border="0"><tbody><tr><td><div align="center"><img onerror="this.src='/Article/UploadFiles/200601/20060112210436810.jpg';" hspace="3" src="http://www.j2medev.com/Article/UploadFiles/200601/20060112210436810.jpg" align="center" vspace="1" border="1" /><br />图3 Servlet实例的JMM模型</div></td></tr></tbody></table><br />　　下面根据图3所示的内存模型，来分析当用户a和b的线程（简称为a线程、b线程）并发执行时，Servlet实例中所涉及变量的变化情况及线程的执行情况，如图4所示。<br /><br /><table cellspacing="0" cellpadding="2" width="85%" align="center" border="1"><tbody><tr><td width="14%">调度时刻 </td><td width="38%">a线程</td><td width="48%">b线程</td></tr><tr><td width="14%"><a class="bluekey" href="http://www.yesky.com/key/1893/161893.html" target="_blank"><u><font color="#0000ff">T1</font></u></a></td><td width="38%">访问Servlet页面</td><td width="48%"> </td></tr><tr><td width="14%">T2 </td><td width="38%"> </td><td width="48%">访问Servlet页面</td></tr><tr><td width="14%">T3 </td><td width="38%">output=a的输出username=a休眠5000毫秒，让出CPU </td><td width="48%"> </td></tr><tr><td width="14%">T4 </td><td width="38%"> </td><td width="48%">output=b的输出（写回主存）username=b休眠5000毫秒，让出CPU</td></tr><tr><td width="14%">T5 </td><td width="38%">在用户b的浏览器上输出a线程的username的值,a线程终止。</td><td width="48%">  </td></tr><tr><td width="14%">T6</td><td width="38%"> </td><td width="48%">在用户b的浏览器上输出b线程的username的值,b线程终止。</td></tr></tbody></table>　　　　　　　　　　　　　　　　　　图4 Servlet实例的线程调度情况<br /><br />　　从图4中可以清楚的看到，由于b线程对实例变量output的修改覆盖了a线程对实例变量output的修改，从而导致了用户a的信息显示在了用户b的浏览器上。如果在a线程执行输出语句时，b线程对output的修改还没有刷新到主存，那么将不会出现图2所示的输出结果，因此这只是一种偶然现象，但这更增加了程序潜在的危险性。 <br /><strong>设计线程安全的Servlet<br /><br /></strong>　　通过上面的分析，我们知道了实例变量不正确的使用是造成Servlet线程不安全的主要原因。下面针对该问题给出了三种解决方案并对方案的选取给出了一些参考性的建议。<br /><br />　　1、实现 SingleThreadModel 接口<br /><br />　　该接口指定了系统如何处理对同一个Servlet的调用。如果一个Servlet被这个接口指定,那么在这个Servlet中的service方法将不会有两个线程被同时执行，当然也就不存在线程安全的问题。这种方法只要将前面的Concurrent Test类的类头定义更改为：<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Public class Concurrent Test extends HttpServlet implements SingleThreadModel {<br />…………<br />} </td></tr></tbody></table><br />　　2、同步对共享数据的操作<br /><br />　　使用synchronized 关键字能保证一次只有一个线程可以访问被保护的区段，在本论文中的Servlet可以通过同步块操作来保证线程的安全。同步后的代码如下： <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>…………<br />Public class Concurrent Test extends HttpServlet { …………<br />Username = request.getParameter ("username"); <br />Synchronized (this){<br />Output = response.getWriter (); <br />Try {<br />Thread. Sleep (5000);<br />} Catch (Interrupted Exception e){}<br />output.println("用户名:"+Username+"&lt;BR&gt;"); <br />} <br />}<br />}</td></tr></tbody></table><br />　　3、避免使用实例变量<br /><br />　　本实例中的线程安全问题是由实例变量造成的，只要在Servlet里面的任何方法里面都不使用实例变量，那么该Servlet就是线程安全的。<br /><br />　　修正上面的Servlet代码，将实例变量改为局部变量实现同样的功能，代码如下：<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>…… <br />Public class Concurrent Test extends HttpServlet {public void service (HttpServletRequest request, HttpServletResponse <br />Response) throws ServletException, IOException {<br />Print Writer output; <br />String username;<br />Response.setContentType ("text/html; charset=gb2312");<br />…… <br />} <br />}</td></tr></tbody></table><br />　　对上面的三种方法进行测试，可以表明用它们都能设计出线程安全的Servlet程序。但是，如果一个Servlet实现了SingleThreadModel接口，Servlet引擎将为每个新的请求创建一个单独的Servlet实例，这将引起大量的系统开销。SingleThreadModel在Servlet2.4中已不再提倡使用；同样如果在程序中使用同步来保护要使用的共享的数据，也会使系统的性能大大下降。这是因为被同步的代码块在同一时刻只能有一个线程执行它，使得其同时处理客户请求的吞吐量降低，而且很多客户处于阻塞状态。另外为保证主存内容和线程的工作内存中的数据的一致性，要频繁地刷新缓存,这也会大大地影响系统的性能。所以在实际的开发中也应避免或最小化 Servlet 中的同步代码；在Serlet中避免使用实例变量是保证Servlet线程安全的最佳选择。从Java 内存模型也可以知道，方法中的临时变量是在栈上分配空间，而且每个线程都有自己私有的栈空间，所以它们不会影响线程的安全。<br /><br />　　<b>小结</b><br /><br />　　Servlet的线程安全问题只有在大量的并发访问时才会显现出来，并且很难发现，因此在编写Servlet程序时要特别注意。线程安全问题主要是由实例变量造成的,因此在Servlet中应避免使用实例变量。如果应用程序设计无法避免使用实例变量，那么使用同步来保护要使用的实例变量，但为保证系统的最佳性能，应该同步可用性最小的代码路径。<br /><img src ="http://www.blogjava.net/loocky/aggbug/70477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-09-19 11:43 <a href="http://www.blogjava.net/loocky/archive/2006/09/19/70477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OMS启动起来的总结!</title><link>http://www.blogjava.net/loocky/archive/2006/07/04/56530.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Tue, 04 Jul 2006 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/07/04/56530.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/56530.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/07/04/56530.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/56530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/56530.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">            </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">agent,tnslistener</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都启动起来，</span>
				<span lang="EN-US">OracleServiceTESTDB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例也在服务里面启动起来了</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">oem</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">档案库也建立好了，就建立在</span>
				<span lang="EN-US">OracleServiceTESTDB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库上</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：万事具备了，启动</span>
				<span lang="EN-US">OracleOraHome92ManagementServer,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">报异常出来</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器后又停止了，一些服务自动停止，如果他们没什么可做得，例如性能日志和警报服务</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">郁闷啊</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接下来我做了一下事情</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：重新建立了档案库，然后启动</span>
				<span lang="EN-US">OracleOraHome92ManagementServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">仍然没有成功</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">,TNSLISTNER</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">OracleOraHome92ManagementServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">OracleServiceTESTDB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">AGENT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都设置成自动启动，重新启动了机器吧,仍然没有成功</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：重新安装了</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后重新做了以上事情，仍然没有成功</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据网上得资料和自己得实践发现一下问题</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：<br />我自己得机器是路由器给得</span>
				<span lang="EN-US">IP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，不是自己机器设定得固定</span>
				<span lang="EN-US">IP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在</span>
				<span lang="EN-US">XP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面搜索了</span>
				<span lang="EN-US">C:</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">Hosts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，路径</span>
				<span lang="EN-US">C:\WINDOWS\system32\drivers\etc\hosts</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">127.0.0.1<span style="mso-spacerun: yes">       </span>localhost</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">10.200.7.71<span style="mso-spacerun: yes">     </span>USER-3286972EF7</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把分配给自己得</span>
				<span lang="EN-US">IP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，和自己得主机名对应一下，就是说加上第二行，然后重新启动机器，</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">OMS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就启动起来了，<br />2:<br />我搜索了注册表里面</span>
				<span lang="EN-US">OracleOraHome92ManagementServer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">得</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraHome92ManagementServer<span style="mso-spacerun: yes">   </span>DependOnService</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数值数据对应到</span>
				<span lang="EN-US">OracleServiceTESTDB,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">要是不对应一定要修改注册表让他对应起来，就是说一定要又依赖关系！！！！否则成功不了</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">总之</span>
				<span lang="EN-US"> 2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">条：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：动态</span>
				<span lang="EN-US">IP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一定要对应主机名</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：注册表里面得依赖关系一定要依赖当前档案库所在得服务上就是</span>
				<span lang="EN-US">OracleServiceTESTDB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上面！！！！</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/56530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-07-04 13:58 <a href="http://www.blogjava.net/loocky/archive/2006/07/04/56530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jmx入门(图片无法贴上来?在文章最后面附了word文档)</title><link>http://www.blogjava.net/loocky/archive/2006/06/26/55090.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Mon, 26 Jun 2006 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/06/26/55090.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/55090.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/06/26/55090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/55090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/55090.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JMX														入门																																																														 												JMX				越来越多得出现在各种技术杂志、以及社区，如				ibm				的				developerworks...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2006/06/26/55090.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/55090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-06-26 11:10 <a href="http://www.blogjava.net/loocky/archive/2006/06/26/55090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JAVA正则表达式来校验手机号码以及替换+86</title><link>http://www.blogjava.net/loocky/archive/2006/06/19/53725.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Mon, 19 Jun 2006 03:15:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/06/19/53725.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/53725.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/06/19/53725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/53725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/53725.html</trackback:ping><description><![CDATA[<p>/**<br /> * user java reg to check phone number and replace 86 or +86<br /> * only check start with "+86" or "86" ex +8615911119999 13100009999 replace +86 or 86 with ""<br /> * @param phoneNum<br /> * @return<br /> * @throws Exception<br /> */ <br /> protected int checkPhoneNum(String phoneNum) throws Exception {<br />  <br />  Pattern p1 = Pattern.compile("^((<a href="file://\\+{0,1}86){0,1})1[0-9]{10">\\+{0,1}86){0,1})1[0-9]{10</a>}");<br />  Matcher m1 = p1.matcher(phoneNum);<br />  if (m1.matches()) {<br />   Pattern p2 = Pattern.compile("^((<a href="file://\\+{0,1}86){0,1">\\+{0,1}86){0,1</a>})");<br />   Matcher m2 = p2.matcher(phoneNum);<br />   StringBuffer sb = new StringBuffer();<br />   while (m2.find()) {<br />    m2.appendReplacement(sb, "");<br />   }<br />   m2.appendTail(sb);<br />   return Integer.parseInt(sb.toString());</p>
		<p>  } else {<br />   throw new Exception("The format of phoneNum "+phoneNum+"  is not correct!Please correct it");<br />  }</p>
		<p> }<br /></p><img src ="http://www.blogjava.net/loocky/aggbug/53725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-06-19 11:15 <a href="http://www.blogjava.net/loocky/archive/2006/06/19/53725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring 对rmi的支持(附源代码)</title><link>http://www.blogjava.net/loocky/archive/2006/05/29/48745.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Mon, 29 May 2006 06:45:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/29/48745.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/48745.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/29/48745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/48745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/48745.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1				：								Package								net.loocky.rmi.spring								|-------BusinessService.java								|-------Service.java								|-------ServiceClient.java								|-----...&nbsp;&nbsp;<a href='http://www.blogjava.net/loocky/archive/2006/05/29/48745.html'>阅读全文</a><img src ="http://www.blogjava.net/loocky/aggbug/48745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-29 14:45 <a href="http://www.blogjava.net/loocky/archive/2006/05/29/48745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>经常用ejb,还是复习一下原始的rmi吧,附代码</title><link>http://www.blogjava.net/loocky/archive/2006/05/26/48281.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 26 May 2006 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/26/48281.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/48281.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/26/48281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/48281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/48281.html</trackback:ping><description><![CDATA[<p>1：文件Service.java ServiceImpl.java ServiceServer.java ServiceClient.java  client.policy<br /><br />结构<br /> src<br />    net.loocky.rmi/ *.java<br />    client.policy<br /><br />文件如下：<br /><font color="#ff0000">Service.java是个interface<br /></font>package net.loocky.rmi;</p>
		<p>import java.rmi.Remote;<br />import java.rmi.RemoteException;</p>
		<p>public interface Service extends Remote {</p>
		<p> public String getName() throws RemoteException;</p>
		<p> public void setName(String name) throws RemoteException;</p>
		<p>}<br /><font color="#ff0000">ServiceImpl.java Service的实现<br /></font><font color="#000000">package net.loocky.rmi;</font></p>
		<p>
				<font color="#000000">import java.rmi.RemoteException;<br />import java.rmi.server.UnicastRemoteObject;</font>
		</p>
		<p>
				<font color="#000000">public class ServiceImpl extends UnicastRemoteObject implements Service {<br /> private static final long serialVersionUID = 1L;</font>
		</p>
		<p>
				<font color="#000000"> private String name;</font>
		</p>
		<p>
				<font color="#000000"> public ServiceImpl(String name) throws RemoteException {<br />  this.name = name;<br /> }</font>
		</p>
		<p>
				<font color="#000000"> public String getName() throws RemoteException {<br />  return name;<br /> }</font>
		</p>
		<p>
				<font color="#000000"> public void setName(String name) throws RemoteException {<br />  this.name = name;</font>
		</p>
		<p>
				<font color="#000000"> }</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">}<br /><br /><font color="#ff0000">ServiceServer</font><br />package net.loocky.rmi;</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">import java.rmi.Naming;</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">public class ServiceServer {</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000"> /**<br />  * @param args<br />  */<br /> public static void main(String[] args) {<br />  try {</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">   ServiceImpl s1 = new ServiceImpl("my name is john");<br />   ServiceImpl s2 = new ServiceImpl("my name is loocky");<br />   Naming.rebind("john", s1);<br />   Naming.rebind("loocky", s2);<br />   System.out.println("waiting for clients...");<br />  } catch (Exception e) {<br />   e.printStackTrace();<br />  }</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000"> }</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">}<br /><font color="#ff0000">ServiceClient</font><br />package net.loocky.rmi;</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">import java.rmi.Naming;<br />import java.rmi.RMISecurityManager;</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">public class ServiceClient {</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000"> /**<br />  * @param args<br />  */<br /> public static void main(String[] args) {<br />  System.setSecurityManager(new RMISecurityManager());<br />  String url = "rmi://127.0.0.1:1099/";<br />  try {<br />   Service s1 = (Service) Naming.lookup(url + "john");<br />   Service s2 = (Service) Naming.lookup(url + "loocky");<br />   System.out.println(s1.getName());<br />   s2.setName("my name is not loocky");<br />   System.out.println(s2.getName());</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">  } catch (Exception e) {<br />   e.printStackTrace();<br />  }<br /> }</font>
				</font>
		</p>
		<p>
				<font color="#ff0000">
						<font color="#000000">}<br /><font color="#ff0000">client.policy</font><br />grant<br />{<br />  permission java.security.AllPermission;<br />//　permission java.net.SocketPermission　"127.0.0.1:1099","connect";<br />//　permission java.net.SocketPermission　"127.0.0.1:80","connect";<br />};<br /><br />有了这些文件下面要做的事情是<br /><br />1:进入bin/  rmic net.loocky.rmi.ServiceImpl 生成STUB<br />2：dos下面 rmiregistry<br />3：java net.loocky.rmi.ServiceServer<br />4: java -Djava.security.policy=client.policy net.loocky.rmi.ServiceClient<br />5:查看控制台的结果吧！<br /><br /><br /><br /><br /></font>
				</font>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/48281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-26 11:10 <a href="http://www.blogjava.net/loocky/archive/2006/05/26/48281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring 定时器的使用,可以用来发送垃圾邮件,或者定时搜索东西(附源码)</title><link>http://www.blogjava.net/loocky/archive/2006/05/25/48084.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 25 May 2006 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/25/48084.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/48084.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/25/48084.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/48084.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/48084.html</trackback:ping><description><![CDATA[<p>
				<br />&lt;beans&gt;</p>
		<p> &lt;bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean"&gt;<br />  &lt;property name="scheduledTimerTasks"&gt;<br />   &lt;list&gt;<br />    &lt;ref local="testtimertask"/&gt;<br />   &lt;/list&gt;<br />  &lt;/property&gt;<br /> &lt;/bean&gt;</p>
		<p> &lt;bean id="timerbean" class="MyTimerImpl"&gt;</p>
		<p> &lt;/bean&gt;<br /> &lt;bean id="testtimertask" class="org.springframework.scheduling.timer.ScheduledTimerTask"&gt;<br />  &lt;property name="timerTask"&gt;<br />   &lt;ref bean="timerbean" /&gt;<br />  &lt;/property&gt;</p>
		<p>  &lt;property name="delay"&gt;<br />   &lt;value&gt;1000&lt;/value&gt;<br />  &lt;/property&gt;</p>
		<p>  &lt;property name="period"&gt;<br />   &lt;value&gt;1000&lt;/value&gt;<br />  &lt;/property&gt;</p>
		<p> &lt;/bean&gt;</p>
		<p>&lt;/beans&gt;<br /><br />MyTimerImpl<br /></p>
		<p>import java.util.TimerTask;</p>
		<p>public class MyTimerImpl  extends TimerTask {</p>
		<p> public void run() {<br />  System.out.println("aaaaaaaa");<br />  <br /> }<br />TestTimer <br /><br />import net.loocky.sowq.util.ServiceFactory;</p>
		<p>import org.springframework.context.ApplicationContext;<br />import org.springframework.context.support.FileSystemXmlApplicationContext;</p>
		<p>public class TestTimer {</p>
		<p> /**<br />  * @param args<br />  */<br /> public static void main(String[] args) throws Exception {<br />  <br />    ApplicationContext ctx=new FileSystemXmlApplicationContext("E:\\work\\Test\\bin\\spring-config.xml");<br />  Thread.sleep(100000);<br /> }</p>
		<p>}<br /></p>
		<p>}</p><img src ="http://www.blogjava.net/loocky/aggbug/48084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-25 17:59 <a href="http://www.blogjava.net/loocky/archive/2006/05/25/48084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复习一下4种排序方式附源代码</title><link>http://www.blogjava.net/loocky/archive/2006/05/25/48043.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Thu, 25 May 2006 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/25/48043.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/48043.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/25/48043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/48043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/48043.html</trackback:ping><description><![CDATA[<p>冒泡排序<br />public class BubbleSort {<br /> public  static void sort(int[] data, int n) {<br />  int sortedNum = 0;<br />  int index;<br />  while (sortedNum &lt; n) {<br />   for (index = 1; index &lt; n - sortedNum; index++) {<br />    if (data[index - 1] &gt; data[index]) {<br />     int tmp;<br />     tmp = data[index - 1];<br />     data[index - 1] = data[index];<br />     data[index] = tmp;</p>
		<p>    }<br />   }<br />   sortedNum++;<br />  }<br /> }</p>
		<p>}<br />选择排序<br />public class SelectSort {<br /> public static void sort(int[] data, int n) {<br />  int sortedNum = 0;<br />  int index;<br />  int maxIndex = 0;<br />  while (sortedNum &lt; n) {<br />   for (index = 1; index &lt; n - sortedNum - 1; index++) {<br />    if (data[maxIndex] &lt; data[index]) {<br />     maxIndex = index;<br />    }<br />   }<br />   int tmp;<br />   tmp = data[maxIndex];<br />   data[maxIndex] = data[n - sortedNum - 1];<br />   data[n - sortedNum - 1] = tmp;<br />   sortedNum++;</p>
		<p>  }</p>
		<p> }</p>
		<p>}<br /><br />插入排序<br />public class InsertSort {<br /> public static void sort(int[] data, int n) {<br />  int sortedNum = 1;<br />  int index;<br />  while (sortedNum &lt; n) {<br />   int tmp = data[sortedNum];<br />   for (index = sortedNum; index &gt; 0; index--) {<br />    if (tmp &lt; data[index - 1]) {<br />     data[index] = data[index - 1];<br />    } else {<br />     break;<br />    }<br />   }<br />   //插入的他的位置<br />   //index就是找TMP的位置<br />   data[index] = tmp;<br />   sortedNum++;<br />   <br />   for(int i=0;i&lt;n;i++){<br />    System.out.print(data[i]+",");<br />   }<br />   System.out.println("");<br />  }</p>
		<p> }</p>
		<p>}<br /><br />快速排序<br />public class QuickSort {</p>
		<p> public static void sort(int[] data, int n) {<br />  quickSortRescursive(data, 0, n - 1);<br /> }</p>
		<p> private static void quickSortRescursive(int[] data, int left, int right) {</p>
		<p>  int pos;<br />  if (left &gt;= right)<br />   return;<br />  pos = getPos(data, left, right);<br />  // 排左边的<br />  quickSortRescursive(data, left, pos - 1);<br />  quickSortRescursive(data, pos + 1, right);<br /> }</p>
		<p> private static int getPos(int[] data, int left, int right) {<br />  // 想左边移动<br />  while (true) {<br />   //遇到右边的大就忽略，并且缩小右边范围<br />   while (left &lt; right &amp;&amp; data[left] &lt; data[right])<br />    right--;<br />   <br />   //遇到左边的大就往右边换<br />   if (left &lt; right)<br />    swap(data, left++, right);<br />   else<br />    return left;<br />//   遇到右边的大就忽略，并且左边缩小范围<br />   while (left &lt; right &amp;&amp; data[left] &lt; data[right])<br />    left++;<br />   if (left &lt; right)<br />    //遇到左边的大就往右边换<br />    swap(data, left, right--);<br />   // return left;</p>
		<p>   else<br />    return right;<br />   // return 0;<br />  }</p>
		<p> }</p>
		<p> private static void swap(int[] data, int i, int j) {<br />  int tmp = data[i];<br />  data[i] = data[j];<br />  data[j] = tmp;</p>
		<p> }</p>
		<p>}</p><img src ="http://www.blogjava.net/loocky/aggbug/48043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-25 15:07 <a href="http://www.blogjava.net/loocky/archive/2006/05/25/48043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DM1.1.2协议的翻译第二部分</title><link>http://www.blogjava.net/loocky/archive/2006/05/24/47802.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Wed, 24 May 2006 05:41:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/24/47802.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/47802.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/24/47802.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/47802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/47802.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">8</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">SyncML dm package</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>SyncML dm </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议包括</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个阶段</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初始化阶段（认证和终端信息交换的阶段）和管理阶段，管理阶段服务器希望进行重复多次进行管理。</span>
				<span lang="EN-US">Manage</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">周期的开始以</span>
				<span lang="EN-US">package0</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开始，本次出发依赖于不可更改的环境，在</span>
				<span lang="EN-US">SyncML Notifaction </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开始的周期里面被指定</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下图是描绘了</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个阶段</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
						<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
								<v:stroke joinstyle="miter">
								</v:stroke>
								<v:formulas>
										<v:f eqn="if lineDrawn pixelLineWidth 0">
										</v:f>
										<v:f eqn="sum @0 1 0">
										</v:f>
										<v:f eqn="sum 0 0 @1">
										</v:f>
										<v:f eqn="prod @2 1 2">
										</v:f>
										<v:f eqn="prod @3 21600 pixelWidth">
										</v:f>
										<v:f eqn="prod @3 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @0 0 1">
										</v:f>
										<v:f eqn="prod @6 1 2">
										</v:f>
										<v:f eqn="prod @7 21600 pixelWidth">
										</v:f>
										<v:f eqn="sum @8 21600 0">
										</v:f>
										<v:f eqn="prod @7 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @10 21600 0">
										</v:f>
								</v:formulas>
								<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect">
								</v:path>
								<o:lock v:ext="edit" aspectratio="t">
								</o:lock>
						</v:shapetype>
						<v:shape id="_x0000_i1025" style="WIDTH: 589.5pt; HEIGHT: 528.75pt" type="#_x0000_t75">
								<v:imagedata src="file:///C:\DOCUME~1\user\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg" o:title="2">
								</v:imagedata>
						</v:shape>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>Management </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">阶段包括了几个协议的交互，从</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送到</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的包的内容决定了这个周期是否进行下去，如果从</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送出来的包的管理指令需要得到</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的回复，</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将会返回针对这些操作指令的回复。这些回复的包开始了新的协议的交互，服务器将发送一个新的管理指令的包并且开始一个新的协议交互的的过程。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">     </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">package</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面不包含</span>
				<span lang="EN-US">management operation</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候，</span>
				<span lang="EN-US">client </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将根据服务器发送过来的包回复一个新的包，这个包里面只包含了</span>
				<span lang="EN-US">status</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Synchr</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在这种情况下，真个回复的包不能被发送，协议中止。</span>
				<span lang="EN-US">Server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须给任何</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的包进行回复</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">     </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包的处理可能花费的时间是不可预知的，因此在</span>
				<span lang="EN-US">SyncML dm </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议中没有指定</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">者的超时时间。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">     </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果不是</span>
				<span lang="EN-US">operation command </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另有规定，终端和</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以不按照</span>
				<span lang="EN-US">package</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的顺序执行指令。因此，在上一条管理指令在执行的顺序是必须的，管理指令必须按照他们发送的顺序进行执行。</span>
				<span lang="EN-US">Client </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不能发送除了包含</span>
				<span lang="EN-US">Devinfo </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">REPLACE command</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">Result alert </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">给</span>
				<span lang="EN-US">server</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">8</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．</span>
				<span lang="EN-US">1 session abort</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">8</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．</span>
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．</span>
				<span lang="EN-US">1 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">描述</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-spacerun: yes">   </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还是</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">任何时候都可以中止操作。终端操作的原因可能是</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关闭，</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没电，或者用户在</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上的其他交互操作，或者其他操作。这种情况下，最好的方式是发送一个中止的</span>
				<span lang="EN-US">ALERT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。推荐的做法是：</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包含了管理指令的任何</span>
				<span lang="EN-US">stauts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">result</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果发送一个</span>
				<span lang="EN-US">session </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">终端给接受方的</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，那么接收方的回应会忽略，（不会回应把，自己也不理解，有待更正）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有些终端是无法控制的，</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不在覆盖范围内或者电池没有电。</span>
				<span lang="EN-US">Server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须也对没有信号的情况做好准备。上面提到的需求只要是为了减少一些回应超时，或者没有回应的情况。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">补充说明：</span>
				<span lang="EN-US">request/response</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在传输用的角色被倒置的情况，</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是个传输层的</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是个传输层的</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，这种情况下</span>
				<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?>
				<st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">
						<span lang="EN-US">8.1.1</span>
				</st1:chsdate>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上的推荐可能不会用到</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">
						<span lang="EN-US">8.1.2</span>
				</st1:chsdate>
				<span lang="EN-US">
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需求</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
				<span lang="EN-US">Alert 1223 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是无法预知的操作中止的信号标识，发送方的</span>
				<span lang="EN-US">session </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中断标识包含了</span>
				<span lang="EN-US">command</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的状态和结果，这些指令将在</span>
				<span lang="EN-US">abort</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之前执行，发送方必须包含一个</span>
				<span lang="EN-US">FINAL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的标识。当</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">收到</span>
				<span lang="EN-US">alert</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提示的时候，必须在回复的</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中包含状态和</span>
				<span lang="EN-US">SyncHR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并且不回复新的</span>
				<span lang="EN-US">MESSAGE</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">8.2 package 0 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发起的初始化</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指令</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">许多终端不能持续的侦听服务器的连接，由于安全原因一些终端只是不想开方一些端口。大部分终端可以接受一些主动提供的</span>
				<span lang="EN-US">MESSAGE,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">称作通知</span>
				<span lang="EN-US">(notifaction).</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US">
								<span style="mso-spacerun: yes">  </span>Server</span>可以用通知的这种能力使终端初始化一个连接回<span lang="EN-US">server</span>，<span lang="EN-US"> SyncML dm </span>协议规定了几种管理初始化通知的发送方式。发送者和通知的内容可以参考<span lang="EN-US" style="FONT-SIZE: 10pt">Notification Initiated Session, Version <st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.1.2</st1:chsdate><o:p></o:p></span></font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US">
								<span style="mso-spacerun: yes"> </span>
								<span style="mso-spacerun: yes">  </span>
								<span style="mso-spacerun: yes"> </span>
						</span>需要说明的是：接收一个管理初始化的通知会受其他方面影响。如终端设备可能会允许用户操作设备去初始化管理周期，另外，终端用户也可以管理超时的管理周期，一些错误得操作也会使终端发起一个管理周期。</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">8</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">．<span lang="EN-US">3 package1 </span>：客户端发起初始化指令<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">   </span>
						</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">管理阶段跟<span lang="EN-US">SyncML dm </span>数据协议得描述完全相同，客户端发起包的意图如下：<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<font face="宋体, MS Song">
								<span style="mso-spacerun: yes">   </span>
								<o:p>
								</o:p>
						</font>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">1</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：发送终端信息<span lang="EN-US">(</span>厂商，版本，其他<span lang="EN-US">)</span>给<span lang="EN-US">DM server</span>，终端必须在第一个<span lang="EN-US">message</span>中管理周期中发送设备信息<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">2</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：根据<span lang="EN-US">SELECTION 9</span>中的规则终端向<span lang="EN-US">DM server</span>确认身份<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">3</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：通知<span lang="EN-US">dmserver</span>本次<span lang="EN-US">SESSION</span>由客户端发起还是由<span lang="EN-US">Dmserver </span>发起（<span lang="EN-US">package0</span>往往不会用到，如果是客户端发起的话）。<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes"> </span>
						</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">客户端发起得初始化<span lang="EN-US">package</span>得具体需求如下：<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>1</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：在<span lang="EN-US">SyncHdr </span>元素里面得需求<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">VerDTD </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">的值必须是<span lang="EN-US">1.1<o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">VerProto</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">的值必须是“<span lang="EN-US">DM/<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1.1" unitname="”">1.1<span lang="EN-US"><span lang="EN-US">”</span></span></st1:chmetcnv><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Sessionid</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">必须能标明但前<span lang="EN-US">Management session </span>的身份，如果<span lang="EN-US">client </span>回复通知，那么<span lang="EN-US">Alert</span>（<span lang="EN-US">1200</span>）标识由<span lang="EN-US">server</span>发起的，<span lang="EN-US">sessionid</span>必须跟<span lang="EN-US">notifaction</span>里面的<span lang="EN-US">sessionid</span>相同，否则<span lang="EN-US">client</span>产生的<span lang="EN-US">sessionid</span>不会唯一，<span lang="EN-US">sessionid</span>会贯穿整个<span lang="EN-US">session<o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">MsgID</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">必须明确的指出<span lang="EN-US">message</span>属于哪个<span lang="EN-US">management session<o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Target</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">元素必须指明是个那个目标<span lang="EN-US">server<o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Source</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">元素指明的是哪个<span lang="EN-US">client </span>的<span lang="EN-US">service<o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Cred element </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">可能包含再认证的<span lang="EN-US">message</span>里面，一般是从<span lang="EN-US">client</span>发起，<span lang="EN-US">section9</span>将会详细描述<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>2</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：<span lang="EN-US">Syncbody</span>中必须包含<span lang="EN-US">alert</span>信息无论<span lang="EN-US">client</span>发起还是<span lang="EN-US">server</span>发起<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Alert command</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">的需求如下<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>CmdId </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">是必须的<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>
						</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">存放<span lang="EN-US">management session type </span>的<span lang="EN-US">Data element</span>或者由<span lang="EN-US">server</span>发起（<span lang="EN-US">1200</span>）或者由<span lang="EN-US">client</span>发起（<span lang="EN-US">1201</span>）<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>3</span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">：终端的信息必须在<span lang="EN-US">syncbody</span>中包含<span lang="EN-US">Relpace command</span>，<span lang="EN-US">replace command</span>需求如下<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>Cmdid </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">是必须的<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>Dm tree </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">每个节点的<span lang="EN-US">item</span>都可以被找到，在<span lang="EN-US">DMSTDOBJ</span>中有详细描述<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>Source element </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">必须包含一个指定的<span lang="EN-US">URI </span>节点<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
								<span style="mso-spacerun: yes">  </span>Data element </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">用来装载<span lang="EN-US">device </span>信息数据<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">
						<o:p>
								<font face="宋体, MS Song"> </font>
						</o:p>
				</span>
		</p>
		<p class="Default" style="MARGIN: 0cm 0cm 0pt">
				<font face="宋体, MS Song">
						<span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">Final element </span>
						<span style="COLOR: windowtext; mso-bidi-font-family: 'Times New Roman'">必须包含在<span lang="EN-US">Syncbody </span>的最后一个<span lang="EN-US">message </span>中<span lang="EN-US"><o:p></o:p></span></span>
				</font>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/47802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-24 13:41 <a href="http://www.blogjava.net/loocky/archive/2006/05/24/47802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DM1.1.2协议的翻译(前面的几章,待续)</title><link>http://www.blogjava.net/loocky/archive/2006/05/23/47629.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Tue, 23 May 2006 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/23/47629.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/47629.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/23/47629.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/47629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/47629.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：简介</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Dm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议允许管理指令在节点上执行，跟</span>
				<span lang="EN-US">SyncML </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步协议和</span>
				<span lang="EN-US">SyncML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示协议类似都采用的是包的形式。设备的一个节点表示为一组可配置参数，可以这个节点进行读和设定参数的键、值操作，而终端的应用软件另外一个节点可能是的正在可运行环境中（意思是不会影响到别的节点的功能），对这类型的节点操作可以对软件的一部分功能进行下载、升级或者卸载</span>
				<span lang="EN-US">.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">SyncML DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这些指令代表这些操作，在</span>
				<span lang="EN-US">SymcML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表现协议和</span>
				<span lang="EN-US"> SyncML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表现协议</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的用户手册中有描述。这些指令和消息的结构等同于</span>
				<span lang="EN-US">SyncML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据同步协议，并且管理协议的</span>
				<span lang="EN-US">DTM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是来源于</span>
				<span lang="EN-US">SyncML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据同步协议的</span>
				<span lang="EN-US">DTD</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：节点处理</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每一个节点的路径就是设备的唯一统一资源标识，这些标识必须遵循这样一些指定的需求：</span>
				<span lang="EN-US">SyncML DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">树和描述加以限制和指定</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每一个节点都有一个可以决定什么样的管理内容可以用来设置或者读的类型，在节点上操作需要实现定义这个类型的值，当节点被读的时候，这个类型的值将被返回。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">举例说明，有的节点只是一个简单文本类型，需要设置，而有的节点是</span>
				<span lang="EN-US">WAP Provisioning document MIME </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的复杂类型，甚至其他节点可能象</span>
				<span lang="EN-US">WAP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置或者软件安装这样更复杂的值</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">SyncML DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议的指令的</span>
				<span lang="EN-US">target</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">souce</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目标和来源</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素分别指定</span>
				<span lang="EN-US">target</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是接纳着，</span>
				<span lang="EN-US">source</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是来源，这些过程出现的异常都会在管理命令需求中的异常中会被提及</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：包中的多消息</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．</span>
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">描述</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理协议中中提供用多个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来传输一个包的功能，当一个包非常大的时候，分成多个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行传输是非常有必要的，这样的局限是可能由传输协议或者终端的功能限制决定，（分成多个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就可以解决这个问题）。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理协议中，包作为一个逻辑组的作用是非常有限的，大部分的限制在</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上，而不是在</span>
				<span lang="EN-US">PACKAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上，举例：一个</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须完全适从一个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为了避免大量客户端而有限的资源，服务器等待从客户端的包的</span>
				<span lang="EN-US">command</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">返回一个状态，</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果上一个</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没有返回一个状态服务器不允许发送一个新的</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，换句话来说，大部分</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送到客户端的</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都会收到</span>
				<span lang="EN-US">CMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">package</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）的返回信息，除非</span>
				<span lang="EN-US">SERVER</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送一个大的对象或者请求更多的</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（用</span>
				<span lang="EN-US">1222 ALERT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个</span>
				<span lang="EN-US">PACKAGE </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包含大对象数据将会被分成很多</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">传输，在第七部分会详细描述</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说明</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在处于一下一种包的边界的状态的时候：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-spacerun: yes"> </span>1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有一个完全大的包，在这种状况下，</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等待从</span>
				<span lang="EN-US">client </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">返回状态，由于状态和结果非常大（如</span>
				<span lang="EN-US">GET COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的结果），</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将发送多个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，然后结束他的回应</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-spacerun: yes"> </span>2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从</span>
				<span lang="EN-US">client </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接受到一个完整的包，</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将会发送一个新的</span>
				<span lang="EN-US">COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">给</span>
				<span lang="EN-US">client</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-spacerun: yes"> </span>3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送了包中的一个或多个指令，但是没有发送包中的最后一个指令的时候，只有当</span>
				<span lang="EN-US">package</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的最后一个指令被发送出去的时候，这次状态才被认为是有效的</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由于</span>
				<span lang="EN-US">SyncML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的传输形式是</span>
				<span lang="EN-US">request/response<span style="mso-tab-count: 1">    </span></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的形式，无论是客户端还是服务器端在传输消息的时候都不应该包含一个开始命令或者一个结束的标志，以便保证</span>
				<span lang="EN-US">response/request</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">循环进行下去（言外之意就是有个这个标志就是开始和结束的时候）</span>
				<span lang="EN-US">.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">举例：当</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">STATE1,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">他可能收到客户端的很多</span>
				<span lang="EN-US">MESSAGE,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这些</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包含了</span>
				<span lang="EN-US">status</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">result</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				<span lang="EN-US">Server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会对任何一个</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回应，除了对</span>
				<span lang="EN-US">NEW COMMAND</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行回应外。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对发送的回应在</span>
				<span lang="EN-US">SyncHdr</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中包含了一个</span>
				<span lang="EN-US">1222 ALERT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也指定了，（表示没有结束还有消息）。</span>
				<span lang="EN-US">STAUTS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须对</span>
				<span lang="EN-US">ALERT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的回应进行发送而不是对</span>
				<span lang="EN-US">RESULT</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的回应进行发送</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">ALERT1222</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以被</span>
				<span lang="EN-US">ALERT 1223</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">替换，因为服务器可以主动结束一个过程</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下图展示了多个</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">被发送</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
						<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
								<v:stroke joinstyle="miter">
								</v:stroke>
								<v:formulas>
										<v:f eqn="if lineDrawn pixelLineWidth 0">
										</v:f>
										<v:f eqn="sum @0 1 0">
										</v:f>
										<v:f eqn="sum 0 0 @1">
										</v:f>
										<v:f eqn="prod @2 1 2">
										</v:f>
										<v:f eqn="prod @3 21600 pixelWidth">
										</v:f>
										<v:f eqn="prod @3 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @0 0 1">
										</v:f>
										<v:f eqn="prod @6 1 2">
										</v:f>
										<v:f eqn="prod @7 21600 pixelWidth">
										</v:f>
										<v:f eqn="sum @8 21600 0">
										</v:f>
										<v:f eqn="prod @7 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @10 21600 0">
										</v:f>
								</v:formulas>
								<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
								</v:path>
								<o:lock aspectratio="t" v:ext="edit">
								</o:lock>
						</v:shapetype>
						<v:shape id="_x0000_i1025" style="WIDTH: 634.5pt; HEIGHT: 568.5pt" type="#_x0000_t75">
								<v:imagedata o:title="1" src="file:///C:\DOCUME~1\user\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg">
								</v:imagedata>
						</v:shape>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需求</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果</span>
				<span lang="EN-US">SyncML package </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分成多个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">被传送，最后一个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须包含一个</span>
				<span lang="EN-US">FINAL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的标志，其他么</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一定不能包含</span>
				<span lang="EN-US">final</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标志。</span>
				<span lang="EN-US">Final element </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送而不是由</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送，最终停止本次的</span>
				<span lang="EN-US">PACKAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>Server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在每个</span>
				<span lang="EN-US">MESSAGE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须发送</span>
				<span lang="EN-US">FINAL message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，不过在发送大的对象的时候或者发送</span>
				<span lang="EN-US">NEXT MESSAGE </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的相应的时候不会发送</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">7</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：大对象的处理</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>SyncML dm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议中，大对象不能完全在一个</span>
				<span lang="EN-US">Message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中传输，根据</span>
				<span lang="EN-US">SyncML data </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步协议指定的大对象处理方案可以分成多个</span>
				<span lang="EN-US">Message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。规则如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第一个限制就是支持大对象处理的终端必须显示的之处</span>
				<span lang="EN-US">DevDetail/LrgObj</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的标识为</span>
				<span lang="EN-US">true</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二个限制是在</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">传输的</span>
				<span lang="EN-US">MaxObjSize</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有多大，在</span>
				<span lang="EN-US">SyncML data </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同步协议中</span>
				<span lang="EN-US">MaxObjSize </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会在</span>
				<span lang="EN-US">Meta information</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中指定。</span>
				<span lang="EN-US">DM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议中被发送着接受的最大对象的大小（</span>
				<span lang="EN-US">MaxObjSize</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）包含在</span>
				<span lang="EN-US">syncHdr</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中（</span>
				<span lang="EN-US">message </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">META INFO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
				<span lang="EN-US">,syncHdr</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中指定的</span>
				<span lang="EN-US">MaxObjSize</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，发送者发送的单个对象都不能超过这个大小，如果</span>
				<span lang="EN-US">MaxObjSize </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没有被发送，接收者可以自由发送任何大小的</span>
				<span lang="EN-US">message </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">给</span>
				<span lang="EN-US">server</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要指出的是：</span>
				<span lang="EN-US">MaxObjSize </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会影响整个</span>
				<span lang="EN-US">DM session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如果在随后的</span>
				<span lang="EN-US">message </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中没有对这个值进行重新设置。新的</span>
				<span lang="EN-US">MaxObjSize</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在后来的</span>
				<span lang="EN-US">message</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指定一个可能的原因是</span>
				<span lang="EN-US"> client</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US"> free memory</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大小的依赖，（有东西创建在</span>
				<span lang="EN-US">MEMORY</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候或者删除的时候</span>
				<span lang="EN-US">FREE MOMORY</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会发生变化）。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第三个限制：在上一个单元结束前终端会检测新的对象（</span>
				<span lang="EN-US">messge</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），终端会回复一个</span>
				<span lang="EN-US">1225</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US"> alert</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: BCJDKN+CourierNewPSMT; mso-font-kerning: 0pt; mso-bidi-font-family: BCJDKN+CourierNewPSMT">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: BCJDKN+CourierNewPSMT; mso-font-kerning: 0pt; mso-bidi-font-family: BCJDKN+CourierNewPSMT">
						<span style="mso-spacerun: yes"> </span>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: BCJDKN+CourierNewPSMT; mso-font-kerning: 0pt; mso-bidi-font-family: BCJDKN+CourierNewPSMT">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: BCJDKN+CourierNewPSMT; mso-font-kerning: 0pt; mso-bidi-font-family: BCJDKN+CourierNewPSMT">
						<span style="mso-spacerun: yes"> </span>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: BCIIMJ+TimesNewRoman; mso-font-kerning: 0pt; mso-bidi-font-family: BCIIMJ+TimesNewRoman">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p><img src ="http://www.blogjava.net/loocky/aggbug/47629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-23 13:58 <a href="http://www.blogjava.net/loocky/archive/2006/05/23/47629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>参考niufish jdon整理的23种设计模式及其源代码,有的做了修改</title><link>http://www.blogjava.net/loocky/archive/2006/05/19/47093.html</link><dc:creator>loocky</dc:creator><author>loocky</author><pubDate>Fri, 19 May 2006 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/loocky/archive/2006/05/19/47093.html</guid><wfw:comment>http://www.blogjava.net/loocky/comments/47093.html</wfw:comment><comments>http://www.blogjava.net/loocky/archive/2006/05/19/47093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loocky/comments/commentRss/47093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loocky/services/trackbacks/47093.html</trackback:ping><description><![CDATA[好多地方感觉并没有理解透，有时间再次整理一下<a href="/Files/loocky/pattern.zip"><br /><br />http://www.blogjava.net/Files/loocky/pattern.zip</a><img src ="http://www.blogjava.net/loocky/aggbug/47093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loocky/" target="_blank">loocky</a> 2006-05-19 18:02 <a href="http://www.blogjava.net/loocky/archive/2006/05/19/47093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>