<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_随心所欲</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/12248/rss</id><updated>2010-09-02T00:52:25Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/12248/rss"/><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/09/02/1815636.html</id><title type="text">sqlite3环境配置－初始篇</title><summary type="text">从sqlite3的官网上下载最新的压缩包，如存入到/root/Desktop/sqlite3/目录下，我下载的包文件名为sqlite-3.7.0.tar.gz，然后在命令行中运行tar -xzvf sqlite-3.7.0.tar.gz，进入到sqlite3/目录下，运行configure，再运行make，make install。至此sqlite3运行环境已经配置成功。在命令行中运行sqlite...</summary><published>2010-09-02T00:52:00Z</published><updated>2010-09-02T00:52:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/09/02/1815636.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/09/02/1815636.html"/><content type="html">&lt;p&gt;从sqlite3的官网上下载最新的压缩包，如存入到/root/Desktop/sqlite3/目录下，我下载的包文件名为sqlite-3.7.0.tar.gz，然后在命令行中运行tar -xzvf sqlite-3.7.0.tar.gz，进入到sqlite3/目录下，运行configure，再运行make，make install。至此sqlite3运行环境已经配置成功。在命令行中运行sqlite3，就会看到它的版本信息了。配置成功，OK. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1815636.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/09/02/1815636.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/09/01/1814834.html</id><title type="text">linux-vi备查</title><summary type="text">vi 编辑器是所有Unix及Linux系统下标准的编辑器，它的强大不逊色于任何最新的文本编辑器，这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix及Linux系统的任何版本，vi编辑器是完全相同的，因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑 器，学会它后，您将在Linux的世界里畅行无阻。 1、vi的基本概念 　　基本上vi可以分为三种状态，分...</summary><published>2010-09-01T06:26:00Z</published><updated>2010-09-01T06:26:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/09/01/1814834.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/09/01/1814834.html"/><content type="html">&lt;span id="articlecontent" onmouseup="NewHighlight(event)" style="width: 740px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vi 编辑器是所有Unix及Linux系统下标准的编辑器，它的强大不逊色于任何最新的文本编辑器，这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix及Linux系统的任何版本，vi编辑器是完全相同的，因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑 器，学会它后，您将在Linux的世界里畅行无阻。 &lt;div&gt;&lt;strong&gt;1、vi的基本概念 &lt;br /&gt;&lt;/strong&gt;　　基本上vi可以分为三种状态，分别是命令模式（command mode）、插入模式（Insert mode）和底行模式（last line mode），各模式的功能区分如下： &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) 命令行模式command mode） &lt;/div&gt; &lt;div&gt;　　控制屏幕光标的移动，字符、字或行的删除，移动复制某区段及进入Insert mode下，或者到 last line mode。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) 插入模式（Insert mode） &lt;/div&gt; &lt;div&gt;　　只有在Insert mode下，才可以做文字输入，按「ESC」键可回到命令行模式。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) 底行模式（last line mode） &lt;/div&gt; &lt;div&gt;　　将文件保存或退出vi，也可以设置编辑环境，如寻找字符串、列出行号&amp;#8230;&amp;#8230;等。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不过一般我们在使用时把vi简化成两个模式，就是将底行模式（last line mode）也算入命令行模式command mode）。 &lt;/div&gt; &lt;div&gt;&lt;strong&gt;2、vi的基本操作&amp;nbsp;&lt;br /&gt;&lt;/strong&gt;a) 进入vi &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; 　在系统提示符号输入vi及文件名称后，就进入vi全屏幕编辑画面：&lt;/div&gt; &lt;div&gt;　　　$ vi myfile &lt;br /&gt;　　不过有一点要特别注意，就是您进入vi之后，是处于「命令行模式（command  mode）」，您要切换到「插入模式（Insert  mode）」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标，结果电脑一直哔哔叫，把自己气个半死，所以进入vi后，先不要乱动，转换到 「插入模式（Insert mode）」再说吧！ &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;b) 切换至插入模式（Insert mode）编辑文件 &lt;/div&gt; &lt;div&gt;　　在「命令行模式（command mode）」下按一下字母「i」就可以进入「插入模式（Insert mode）」，这时候你就可以开始输入文字了。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;c) Insert 的切换 &lt;/div&gt; &lt;div&gt;　　您目前处于「插入模式（Insert mode）」，您就只能一直输入文字，如果您发现输错了字！想用光标键往回移动，将该字删除，就要先按一下「ESC」键转到「命令行模式（command mode）」再删除文字。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;d) 退出vi及保存文件 &lt;/div&gt; &lt;div&gt;　　在「命令行模式（command mode）」下，按一下「：」冒号键进入「Last line mode」，例如： &lt;/div&gt; &lt;div&gt;: w filename （输入 「w filename」将文章以指定的文件名filename保存） &lt;/div&gt; &lt;div&gt;: wq (输入「wq」，存盘并退出vi) &lt;/div&gt; &lt;div&gt;: q! (输入q!， 不存盘强制退出vi) &lt;/div&gt; &lt;div&gt;&lt;br /&gt;3、命令行模式（command mode）功能键 &lt;br /&gt;1）. 插入模式 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 按「i」切换进入插入模式「insert mode」，按"i"进入插入模式后是从光标当前位置开始输入文件； &lt;/div&gt; &lt;div&gt;　　按「a」进入插入模式后，是从目前光标所在位置的下一个位置开始输入文字； &lt;/div&gt; &lt;div&gt;　　按「o」进入插入模式后，是插入新的一行，从行首开始输入文字。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;2）. 从插入模式切换为命令行模式 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 按「ESC」键。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;3）. 移动光标 &lt;/div&gt; &lt;div&gt;　　vi可以直接用键盘上的光标来上下左右移动，但正规的vi是用小写英文字母「h」、「j」、「k」、「l」，分别控制光标左、下、上、右移一格。 &lt;/div&gt; &lt;div&gt;　　按「ctrl」+「b」：屏幕往"后"移动一页。 &lt;/div&gt; &lt;div&gt;　　按「ctrl」+「f」：屏幕往"前"移动一页。 &lt;/div&gt; &lt;div&gt;　　按「ctrl」+「u」：屏幕往"后"移动半页。 &lt;/div&gt; &lt;div&gt;　　按「ctrl」+「d」：屏幕往"前"移动半页。 &lt;/div&gt; &lt;div&gt;　　按数字「0」：移到文章的开头。 &lt;/div&gt; &lt;div&gt;　　按「G」：移动到文章的最后。 &lt;/div&gt; &lt;div&gt;　　按「$」：移动到光标所在行的"行尾"。 &lt;/div&gt; &lt;div&gt;　　按「^」：移动到光标所在行的"行首" &lt;/div&gt; &lt;div&gt;　　按「w」：光标跳到下个字的开头 &lt;/div&gt; &lt;div&gt;　　按「e」：光标跳到下个字的字尾 &lt;/div&gt; &lt;div&gt;　　按「b」：光标回到上个字的开头 &lt;/div&gt; &lt;div&gt;　　按「#l」：光标移到该行的第#个位置，如：5l,56l。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;4）. 删除文字 &lt;/div&gt; &lt;div&gt;　　「x」：每按一次，删除光标所在位置的"后面"一个字符。 &lt;/div&gt; &lt;div&gt;　　「#x」：例如，「6x」表示删除光标所在位置的"后面"6个字符。 &lt;/div&gt; &lt;div&gt;　　「X」：大写的X，每按一次，删除光标所在位置的"前面"一个字符。 &lt;/div&gt; &lt;div&gt;　　「#X」：例如，「20X」表示删除光标所在位置的"前面"20个字符。 &lt;/div&gt; &lt;div&gt;　　「dd」：删除光标所在行。 &lt;/div&gt; &lt;div&gt;　　「#dd」：从光标所在行开始删除#行 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;5）. 复制 &lt;/div&gt; &lt;div&gt;　　「yw」：将光标所在之处到字尾的字符复制到缓冲区中。 &lt;/div&gt; &lt;div&gt;　　「#yw」：复制#个字到缓冲区 &lt;/div&gt; &lt;div&gt;　　「yy」：复制光标所在行到缓冲区。 &lt;/div&gt; &lt;div&gt;　　「#yy」：例如，「6yy」表示拷贝从光标所在的该行"往下数"6行文字。 &lt;/div&gt; &lt;div&gt;　　「p」：将缓冲区内的字符贴到光标所在位置。注意：所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;6）. 替换 &lt;/div&gt; &lt;div&gt;　　「r」：替换光标所在处的字符。 &lt;/div&gt; &lt;div&gt;　　「R」：替换光标所到之处的字符，直到按下「ESC」键为止。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;7）. 回复上一次操作 &lt;/div&gt; &lt;div&gt;　　「u」：如果您误执行一个命令，可以马上按下「u」，回到上一个操作。按多次"u"可以执行多次回复。 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;8）. 更改 &lt;/div&gt; &lt;div&gt;　　「cw」：更改光标所在处的字到字尾处 &lt;/div&gt; &lt;div&gt;　　「c#w」：例如，「c3w」表示更改3个字 &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;9）. 跳至指定的行 &lt;/div&gt; &lt;div&gt;　　「ctrl」+「g」列出光标所在行的行号。 &lt;/div&gt; &lt;div&gt;　　「#G」：例如，「15G」，表示移动光标至文章的第15行行首。 &lt;/div&gt; &lt;p&gt;4、Last line mode下命令简介 &lt;br /&gt;　　在使用「last line mode」之前，请记住先按「ESC」键确定您已经处于「command mode」下后，再按「：」冒号即可进入「last line mode」。 &lt;/p&gt; &lt;p&gt;A) 列出行号 &lt;/p&gt; &lt;p&gt;「set nu」：输入「set nu」后，会在文件中的每一行前面列出行号。 &lt;/p&gt; &lt;p&gt;B) 跳到文件中的某一行 &lt;/p&gt; &lt;p&gt;「#」：「#」号表示一个数字，在冒号后输入一个数字，再按回车键就会跳到该行了，如输入数字15，再回车，就会跳到文章的第15行。 &lt;/p&gt; &lt;p&gt;C) 查找字符 &lt;/p&gt; &lt;p&gt;「/关键字」：先按「/」键，再输入您想寻找的字符，如果第一次找的关键字不是您想要的，可以一直按「n」会往后寻找到您要的关键字为止。 &lt;/p&gt; &lt;p&gt;「?关键字」：先按「?」键，再输入您想寻找的字符，如果第一次找的关键字不是您想要的，可以一直按「n」会往前寻找到您要的关键字为止。 &lt;/p&gt; &lt;p&gt;D) 保存文件 &lt;/p&gt; &lt;p&gt;「w」：在冒号输入字母「w」就可以将文件保存起来。 &lt;/p&gt; &lt;p&gt;E) 离开vi &lt;/p&gt; &lt;p&gt;「q」：按「q」就是退出，如果无法离开vi，可以在「q」后跟一个「!」强制离开vi。 &lt;/p&gt; &lt;p&gt;「qw」：一般建议离开时，搭配「w」一起使用，这样在退出的时候还可以保存文件。 &lt;/p&gt; &lt;p&gt;5、vi命令列表 &lt;br /&gt;1、下表列出命令模式下的一些键的功能： &lt;/p&gt; &lt;p&gt;h &lt;br /&gt;左移光标一个字符 &lt;/p&gt; &lt;p&gt;l &lt;br /&gt;右移光标一个字符 &lt;/p&gt; &lt;p&gt;k &lt;br /&gt;光标上移一行 &lt;/p&gt; &lt;p&gt;j &lt;br /&gt;光标下移一行 &lt;/p&gt; &lt;p&gt;^ &lt;br /&gt;光标移动至行首 &lt;/p&gt; &lt;p&gt;0 &lt;br /&gt;数字"0"，光标移至文章的开头 &lt;/p&gt; &lt;p&gt;G &lt;br /&gt;光标移至文章的最后 &lt;/p&gt; &lt;p&gt;$ &lt;br /&gt;光标移动至行尾 &lt;/p&gt; &lt;p&gt;Ctrl+f &lt;br /&gt;向前翻屏 &lt;/p&gt; &lt;p&gt;Ctrl+b &lt;br /&gt;向后翻屏 &lt;/p&gt; &lt;p&gt;Ctrl+d &lt;br /&gt;向前翻半屏 &lt;/p&gt; &lt;p&gt;Ctrl+u &lt;br /&gt;向后翻半屏 &lt;/p&gt; &lt;p&gt;i &lt;br /&gt;在光标位置前插入字符 &lt;/p&gt; &lt;p&gt;a &lt;br /&gt;在光标所在位置的后一个字符开始增加 &lt;/p&gt; &lt;p&gt;o &lt;br /&gt;插入新的一行，从行首开始输入 &lt;/p&gt; &lt;p&gt;ESC &lt;br /&gt;从输入状态退至命令状态 &lt;/p&gt; &lt;p&gt;x &lt;br /&gt;删除光标后面的字符 &lt;/p&gt; &lt;p&gt;#x &lt;br /&gt;删除光标后的＃个字符 &lt;/p&gt; &lt;p&gt;X &lt;br /&gt;(大写X)，删除光标前面的字符 &lt;/p&gt; &lt;p&gt;#X &lt;br /&gt;删除光标前面的#个字符 &lt;/p&gt; &lt;p&gt;dd &lt;br /&gt;删除光标所在的行 &lt;/p&gt; &lt;p&gt;#dd &lt;br /&gt;删除从光标所在行数的#行 &lt;/p&gt; &lt;p&gt;yw &lt;br /&gt;复制光标所在位置的一个字 &lt;/p&gt; &lt;p&gt;#yw &lt;br /&gt;复制光标所在位置的#个字 &lt;/p&gt; &lt;p&gt;yy &lt;br /&gt;复制光标所在位置的一行 &lt;/p&gt; &lt;p&gt;#yy &lt;br /&gt;复制从光标所在行数的#行 &lt;/p&gt; &lt;p&gt;p &lt;br /&gt;粘贴 &lt;/p&gt; &lt;p&gt;u &lt;br /&gt;取消操作 &lt;/p&gt; &lt;p&gt;cw &lt;br /&gt;更改光标所在位置的一个字 &lt;/p&gt; &lt;p&gt;#cw &lt;br /&gt;更改光标所在位置的#个字 &lt;/p&gt; &lt;p&gt;&lt;br /&gt;2、下表列出行命令模式下的一些指令 &lt;br /&gt;w filename &lt;br /&gt;储存正在编辑的文件为filename &lt;/p&gt; &lt;p&gt;wq filename &lt;br /&gt;储存正在编辑的文件为filename，并退出vi &lt;/p&gt; &lt;p&gt;q! &lt;br /&gt;放弃所有修改，退出vi &lt;/p&gt; &lt;p&gt;set nu &lt;br /&gt;显示行号 &lt;/p&gt; &lt;p&gt;/或? &lt;br /&gt;查找，在/后输入要查找的内容 &lt;/p&gt; &lt;p&gt;n &lt;br /&gt;与/或?一起使用，如果查找的内容不是想要找的关键字，按n或向后（与/联用）或向前（与?联用）继续查找，直到找到为止。 &lt;/p&gt; &lt;p&gt;&lt;br /&gt;对于第一次用vi，有几点注意要提醒一下： &lt;br /&gt;1、用vi打开文件后，是处于「命令行模式（command  mode）」，您要切换到「插入模式（Insert mode）」才能够输入文字。切换方法：在「命令行模式（command  mode）」下按一下字母「i」就可以进入「插入模式（Insert mode）」，这时候你就可以开始输入文字了。 &lt;br /&gt;2、编辑好后，需从插入模式切换为命令行模式才能对文件进行保存，切换方法：按「ESC」键。 &lt;br /&gt;3、保存并退出文件：在命令模式下输入:wq即可！（别忘了wq前面的:）&amp;nbsp; &lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1814834.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/09/01/1814834.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803638.html</id><title type="text">QT设计之编译</title><summary type="text">我的程序需要在手持终端上运行，以下操作过程是以手持终端为基础的。 source /mc2005/qt/set-armprogen -o test.protmake -o Makefile test.promake　　如果没有错误出现，会在工作目录下生成test可执行文件，编译成功。</summary><published>2010-08-19T08:17:00Z</published><updated>2010-08-19T08:17:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803638.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803638.html"/><content type="html">&lt;p&gt;我的程序需要在手持终端上运行，以下操作过程是以手持终端为基础的。 &lt;/p&gt;&lt;ol&gt;&lt;li&gt;source /mc2005/qt/set-arm&lt;/li&gt;&lt;li&gt;progen -o test.pro&lt;/li&gt;&lt;li&gt;tmake -o Makefile test.pro&lt;/li&gt;&lt;li&gt;make&lt;/li&gt;&lt;/ol&gt;　　如果没有错误出现，会在工作目录下生成test可执行文件，编译成功。&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1803638.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803638.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803632.html</id><title type="text">QT设计之Designer</title><summary type="text">Desinger是linux下的QT界面设计工具，在命令行下直接输入designer即可进行界面的设计工作。　　Desinger保存的文件类型是ui，可以使用命令将*.ui文件转换成*.h文件和*.cpp文件。 　　uic &amp;#8211;o test.h test.ui　　uic &amp;#8211;o test.cpp &amp;#8211;i test.h test.ui　　之后，再加入main.cpp，包...</summary><published>2010-08-19T08:08:00Z</published><updated>2010-08-19T08:08:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803632.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803632.html"/><content type="html">&lt;p&gt;Desinger是linux下的QT界面设计工具，在命令行下直接输入designer即可进行界面的设计工作。&lt;/p&gt;&lt;p&gt;Desinger保存的文件类型是ui，可以使用命令将*.ui文件转换成*.h文件和*.cpp文件。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;uic &amp;#8211;o test.h test.ui&lt;br /&gt;　　uic &amp;#8211;o test.cpp &amp;#8211;i test.h test.ui&lt;/p&gt;&lt;p&gt;之后，再加入main.cpp，包含"test.h"文件，加入自己需要的代码，OK。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;再告诉大家一个关于QT(API)的查询网址：http://doc.trolltech.com/3.3/index.html。 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1803632.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/08/19/1803632.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/08/16/1800533.html</id><title type="text">H3C交换机配置命令大全</title><summary type="text">1、system-view 进入系统视图模式 2、sysname 为设备命名 3、display current-configuration 当前配置情况 4、 language-mode Chinese|English 中英文切换 5、interface Ethernet 1/0/1 进入以太网端口视图 6、 port link-type Access|Trunk|Hybrid 设置端口访问模式...</summary><published>2010-08-16T03:15:00Z</published><updated>2010-08-16T03:15:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/08/16/1800533.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/08/16/1800533.html"/><content type="html">1、system-view 进入系统视图模式  &lt;br /&gt; &lt;br /&gt;2、sysname 为设备命名  &lt;br /&gt; &lt;br /&gt;3、display current-configuration 当前配置情况  &lt;br /&gt; &lt;br /&gt;4、 language-mode Chinese|English 中英文切换  &lt;br /&gt; &lt;br /&gt;5、interface Ethernet 1/0/1 进入以太网端口视图  &lt;br /&gt; &lt;br /&gt;6、 port link-type Access|Trunk|Hybrid 设置端口访问模式  &lt;br /&gt; &lt;br /&gt;7、 undo shutdown 打开以太网端口  &lt;br /&gt; &lt;br /&gt;8、 shutdown 关闭以太网端口  &lt;br /&gt; &lt;br /&gt;9、 quit 退出当前视图模式  &lt;br /&gt; &lt;br /&gt;10、 vlan 10 创建VLAN 10并进入VLAN 10的视图模式  &lt;br /&gt; &lt;br /&gt;11、 port access vlan 10 在端口模式下将当前端口加入到vlan 10中  &lt;br /&gt; &lt;br /&gt;12、port E1/0/2 to E1/0/5 在VLAN模式下将指定端口加入到当前vlan中  &lt;br /&gt; &lt;br /&gt;13、port trunk permit vlan all 允许所有的vlan通过  &lt;br /&gt; &lt;br /&gt;H3C路由器  &lt;br /&gt; &lt;br /&gt;1、system-view 进入系统视图模式  &lt;br /&gt; &lt;br /&gt;2、sysname R1 为设备命名为R1  &lt;br /&gt; &lt;br /&gt;3、display ip routing-table 显示当前路由表  &lt;br /&gt; &lt;br /&gt;4、 language-mode Chinese|English 中英文切换  &lt;br /&gt; &lt;br /&gt;5、interface Ethernet 0/0 进入以太网端口视图  &lt;br /&gt; &lt;br /&gt;6、 ip address 192.168.1.1 255.255.255.0 配置IP地址和子网掩码  &lt;br /&gt; &lt;br /&gt;7、 undo shutdown 打开以太网端口  &lt;br /&gt; &lt;br /&gt;8、 shutdown 关闭以太网端口  &lt;br /&gt; &lt;br /&gt;9、 quit 退出当前视图模式  &lt;br /&gt; &lt;br /&gt;10、 ip route-static 192.168.2.0 255.255.255.0 192.168.12.2 description To.R2 配置静态路由  &lt;br /&gt; &lt;br /&gt;11、 ip route-static 0.0.0.0 0.0.0.0 192.168.12.2 description To.R2 配置默认的路由  &lt;br /&gt; &lt;br /&gt;H3C S3100 Switch  &lt;br /&gt; &lt;br /&gt;H3C S3600 Switch  &lt;br /&gt; &lt;br /&gt;H3C MSR 20-20 Router  &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;1、调整超级终端的显示字号；  &lt;br /&gt; &lt;br /&gt;2、捕获超级终端操作命令行，以备日后查对；  &lt;br /&gt; &lt;br /&gt;3、 language-mode Chinese|English 中英文切换；  &lt;br /&gt; &lt;br /&gt;4、复制命令到超级终端命令行， 粘贴到主机；  &lt;br /&gt; &lt;br /&gt;5、交换机清除配置 :&amp;lt;H3C&amp;gt;reset save ；&amp;lt;H3C&amp;gt;reboot ；  &lt;br /&gt; &lt;br /&gt;6、路由器、交换机配置时不能掉电，连通测试前一定要  &lt;br /&gt; &lt;br /&gt;检查网络的连通性，不要犯最低级的错误。  &lt;br /&gt; &lt;br /&gt;7、192.168.1.1/24 等同 192.168.1.1 255.255.255.0；在配置交换机和路由器时， 192.168.1.1 255.255.255.0 可以写成：  &lt;br /&gt; &lt;br /&gt;192.168.1.1 24  &lt;br /&gt; &lt;br /&gt;8、设备命名规则：地名-设备名-系列号例：PingGu-R-S3600  &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;H3C华为交换机端口绑定基本配置2008-01-22 13:40  &lt;br /&gt; &lt;br /&gt;1，端口 MAC  &lt;br /&gt; &lt;br /&gt;a)AM命令  &lt;br /&gt; &lt;br /&gt;使用特殊的AM User-bind命令，来完成MAC地址与端口之间的绑定。例如：  &lt;br /&gt; &lt;br /&gt;[SwitchA]am user-bind mac-address 00e0-fc22-f8d3 interface Ethernet 0/1  &lt;br /&gt; &lt;br /&gt;配置说明：由于使用了端口参数，则会以端口为参照物，即此时端口E0/1只允许PC1上网，而使用其他未绑定的MAC地址的PC机则无法上网。但  &lt;br /&gt; &lt;br /&gt;是PC1使用该MAC地址可以在其他端口上网。  &lt;br /&gt; &lt;br /&gt;b)mac-address命令  &lt;br /&gt; &lt;br /&gt;使用mac-address static命令，来完成MAC地址与端口之间的绑定。例如：  &lt;br /&gt; &lt;br /&gt;[SwitchA]mac-address static 00e0-fc22-f8d3 interface Ethernet 0/1 vlan 1  &lt;br /&gt; &lt;br /&gt;[SwitchA]mac-address max-mac-count 0  &lt;br /&gt; &lt;br /&gt;配置说明：由于使用了端口学习功能，故静态绑定mac后，需再设置该端口mac学习数为0，使其他PC接入此端口后其mac地址无法被学习。  &lt;br /&gt; &lt;br /&gt;2，IP MAC  &lt;br /&gt; &lt;br /&gt;a)AM命令  &lt;br /&gt; &lt;br /&gt;使用特殊的AM User-bind命令，来完成IP地址与MAC地址之间的绑定。例如：  &lt;br /&gt; &lt;br /&gt;[SwitchA]am user-bind ip-address 10.1.1.2 mac-address 00e0-fc22-f8d3  &lt;br /&gt; &lt;br /&gt;配置说明：以上配置完成对PC机的IP地址和MAC地址的全局绑定，即与绑定的IP地址或者MAC地址不同的PC机，在任何端口都无法上网。  &lt;br /&gt; &lt;br /&gt;支持型号：S3026E/EF/C/G/T、S3026C-PWR、E026/E026T、S3050C、E050、S3526E/C/EF、S5012T/G、S5024G  &lt;br /&gt; &lt;br /&gt;b)arp命令  &lt;br /&gt; &lt;br /&gt;使用特殊的arp static命令，来完成IP地址与MAC地址之间的绑定。例如：  &lt;br /&gt; &lt;br /&gt;[SwitchA]arp static 10.1.1.2 00e0-fc22-f8d3  &lt;br /&gt; &lt;br /&gt;配置说明：以上配置完成对PC机的IP地址和MAC地址的全局绑定。  &lt;br /&gt; &lt;br /&gt;3，端口 IP MAC  &lt;br /&gt; &lt;br /&gt;使用特殊的AM User-bind命令，来完成IP、MAC地址与端口之间的绑定。例如：  &lt;br /&gt; &lt;br /&gt;[SwitchA]am user-bind ip-address 10.1.1.2 mac-address 00e0-fc22-f8d3 interface Ethernet 0/1  &lt;br /&gt; &lt;br /&gt;配置说明：可以完成将PC1的IP地址、MAC地址与端口E0/1之间的绑定功能。由于使用了端口参数，则会以端口为参照物，即此时端口E0/1只允  &lt;br /&gt; &lt;br /&gt;许 PC1上网，而使用其他未绑定的IP地址、MAC地址的PC机则无法上网。但是PC1使用该IP地址和MAC地址可以在其他端口上网。  &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;[S2016-E1-Ethernet0/1]mac-address max-mac-count 0;  &lt;br /&gt; &lt;br /&gt;进入到端口，用命令mac max-mac-count 0(端口mac学习数设为0)  &lt;br /&gt; &lt;br /&gt;[S2016-E1]mac static 0000-9999-8888 int e0/1 vlan 10;  &lt;br /&gt; &lt;br /&gt;将0000-9999-8888绑定到e0/1端口上，此时只有绑定mac的pc可以通过此口上网,同时E0/1属于vlan 10  &lt;br /&gt; &lt;br /&gt;就这样，ok了，不过上面两个命令顺序不能弄反，除非端口下没有接pc  &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;dis vlan 显示vlan  &lt;br /&gt; &lt;br /&gt;name text 指定当前vlan的名称  &lt;br /&gt; &lt;br /&gt;undo name 取消  &lt;br /&gt; &lt;br /&gt;[h3c] vlan 2  &lt;br /&gt; &lt;br /&gt;[h3c-vlan2]name test vlan  &lt;br /&gt; &lt;br /&gt;dis users 显示用户  &lt;br /&gt; &lt;br /&gt;dis startup 显示启动配置文件的信息  &lt;br /&gt; &lt;br /&gt;dis user-interface 显示用户界面的相关信息  &lt;br /&gt; &lt;br /&gt;dis web users 显示web用户的相关信息。  &lt;br /&gt; &lt;br /&gt;header login 配置登陆验证是显示信息  &lt;br /&gt; &lt;br /&gt;header shell  &lt;br /&gt; &lt;br /&gt;undo header  &lt;br /&gt; &lt;br /&gt;lock 锁住当前用户界面  &lt;br /&gt; &lt;br /&gt;acl 访问控制列表 acl number inbound/outbound  &lt;br /&gt; &lt;br /&gt;[h3c]user-interface vty 0 4  &lt;br /&gt; &lt;br /&gt;[h3c-vty0-4] acl 2000 inbound  &lt;br /&gt; &lt;br /&gt;shutdown:关闭vlan接口  &lt;br /&gt; &lt;br /&gt;undo shutdown 打开vlan接口  &lt;br /&gt; &lt;br /&gt;关闭vlan1 接口  &lt;br /&gt; &lt;br /&gt;[h3c] interface vlan-interface 1  &lt;br /&gt; &lt;br /&gt;[h3c-vlan-interface] shutdown  &lt;br /&gt; &lt;br /&gt;vlan vlan-id 定义vlan  &lt;br /&gt; &lt;br /&gt;undo valn vlan-id  &lt;br /&gt; &lt;br /&gt;display ip routing-table  &lt;br /&gt; &lt;br /&gt;display ip routing-table protocol static  &lt;br /&gt; &lt;br /&gt;display ip routing-table statistics  &lt;br /&gt; &lt;br /&gt;display ip routing-table verbose 查看路由表的全部详细信息  &lt;br /&gt; &lt;br /&gt;interface vlan-interface vlan-id 进入valn  &lt;br /&gt; &lt;br /&gt;management-vlan vlan-id 定义管理vlan号  &lt;br /&gt; &lt;br /&gt;reset ip routing-table statistics protocol all 清除所有路由协议的路由信息.  &lt;br /&gt; &lt;br /&gt;display garp statistics interface GigabitEthernet 1/0/1 显示以太网端口上的garp统计信息  &lt;br /&gt; &lt;br /&gt;display voice vlan status 查看语音vlan状态  &lt;br /&gt; &lt;br /&gt;[h3c-GigabitEthernet1/0/1] broadcast-suppression 20 允许接受的最大广播流量为该端口传输能力的20%.超出部分丢弃.  &lt;br /&gt; &lt;br /&gt;[h3c-GigabitEthernet1/0/1] broadcast-suppression pps 1000 每秒允许接受的最大广播数据包为1000传输能力的20%.超出部分丢弃.  &lt;br /&gt; &lt;br /&gt;display interface GigabitEthernet1/0/1 查看端口信息  &lt;br /&gt; &lt;br /&gt;display brief interface GigabitEthernet1/0/1 查看端口简要配置信息  &lt;br /&gt; &lt;br /&gt;display loopback-detection 用来测试环路测试是否开启  &lt;br /&gt; &lt;br /&gt;display transceiver-information interface GigabitEthernet1/0/50 显示光口相关信息  &lt;br /&gt; &lt;br /&gt;duplex auto/full/half  &lt;br /&gt; &lt;br /&gt;[h3c]interface GigabitEthernet1/0/1  &lt;br /&gt; &lt;br /&gt;[h3c-GigabitEthernet1/0/1]duplux auto 设置端口双工属性为自协商  &lt;br /&gt; &lt;br /&gt;port link-type access/hybrid/trunk 默认为access  &lt;br /&gt; &lt;br /&gt;port trunk permit vlan all 将trunk扣加入所有vlan中  &lt;br /&gt; &lt;br /&gt;reset counters interface GigabitEthernet1/0/1 清楚端口的统计信息  &lt;br /&gt; &lt;br /&gt;speed auto 10/100/1000  &lt;br /&gt; &lt;br /&gt;display port-security 查看端口安全配置信息  &lt;br /&gt; &lt;br /&gt;am user-bind mac-addr 00e0-fc00-5101 ip-addr 10.153.1.2 interface GigabitEthernet1/0/1 端口ip绑定  &lt;br /&gt; &lt;br /&gt;display arp 显示arp  &lt;br /&gt; &lt;br /&gt;display am user-bind 显示端口绑定的配置信息  &lt;br /&gt; &lt;br /&gt;display mac-address 显示交换机学习到的mac地址  &lt;br /&gt; &lt;br /&gt;display stp 显示生成树状态与统计信息  &lt;br /&gt; &lt;br /&gt;[h3c-GigabitEthernet1/0/1]stp instance 0 cost 200 设置生成树实例0上路径开销为200  &lt;br /&gt; &lt;br /&gt;stp cost 设置当前端口在指定生成树实例上路径开销。instance-id 为0-16 0表cist 取值范围1-200000  &lt;br /&gt; &lt;br /&gt;&amp;lt;h3c&amp;gt; display system-guard ip-record 显示防攻击记录信息.  &lt;br /&gt; &lt;br /&gt;system-guard enable 启用系统防攻击功能  &lt;br /&gt; &lt;br /&gt;display icmp statistics icmp流量统计  &lt;br /&gt; &lt;br /&gt;display ip socket  &lt;br /&gt; &lt;br /&gt;display ip statistics  &lt;br /&gt; &lt;br /&gt;display acl all  &lt;br /&gt; &lt;br /&gt;acl number acl-number match-order auto/config  &lt;br /&gt; &lt;br /&gt;acl-number (2000-2999 是基本acl 3000-3999是高级acl为管理员预留的编号)  &lt;br /&gt; &lt;br /&gt;rule deny/permit protocal  &lt;br /&gt; &lt;br /&gt;访问控制  &lt;br /&gt; &lt;br /&gt;[h3c] acl number 3000  &lt;br /&gt; &lt;br /&gt;[h3c-acl-adv-3000]rule permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.255.255 destination-port eq 80 (  &lt;br /&gt; &lt;br /&gt;定义高级acl 3000,允许129.0.0/16网段的主机向202.38.160/24网段主机访问端口80)  &lt;br /&gt; &lt;br /&gt;rule permit source 211.100.255.0 0.255.255.255  &lt;br /&gt; &lt;br /&gt;rule deny cos 3 souce 00de-bbef-adse ffff-ffff-fff dest 0011-4301-9912 ffff-ffff-ffff  &lt;br /&gt; &lt;br /&gt;(禁止mac地址00de-bbef-adse发送到mac地址0011-4301-9912且802.1p优先级为3的报文通过)  &lt;br /&gt; &lt;br /&gt;display qos-interface GigabitEthernet1/0/1 traffic-limit 查看端口上流量  &lt;br /&gt; &lt;br /&gt;端口速率限制  &lt;br /&gt; &lt;br /&gt;line-rate inbound/outbound target-rate  &lt;br /&gt; &lt;br /&gt;inbound:对端口接收报文进行速率限制  &lt;br /&gt; &lt;br /&gt;outbound: 对端口发送报文进行速率限制  &lt;br /&gt; &lt;br /&gt;target-rate 对报文限制速率,单位kbps 千兆口 inbound范围1-1000000 outbound范围20-1000000  &lt;br /&gt; &lt;br /&gt;undo line-rate取消限速.  &lt;br /&gt; &lt;br /&gt;[h3c]interface GigabitEthernet1/0/1  &lt;br /&gt; &lt;br /&gt;[h3c-GigabitEthernet1/0/1]line-rate outbound 128 限制出去速率为128kbps  &lt;br /&gt; &lt;br /&gt;display arp | include 77  &lt;br /&gt; &lt;br /&gt;display arp count 计算arp表的记录数  &lt;br /&gt; &lt;br /&gt;display ndp 显示交换机端口的详细配置信息。  &lt;br /&gt; &lt;br /&gt;display ntdp device-list verbose 收集设备详细信息  &lt;br /&gt; &lt;br /&gt;display lock  &lt;br /&gt; &lt;br /&gt;display users  &lt;br /&gt; &lt;br /&gt;display cpu  &lt;br /&gt; &lt;br /&gt;display memory  &lt;br /&gt; &lt;br /&gt;display fan  &lt;br /&gt; &lt;br /&gt;display device  &lt;br /&gt; &lt;br /&gt;display power&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1800533.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/08/16/1800533.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/07/30/1788541.html</id><title type="text">sqlite3小试牛刀</title><summary type="text">配置好sqlite3环境后，就可以进行sqlite3的开发了。　　命令行直接输入sqlite3即可进入sqlite3的开发环境了，输入".help"可以查看其他的命令，如果输入的SQL语句，需以";"结束。创建数据库文件　　#sqlite3 database_name创建表　　　　　　sqlite&amp;gt;create table table_name;插入记录　　　　　sqlite&amp;gt;inse...</summary><published>2010-07-30T03:05:00Z</published><updated>2010-07-30T03:05:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/07/30/1788541.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/07/30/1788541.html"/><content type="html">&lt;p&gt;配置好sqlite3环境后，就可以进行sqlite3的开发了。&lt;/p&gt;&lt;p&gt;命令行直接输入sqlite3即可进入sqlite3的开发环境了，输入".help"可以查看其他的命令，如果输入的SQL语句，需以";"结束。&lt;/p&gt;&lt;ol&gt;&lt;li&gt;创建数据库文件　　#sqlite3 database_name&lt;/li&gt;&lt;li&gt;创建表　　　　　　sqlite&amp;gt;create table table_name;&lt;/li&gt;&lt;li&gt;插入记录　　　　　sqlite&amp;gt;insert into table_name values(......,.....);&lt;/li&gt;&lt;li&gt;查询　　　　　　　sqlite&amp;gt;select * from table_name;&lt;/li&gt;&lt;li&gt;导出数据　　　　　#sqlite3 database_name ".dump" &amp;gt; output.sql&lt;/li&gt;&lt;li&gt;导入数据　　　　　#sqlite3 database_name &amp;lt; output.sql&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2010.7.30&amp;nbsp;&lt;/p&gt;&lt;p&gt;goldenocean &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1788541.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/07/30/1788541.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/07/28/1787047.html</id><title type="text">sqlite3环境配置</title><summary type="text">sqlite3是包含了数据库引擎的一个软件库，是世界上应用最广的SQL数据库引擎。　　其他有关sqlite3的信息，请登录官网：http://www.sqlite.org/index.html。　　那如何配置sqlite3的工作环境呢，经过半天的研究，结合工作所需的手持终端，操作步骤如下： 将sqlite3的头文件sqlite3.h复制到/mc2005/include目录下，将sqlite3的库文...</summary><published>2010-07-28T07:09:00Z</published><updated>2010-07-28T07:09:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/07/28/1787047.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/07/28/1787047.html"/><content type="html">&lt;p&gt;sqlite3是包含了数据库引擎的一个软件库，是世界上应用最广的SQL数据库引擎。&lt;/p&gt;&lt;p&gt;其他有关sqlite3的信息，请登录官网：http://www.sqlite.org/index.html。&lt;/p&gt;&lt;p&gt;那如何配置sqlite3的工作环境呢，经过半天的研究，结合工作所需的手持终端，操作步骤如下： &lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;将sqlite3的头文件sqlite3.h复制到/mc2005/include目录下，将sqlite3的库文件libgcc_s.so.1和libsqlite3.so复制到/mc2005/lib/.libs目录下，注：/mc2005/lib/.libs是隐藏目录，需在地址栏中输入目录名，才能进入。 &lt;/li&gt;&lt;li&gt;修改源代码目录下的Makefile文件，找到LIBS这行，修改为&amp;#8220;LIBS&amp;nbsp;&amp;nbsp; &amp;nbsp;=&amp;nbsp;&amp;nbsp; &amp;nbsp;$(SUBLIBS) -L/mc2005/lib/.libs -L$(QTDIR)/lib -lm -lts -ldl -ldriver -ltty2005 -lpthread -lsqlite3 -lqte&amp;#8221;，其中-lsqlite3是新插入的。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;好了，环境已经配置好了，可以make了，^_^！&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;2010.7.28&lt;/p&gt;&lt;p&gt;goldenocean &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1787047.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/07/28/1787047.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2010/07/06/1772055.html</id><title type="text">利用 AXIS开发Webservice(一) —— 如何发布自己的webservice（转）</title><summary type="text">利用AXIS开发Webservice(一) &amp;#8212;&amp;#8212; 如何发布自己的webservice 关键字: webservice axis wsdl 教程 因为工作关系需要从事Webservice的开发工作，公司的webserivce是由Apache的AXIS来实现的，以前对这个了解不算多，不过经 过几天的研究，特奉上小小的心得一篇。 先介绍下本人开发环境吧。 JDK 1.4.2+My...</summary><published>2010-07-06T05:13:00Z</published><updated>2010-07-06T05:13:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2010/07/06/1772055.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2010/07/06/1772055.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://chnic.javaeye.com/blog/127343"&gt;利用AXIS开发Webservice(一) &amp;#8212;&amp;#8212; 如何发布自己的webservice &lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
关键字: webservice axis wsdl 教程&#xD;
&lt;p&gt;因为工作关系需要从事Webservice的开发工作，公司的webserivce是由Apache的AXIS来实现的，以前对这个了解不算多，不过经 过几天的研究，特奉上小小的心得一篇。&lt;/p&gt;&#xD;
&lt;p&gt;先介绍下本人开发环境吧。 JDK 1.4.2&amp;nbsp;+&amp;nbsp;Myeclipse 6.0（实在经不起诱惑，尝尝鲜）&amp;nbsp;+ Tomcat 5.0.28 + AXIS 1.4。&amp;nbsp;AXIS 1.4包可以在&lt;span style="font-family: Arial; color: #606420;"&gt;&lt;a target="_blank" href="http://ws.apache.org/axis/"&gt;http://ws.apache.org/axis/&lt;/a&gt; &lt;/span&gt; 找到。&amp;nbsp;假设所有的环境你已经搭好，并且AXIS包也已经下好了。OK， Here we go~&lt;/p&gt;&#xD;
&lt;p&gt;解压axis-bin-1_4.zip这个包可以看到webapps目录，双击进入把里面的AXIS文件夹拷到 %TOMCAT_HOME%\webapps目录下，之后拷贝activation.jar、mail.jar、tools.jar 到%TOMCAT_HOME%\webapps\axis\WEB-INF\lib目录下。启动tomcat，访问&lt;a target="_blank" href="http://localhost:8080/axis/happyaxis.jsp"&gt;http://localhost:8080/axis/happyaxis.jsp&lt;/a&gt; &amp;nbsp;如果访问成功，恭喜你！基本的配置你已经做完了。 &lt;/p&gt;&#xD;
&lt;p&gt;PS：此处的%TOMCAT_HOME%指的是Tomcat的安装目录，至于那另外的三个jar包，J2EE 1.4库里就能找的到。&lt;/p&gt;&#xD;
&lt;p&gt;现在来说一下最关键的Webservice的发布。AXIS提供了两种发布方式，一种是即时发布（Instant Deployment），另外一种是定制发布（Custom Deployment）。即时发布提供了一种非常简单的webservice的发布方式，但是其中限制太多，因此在实际的开发中定制发布才是首选。这里也 将会以定制发布为重点来介绍。 &lt;/p&gt;&#xD;
&lt;p dir="ltr" style="margin-right: 0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size: small;"&gt;&amp;nbsp; 1.即时发布 JWS (Java Web Service) Files - Instant Deployment&lt;/span&gt; &lt;/strong&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;即时发布提供了一种非常简单发布方式，发布者只要有Java源代码（也就是.java文件），然后把其后缀名改成jws（也就是 java web service的缩写）拷贝到%TOMCAT_HOME%\webapps\axis目录下即完成了所有的发布工作。AXIS的编译引擎会处理接下来的所 有事情。下面是一段示例代码：&lt;/p&gt;&#xD;
&lt;div&gt;java 代码&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;public &amp;nbsp; class &amp;nbsp;HelloAXIS&amp;nbsp;{ &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;nbsp;String&amp;nbsp;Hello(String&amp;nbsp;name){ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;nbsp; "AXIS&amp;nbsp;say&amp;nbsp;hello&amp;nbsp;to&amp;nbsp;" &amp;nbsp;+&amp;nbsp;name; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;}&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;把&amp;nbsp;HelloAXIS.java 文件改成 HelloAXIS.jws 然后拷贝到%TOMCAT_HOME%\webapps\axis目录下，启动Tomcat之后访问 &lt;a target="_blank" href="http://localhost:8080/axis/HelloAXIS.jws"&gt;http://localhost:8080/axis/HelloAXIS.jws&lt;/a&gt; &amp;nbsp;如果能看到 Click to see the WSDL这个超链接就说明已经发布成功了，点击进去就可以看到这个Webservice的WSDL描述文件。server端的发布已经完成了，接下来就是 编写Client端测试代码了。&lt;/p&gt;&#xD;
&lt;div&gt;java 代码&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;package &amp;nbsp;com.chnic.test; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;import &amp;nbsp;java.net.URL; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;import &amp;nbsp;javax.xml.namespace.QName; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;import &amp;nbsp;org.apache.axis.client.Call; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;import &amp;nbsp;org.apache.axis.client.Service; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;public &amp;nbsp; class &amp;nbsp;Test&amp;nbsp;{ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;nbsp; static &amp;nbsp; void &amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp; throws &amp;nbsp;Exception{ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;targetEendPoint&amp;nbsp;=&amp;nbsp; "http://localhost:8080/axis/HelloAXIS.jws" ; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Service&amp;nbsp;service&amp;nbsp;=&amp;nbsp; new &amp;nbsp;Service(); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Call&amp;nbsp;call&amp;nbsp;=&amp;nbsp;(Call)&amp;nbsp;service.createCall();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;call.setOperationName( new &amp;nbsp;QName(targetEendPoint,&amp;nbsp; "Hello" )); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;call.setTargetEndpointAddress( new &amp;nbsp;URL(targetEendPoint)); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;result&amp;nbsp;=&amp;nbsp;(String)&amp;nbsp;call.invoke( new &amp;nbsp;Object[]{ "Robert" }); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(result); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;测试代码很简单，如果熟悉java反射机制的朋友不用两分钟就能看明白。运行后客户端控制台出现 AXIS say hello Robert。测试成功。果然很简单吧。不过在这简单背后却是以牺牲灵活性为代价的。假如你现在手里只有.class 或者一个jar包，jws就不再能满足你的需求了，最要命的就是即时发布不支持带包的类，这点AXIS的用户手册上写的也很明白。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&amp;nbsp;&lt;em&gt;&lt;strong&gt;Important:&lt;/strong&gt; &lt;/em&gt; JWS web services are intended for simple web services. You cannot use packages in the pages, and as the code is compiled at run time you can not find out about errors until after deployment. Production quality web services should use Java classes with custom deployment.&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;2.定制发布 Custom Deployment - Introducing WSDD&lt;/strong&gt; &lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: x-small;"&gt;比起即时发布定制发布更加烦琐也更复杂，但是换来的却是更大的灵活性，因此在实际项目中定制发布还是不二的选择。定制发布需要你自己 编写一个WSDD（Web Service Deployment Descriptor）文件，这个东东类似与XML稍后会做出介绍。废话不多说，我们来看代码：&lt;/span&gt; &lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;java 代码&lt;/div&gt;&#xD;
&lt;div style="width: 99%; height: 336px;"&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;package &amp;nbsp;com.chnic.webservice; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;public &amp;nbsp; class &amp;nbsp;HelloWorld&amp;nbsp;{ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;nbsp;HelloWorld(){ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;nbsp;String&amp;nbsp;hello(String&amp;nbsp;str){ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;nbsp; "Hello&amp;nbsp;" &amp;nbsp;+&amp;nbsp;str; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;nbsp; int &amp;nbsp;add( int &amp;nbsp;a,&amp;nbsp; int &amp;nbsp;b){ &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;nbsp;a&amp;nbsp;+&amp;nbsp;b; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;} &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;一个带包的很简单的类，在eclipse下编译后按照包名拷到 %TOMCAT_HOME%&lt;span style="font-family: Arial;"&gt;\webapps\axis\WEB-INF\classes 目录下。以这个类为例，拷贝完之后这个HelloWorld.class的路径就是 &lt;span style="font-family: Arial;"&gt;%TOMCAT_HOME%\webapps\axis\WEB-INF\classes\com\chnic\webservice。 PS： 如果嫌这样太麻烦，可以另外建一个Java Web工程用myeclipse的发布工具发布到Tomcat之后，整体一次性拷贝到websericve的工程中。&lt;/span&gt; &lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;接下来就需要编写发布文件deploy.wsdd。到&lt;span style="font-family: Arial;"&gt;%TOMCAT_HOME%\webapps\axis\WEB-INF 目录下建立这个文件并在其中添加如下内容：&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div&gt;xml 代码&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;&amp;lt; deployment &amp;nbsp; xmlns = &lt;span&gt;&lt;a target="_blank" href="http://xml.apache.org/axis/wsdd/"&gt;http://xml.apache.org/axis/wsdd/&lt;/a&gt; &lt;/span&gt; &amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&lt;span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:java&lt;/span&gt; = "http://xml.apache.org/axis/wsdd/providers/java" &amp;gt; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; service &amp;nbsp; name = "HelloWorld" &amp;nbsp; provider = "java:RPC" &amp;gt; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; parameter &amp;nbsp; name = "className" &amp;nbsp; value = "com.chnic.webservice.HelloWorld" /&amp;gt; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; parameter &amp;nbsp; name = "allowedMethods" &amp;nbsp; value = "*" /&amp;gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;lt;&lt;span&gt;/ &lt;/span&gt; &lt;/span&gt; &lt;span&gt;service &amp;gt; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;span&gt;/ &lt;/span&gt; deployment&lt;/span&gt; &amp;gt; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;简单的介绍下各个节点的含义，"HelloWorld"当然是这个webservice的名字，后面紧跟的java：RPC指的是服务类型。这里一共有有 4种类型，分别是：RPC, Document, Wrapped 和 Message。有兴趣可以看下&amp;nbsp;&lt;span style="font-family: Arial;"&gt;org.apache.axis.providers这个包和子包下面的类的API文档。之后 的parameter节点第一个当然是指出具体的类，第二个从字面上也很好理解：允许调用的方法。这里的配置告诉引擎可以调用所有的public方法，当 然你也可以自己指定。&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;编写完配置发布文件之后，cmd打开windows的控制台，进入%TOMCAT_HOME%&lt;span style="font-family: Arial;"&gt;\webapps\axis\WEB-INF目录下键入如下命令&amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;java&amp;nbsp;-Djava.ext.dirs=lib&amp;nbsp;org.apache.axis.client.AdminClient&amp;nbsp;deploy.wsdd&amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;之后控制台返回&lt;span style="font-family: Arial;"&gt;Processing file deploy.wsdd 和 &lt;span style="font-family: Arial;"&gt;Done processing 这两段话即说明发布成功。（此时会在同级目录生成一个&lt;span style="font-family: Arial;"&gt;server- config.wsdd文件&lt;/span&gt; ）在这里的AdminClient是AXIS提供的一个客户端管理工具。至于java.ext.dirs的含义可以去了解一下classloader和 JVM类装载机制方面的知识，在这里就不多解释。&amp;nbsp;还有一点要注意的是在发布的时候Tomcat服务必须处于启动状态，否则就会抛出一堆无法连接的异常信 息。发布成功之后你可以通过访问 &lt;span style="font-family: Arial;"&gt;&lt;a target="_blank" href="http://localhost:8080/axis/servlet/AxisServlet"&gt;http://localhost:8080/axis/servlet/AxisServlet&lt;/a&gt; 来查看你所有的定制发布的服务。&lt;/span&gt; &lt;/span&gt; &lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div&gt;客户端测试代码&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;&lt;span&gt;String&amp;nbsp;targetEendPoint&amp;nbsp;=&amp;nbsp; "http://localhost:8080/axis/services/HelloWorld" ; &amp;nbsp;&amp;nbsp; &lt;/span&gt; &lt;/li&gt;&#xD;
     &lt;li&gt;Service&amp;nbsp;service&amp;nbsp;=&amp;nbsp; new &amp;nbsp;Service(); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;Call&amp;nbsp;call&amp;nbsp;=&amp;nbsp;(Call)&amp;nbsp;service.createCall(); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;call.setTargetEndpointAddress( new &amp;nbsp;URL(targetEendPoint)); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;call.setOperationName( new &amp;nbsp;QName(targetEendPoint,&amp;nbsp; "hello" ));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;String&amp;nbsp;result&amp;nbsp;=&amp;nbsp;(String)&amp;nbsp;call.invoke( new &amp;nbsp;Object[]{ "Robert" }); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;System.out.println(result); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;call.setOperationName( new &amp;nbsp;QName(targetEendPoint,&amp;nbsp; "add" )); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;Integer&amp;nbsp;res&amp;nbsp;=&amp;nbsp;(Integer)&amp;nbsp;call.invoke( new &amp;nbsp;Object[]{ new &amp;nbsp;Integer( 1 ),&amp;nbsp; new &amp;nbsp;Integer( 2 )}); &amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
     &lt;li&gt;System.out.println( "The&amp;nbsp;result&amp;nbsp;is:&amp;nbsp;" &amp;nbsp;+&amp;nbsp;res);&amp;nbsp;&amp;nbsp; &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;运行测试代码，控制台显示 &lt;span style="font-family: Arial;"&gt;Hello Robert 和 The result is: 3 这两句话，说明发布成功。仔细观察下发现其实除了那个targetEndpoint 之外，即时发布和定制发布的客户端调用代码基本上都是一样的。定制发布的URL可以在WSDL文件里找到。&amp;nbsp;&lt;/span&gt; 其实定制发布还有一些高级特性，这个就留到下一篇再说吧。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本文源自：http://chnic.javaeye.com/blog/127343&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goldenocean/aggbug/1772055.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goldenocean/archive/2010/07/06/1772055.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2007/11/03/948040.html</id><title type="text">在Visual C++ 中调用Excel 2000</title><summary type="text">在开发软件时，经常要将数据输出到Excel 2000中，在Excel2000中对该数据进行进一步地格式化处理或进行计算处理。在Visual Basic中处理起来较简单，Excel2000的VB编程帮助中有较为详细的介绍。在Visual C++中如何进行处理了？利用Excel 2000的ActiveXAutomate功能，处理起来同VB中类似。但要注意以下几点： 对于对象的属性值的读取或赋值，需要用...</summary><published>2007-11-03T08:30:00Z</published><updated>2007-11-03T08:30:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2007/11/03/948040.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2007/11/03/948040.html"/></entry><entry><id>http://www.cnblogs.com/goldenocean/archive/2007/06/14/782903.html</id><title type="text">软件配置管理－团队开发的基石</title><summary type="text">软件配置管理－团队开发的基石1. 概述随着现代软件技术的发展，对于软件项目的需求日益复杂而且变更频繁，项目的开发模式已经由昔日的手工作坊式的开发转变为规模化、团队式的开发，当开发团队发展到一定规模时，会越来越强调开发过程规范化和成熟度。软件项目的成败在很大程度上取决于对其开发过程的控制，这包括对质量、源代码、进度、资金、人员等的控制。要进行有效的过程控制，仅仅依靠人的力量是不够的，还需要有相应的管...</summary><published>2007-06-14T00:02:00Z</published><updated>2007-06-14T00:02:00Z</updated><author><name>黄金海岸</name><uri>http://www.cnblogs.com/goldenocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goldenocean/archive/2007/06/14/782903.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goldenocean/archive/2007/06/14/782903.html"/></entry></feed>
