??xml version="1.0" encoding="utf-8" standalone="yes"?>四虎在线免费看,欧美日本亚洲视频,a天堂中文在线http://www.aygfsteel.com/chinadave/zh-cnThu, 19 Jun 2025 20:34:53 GMTThu, 19 Jun 2025 20:34:53 GMT60Tomcat6.0 SSL的配|?/title><link>http://www.aygfsteel.com/chinadave/archive/2009/12/14/305930.html</link><dc:creator>whoami</dc:creator><author>whoami</author><pubDate>Mon, 14 Dec 2009 09:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/chinadave/archive/2009/12/14/305930.html</guid><wfw:comment>http://www.aygfsteel.com/chinadave/comments/305930.html</wfw:comment><comments>http://www.aygfsteel.com/chinadave/archive/2009/12/14/305930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chinadave/comments/commentRss/305930.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chinadave/services/trackbacks/305930.html</trackback:ping><description><![CDATA[<p class="g_p_center g_t_wrap g_t_left g_t_20 g_c_pdin c07" id="blogtitle_fks_082070082084082070087081086095080082085066086083083070" style="margin: 20px auto 10px;"><span style="font-family: '微Y雅黑','黑体',Arial,Helvetica,Sans-Serif;">Tomcat6.0 SSL的配|?/span></p> <div id="wmqeeuq" class="g_p_center g_t_right g_c_pdin g_h_20 c08" style="margin-bottom: 15px;"> <div id="wmqeeuq" class="g_p_left"> <a id="aBelongClsfks_082070082084082070087081086095080082085066086083083070" class="c05" onclick="NEBlog.gPermaLinkPage.updownMenu.openSameClass('fks_080065084085084068082087074071080082080065081083083', 'J2EE');">J2EE</a>   <span id="wmqeeuq" class="g_t_12 c08">2009-07-27 15:30</span> <span id="wmqeeuq" class="c08">  阅读<nobr id="accessCount_fks_082070082084082070087081086095080082085066086083083070">217</nobr>   评论<nobr id="comCount_fks_082070082084082070087081086095080082085066086083083070">0</nobr></span> <span id="wmqeeuq" class="c08"> </span> </div> <div>字号Q? <a id="bigfont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_082070082084082070087081086095080082085066086083083070', 1);return false;" style="font-size: 12px;">?/a><span id="wmqeeuq" class="g_t_bold c07" id="bigfont_off" style="display: none;">?/span>  <a id="middlefont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_082070082084082070087081086095080082085066086083083070', 2);return false;" style="font-size: 12px;">?/a><span id="wmqeeuq" class="g_t_bold c07" id="middlefont_off" style="display: none;">?/span>  <a id="smallfont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_082070082084082070087081086095080082085066086083083070', 3);return false;" style="display: none; font-size: 12px;">?/a><span id="wmqeeuq" class="g_t_bold c07" id="smallfont_off" style="display: inline;">?/span> </div> </div> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">1. </span><span style="font-family: 宋体; color: #333333;">参考:</span></p> <p style="text-align: left; text-indent: 21pt; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">Tomcat 6.0 </span><span style="font-family: 宋体; color: #333333;">自带的文?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">docs/ssl-howto.html</span><span style="font-family: 宋体; color: #333333;">Q详l介l了配置q程?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">2. </span><span style="font-family: 宋体; color: #333333;">目的Q?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>       </span></span><span style="font-family: 宋体; color: #333333;">以下详细描述配置q程Q仅作ؓ备忘录?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">3. </span><span style="font-family: 宋体; color: #333333;">备忘录:</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">Step1</span><span style="font-family: 宋体; color: #333333;">Q安?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">tomcat 6.0.18</span><span style="font-family: 宋体; color: #333333;">Q此为当前最新版本,需</span><span style="font-family: Arial; color: #333333;" lang="EN-US">JDK5.0</span><span style="font-family: 宋体; color: #333333;">或以上?/span></p> <p style="margin-left: 42.05pt; text-align: left; text-indent: -21pt; line-height: 16.5pt;" align="left"><span style="font-family: Wingdings; color: #333333;" lang="EN-US"><span>l<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">         </span></span></span><span style="font-family: Arial; color: #333333;" lang="EN-US">JDK</span><span style="font-family: 宋体; color: #333333;">安装后,可以在命令行下用如下命令检是否成功?/span></p> <p style="margin-left: 21.05pt; text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">C:\Documents and Settings\new></span><strong><span style="font-family: Arial; color: red;" lang="EN-US">java -version</span></strong></p> <p style="margin-left: 21.05pt; text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="FR">java version "1.6.0_10"</span></p> <p style="margin-left: 21.05pt; text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="FR">Java(TM) SE Runtime Environment (build 1.6.0_10-b33)</span></p> <p style="margin-left: 21.05pt; text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US">Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)</span></p> <p style="margin-left: 21.05pt; text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体;">看到以上蓝色信息Q则表示</span><span style="font-family: Arial;" lang="EN-US">JDK</span><span style="font-family: 宋体;">安装配置成功?/span></p> <p style="margin-left: 42.05pt; text-align: left; text-indent: -21pt; line-height: 16.5pt;" align="left"><span style="font-family: Wingdings;" lang="EN-US"><span>l<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">         </span></span></span><span style="font-family: Arial;" lang="EN-US">Tomcat</span><span style="font-family: 宋体;">的运行需要配|?/span><span style="font-family: Arial;" lang="EN-US">JDK_HOME</span><span style="font-family: 宋体;">?/span><span style="font-family: Arial;" lang="EN-US">JRE_HOME</span><span style="font-family: 宋体;">环境变量Q?/span><span style="font-family: Arial;" lang="EN-US">JRE_HOME</span><span style="font-family: 宋体;">默认{于</span><span style="font-family: Arial;" lang="EN-US">JDK_HOME</span><span style="font-family: 宋体;">的倹{?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">Step2</span><span style="font-family: 宋体; color: #333333;">Q创建服务器?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">certificate keystore</span><span style="font-family: 宋体; color: #333333;">和自{֐</span><span style="font-family: Arial; color: #333333;" lang="EN-US">certificate</span><span style="font-family: 宋体; color: #333333;">?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>       </span></span><span style="font-family: 宋体; color: #333333;">在命令行下用如下命令:</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial;" lang="EN-US">C:\Documents and Settings\new><span style="color: red;">keytool -genkey -alias mykey -keyalg RSA -keystore server.keystore</span></span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">输入</span><span style="font-family: Arial; color: blue;" lang="EN-US">keystore</span><span style="font-family: 宋体; color: blue;">密码Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US">123456</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">再次输入新密?/span><span style="font-family: Arial; color: blue;" lang="EN-US">:123456</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">您的名字与姓氏是什么?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>dinstone</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">您的l织单位名称是什么?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>advance software ltd.</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">您的l织名称是什么?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>china</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">您所在的城市或区域名U是什么?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>beijing</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">您所在的州或省䆾名称是什么?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>beijing</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">该单位的两字母国家代码是什?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[Unknown]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>cn</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US">CN=dinstone, OU=advance software ltd., O=china, L=beijing, ST=beijing, C=cn </span><span style="font-family: 宋体; color: blue;">正确吗?</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>[</span><span style="font-family: 宋体; color: blue;">?/span><span style="font-family: Arial; color: blue;" lang="EN-US">]</span><span style="font-family: 宋体; color: blue;">Q?/span><span style="font-family: Arial; color: blue;" lang="EN-US"><span>  </span>y</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"> </span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: blue;">输入</span><span style="font-family: Arial; color: blue;" lang="EN-US"><mykey></span><span style="font-family: 宋体; color: blue;">的主密码</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: blue;" lang="EN-US"><span>        </span></span><span style="font-family: 宋体; color: blue;">Q如果和</span><span style="font-family: Arial; color: blue;" lang="EN-US"> keystore </span><span style="font-family: 宋体; color: blue;">密码相同Q按回RQ:</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: #333333;">?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">C:\Documents and Settings\new</span><span style="font-family: 宋体; color: #333333;">下可以找C个文Ӟ</span><span style="font-family: Arial; color: #333333;" lang="EN-US">server.keystore</span><span style="font-family: 宋体; color: #333333;">Q其中就包含了自{֐的证书?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: #333333;">注意Q?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>       </span></span><span style="font-family: 宋体; color: #333333;">q里要求</span><span style="font-family: Arial; color: #333333;" lang="EN-US">certificate keystore </span><span style="font-family: 宋体; color: #333333;">?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">certificate</span><span style="font-family: 宋体; color: #333333;">的密码一_此ؓ</span><span style="font-family: Arial; color: #333333;" lang="EN-US">Tomcat</span><span style="font-family: 宋体; color: #333333;">的约束?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">Step3</span><span style="font-family: 宋体; color: #333333;">Q在</span><span style="font-family: Arial; color: #333333;" lang="EN-US">%TOMCAT_HOME%</span><span style="font-family: 宋体; color: #333333;">目录下新建目?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">keystore</span><span style="font-family: 宋体; color: #333333;">Qƈ拯</span><span style="font-family: Arial; color: #333333;" lang="EN-US">server.keystore</span><span style="font-family: 宋体; color: #333333;">到其目录下?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US">Step4</span><span style="font-family: 宋体; color: #333333;">Q修?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">%TOMCAT_HOME%/conf/server.xml</span><span style="font-family: 宋体; color: #333333;">文g。添?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">https</span><span style="font-family: 宋体; color: #333333;">?/span><span style="font-family: Arial; color: #333333;" lang="EN-US">Connector</span><span style="font-family: 宋体; color: #333333;">?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><Connector </span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span>port="8443" minSpareThreads="5" maxSpareThreads="75"</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span>enableLookups="true" disableUploadTimeout="true" </span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span>acceptCount="100"<span>  </span>maxThreads="200"</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span>scheme="https" secure="true" SSLEnabled="true"</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span></span><span style="font-family: Arial; color: red;" lang="EN-US">keystoreFile="keystore/server.keystore" keystorePass="123456"</span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>           </span>clientAuth="false" sslProtocol="TLS"/></span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: 宋体; color: #333333;">注意Q?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial; color: #333333;" lang="EN-US"><span>       </span></span><span style="font-family: Arial; color: red;" lang="EN-US">keystoreFile</span><span style="font-family: 宋体; color: red;">指向文g</span><span style="font-family: Arial; color: #333333;" lang="EN-US">%TOMCAT_HOME%/</span><span style="font-family: Arial; color: red;" lang="EN-US">keystore/server.keystore</span><span style="font-family: 宋体; color: red;">文g?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span lang="EN-US"><span>       </span></span><span style="font-family: Arial; color: red;" lang="EN-US">keystorePass</span><span style="font-family: 宋体; color: red;">是刚才生成</span><span style="font-family: Arial; color: red;" lang="EN-US">certificate keystore</span><span style="font-family: 宋体; color: red;">的密码?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial;" lang="EN-US">Step5</span><span style="font-family: 宋体;">Q测?/span><span style="font-family: Arial;" lang="EN-US">Https</span><span style="font-family: 宋体;">。访?/span><span style="font-family: Arial;" lang="EN-US"><a href="https://localhost:8443/">https://localhost:8443/</a></span><span style="font-family: 宋体;">Q提C有不安全的证书Q接受证书,看到可亲?/span><span style="font-family: Arial;" lang="EN-US">tom</span><span style="font-family: 宋体;">猫?/span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-family: Arial;" lang="EN-US">4. </span><span style="font-family: 宋体;">延</span></p> <p style="text-align: left; text-indent: 21pt; line-height: 16.5pt;" align="left"><span style="font-family: 宋体;">某些情况下,某些特定资源需要走</span><span style="font-family: Arial;" lang="EN-US">https</span><span style="font-family: 宋体;">协议Q如dh。这Ӟ我们可以?/span><span style="font-family: Arial;" lang="EN-US">web.xml</span><span style="font-family: 宋体;">中配|约束?/span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><security-constraint></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span><web-resource-collection></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span><span>    </span><web-resource-name>SSL Resource</web-resource-name></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span><span>    </span><url-pattern>/login.jsp</url-pattern></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span></web-resource-collection></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span><user-da<wbr>ta-constraint></span></p> <pre><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>               </span><transport-guarantee></span></pre> <pre><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>                       </span>CONFIDENTIAL</span></pre> <p style="margin-left: 84pt; text-align: left; text-indent: 10pt;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"></transport-guarantee></span></p> <p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"><span>       </span></user-da<wbr>ta-constraint></span></p> <p style="text-align: left; line-height: 16.5pt;" align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: #3f5fbf;" lang="EN-US"></security-constraint></span></p> <p><span style="font-family: 宋体; color: red;">q样当用如下请求访问登录页面时Q则服务器将该请求徏立在</span><span style="font-family: Arial; color: red;" lang="EN-US">https</span><span style="font-family: 宋体; color: red;">q接上?/span></p> <p><span style="font-family: Arial;" lang="EN-US"><a href="http://localhost:8080/CCB/login.jsp">http://localhost:8080/CCB/login.jsp</a></span></p> <img src ="http://www.aygfsteel.com/chinadave/aggbug/305930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chinadave/" target="_blank">whoami</a> 2009-12-14 17:30 <a href="http://www.aygfsteel.com/chinadave/archive/2009/12/14/305930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat6配置使用SSL双向认证http://www.aygfsteel.com/chinadave/archive/2009/12/14/305865.htmlwhoamiwhoamiMon, 14 Dec 2009 03:51:00 GMThttp://www.aygfsteel.com/chinadave/archive/2009/12/14/305865.htmlhttp://www.aygfsteel.com/chinadave/comments/305865.htmlhttp://www.aygfsteel.com/chinadave/archive/2009/12/14/305865.html#Feedback0http://www.aygfsteel.com/chinadave/comments/commentRss/305865.htmlhttp://www.aygfsteel.com/chinadave/services/trackbacks/305865.html
相关资源Q?a target="_blank">IBM developerWroks中国中的tomcat4中用SSLQ?a target="_blank">javaeye中的Acegi X.509双向认证

?a target="_blank">tomcat4中用SSL中的异同Qjdk1.4中已l包含JSSE?

?a target="_blank">AcegiX.509双向认证中的异同Qtomcat6配置文g多了SSLEnabled="true"属性?

1.生成CA证书。目前不使用W三Ҏ威机构的CA来认证,自己充当CA的角艌Ӏ?

1.创徏U钥 QC:\OpenSSL\apps>openssl genrsa -out root/root-key.pem 1024
2.创徏证书h QC:\OpenSSL\apps>openssl req -new -out root/root-req.csr -key root/root-key.pem
3.自签|证?QC:\OpenSSL\apps>openssl x509 -req -in root/root-req.csr -out root/root-cert.pem -signkey
root/root-key.pem -days 3650
4.证书导出成览器支持的.p12格式 QC:\OpenSSL\apps>openssl pkcs12 -export -clcerts -in root/root-cert.pem -inkey
root/root-key.pem -out root/root.p12

2.生成server证书?

1.创徏U钥 QC:\OpenSSL\apps>openssl genrsa -out server/server-key.pem 1024
2.创徏证书h QC:\OpenSSL\apps>openssl req -new -out server/server-req.csr -key server/server-key.pem
3.自签|证? QC:\OpenSSL\apps>openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey
server/server-key.pem -CA root/root-cert.pem -CAkey root/root-key.pem -CAcreateserial -days 3650
4.证书导出成览器支持的.p12格式 QC:\OpenSSL\apps>openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey
server/server-key.pem -out server/server.p12

3.生成client证书?

1.创徏U钥 QC:\OpenSSL\apps>openssl genrsa -out client/client-key.pem 1024
2.创徏证书h QC:\OpenSSL\apps>openssl req -new -out client/client-req.csr -key client/client-key.pem
3.自签|证? QC:\OpenSSL\apps>openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey
client/client-key.pem -CA root/root-cert.pem -CAkey root/root-key.pem -CAcreateserial -days 3650
4.证书导出成览器支持的.p12格式 QC:\OpenSSL\apps>openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey
client/client-key.pem -out client/client.p12

4.Ҏroot证书生成jks文g

C:\OpenSSL\apps\root>keytool -import -v -trustcacerts -storepass password -alias root -file root-cert.pem
-keystore root.jks

5.配置tomcat sslQ修改conf/server.xml。tomcat6中多了SSLEnabled="true"属性?
keystorefile, truststorefile讄Z正确的相兌\?
xml 代码
 
  1. <connector secure="true" scheme="https" protocol="HTTP/1.1" port="8443"      
  2. sslenabled="true" maxhttpheadersize="8192" maxthreads="150"      
  3. minsparethreads="25" maxsparethreads="75" enablelookups="false"      
  4. disableuploadtimeout="true" acceptcount="100" sslprotocol="TLS"      
  5. clientauth="true" keystorefile="d:/path/bin/x509/server.p12"      
  6. keystoretype="PKCS12" keystorepass="123456" truststorefile="d:/path/bin/x509/root.jks"    
  7. truststoretype="JKS" truststorepass="123456"/>    

6.root.p12Qclient.p12分别导入到IE中去Q打开IE->;Internet选项->内容->证书Q?
root.p12导入?strong>受信ȝ根证书颁发机?/strong>Qclient.p12导入?strong>个h
7.讉K你的应用http://ip:8443Q如果配|正的话会出现h你数字证书的对话框?
8.在jsp中取得符合x.509格式的证?br />
  1. <%      
  2.         //获得certificate chain     
  3.         X509Certificate[] ca=(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");     
  4.       if(ca==null)     
  5.       {     
  6.         out.println("No cert info!");     
  7.       } else {     
  8.         String  serial=ca[0].getSerialNumber().toString();     
  9.         String DN=ca[0].getSubjectDN().toString();       
  10.       }     
  11.       %> 




whoami 2009-12-14 11:51 发表评论
]]>
Java&CORBA~程实例http://www.aygfsteel.com/chinadave/archive/2009/11/16/302469.htmlwhoamiwhoamiMon, 16 Nov 2009 03:05:00 GMThttp://www.aygfsteel.com/chinadave/archive/2009/11/16/302469.htmlhttp://www.aygfsteel.com/chinadave/comments/302469.htmlhttp://www.aygfsteel.com/chinadave/archive/2009/11/16/302469.html#Feedback0http://www.aygfsteel.com/chinadave/comments/commentRss/302469.htmlhttp://www.aygfsteel.com/chinadave/services/trackbacks/302469.html

Java IDL技术在Javaq_上添加了CORBA(Common Object Request Broker Architecture)功能Q提供了Z标准的互操作能力和连接性。Java IDL技术得分布式的Java Web应用能够通过使用工业标准的IDL和IIOP(Internet Inter-ORB Protocol)来透明地调用远E网l服务的操作。运行时lg(Runtime Components)包括了一个用于分布式计算且用IIOP通信的Java ORB.

可移植对象适配器(Portable Object AdapterQPOAQ?br /> CORBA对象的负责分隔服务器端远E调用句? QhandlerQ到q程对象和它的服务者(servantQ。对象由q程调用所暴露Q而服务者包含实际处理这些请求的Ҏ。每个对象都可以选择服务者ؓ 静态的Q一ơ)或动态的Q每个远E调用)Q在q两U情况下Q都允许调用转移到另一台服务器?br /> 在服务器端,POA形成了类似树状的l构Q每个POA都负责一到多个服务的对象。树的分支可以是独立zd的、或钝化的,服务者调用有不同的代码和不同的请求处理策略?/p>

API规范
    * org.omg.CORBA ?- 提供了OMG CORBA APIs到Java~程语言的映?br />     * org.omg.CosNaming ?- 为Java IDL提供命名服务
    * org.omg.PortableServer ?- 为徏立服务器端的可移植的、跨多ORB的应用程序提供类和接?br />     * org.omg.PortableInterceptor ?- 提供了注册ORB钩子的机Ӟ此钩子通过ORB服务能截取正常的ORB执行?br />     * org.omg.DynamicAny ?- 提供了得Q何值都能被动态解释(或遍历)和通过DynAny对象构造出来的cd接口
    * org.omg.CORBA.ORB - 为CORBA ORB功能的API

分布式对象之间的关系有两斚wQ客L和服务器?br /> 服务器提供远E接口,客户端调用远E接口?br /> 在客LQ应用程序包括远E对象的引用。该对象引用有stubҎQ它是独立的q程Ҏ。stubҎ实际q接到ORBQ因此调用它实际上{发调用到服务器?br /> 在服务器端,ORB使用skeleton代码译q程调用为本地对象的Ҏ调用。Skeleton把调用{换成指定实现的格式,q在Ҏ中调用。当Ҏq回ӞSkeleton代码转换Ҏ调用的结果或错误Q经ORB送回客户端?/p>

Java IDL开发过E?br /> 1Q定义远E接?br /> 使用IDL语言E对象定义接口?br /> 【Billing.idl源代码】如下:

  1. // 声明CORBA IDL模块  
  2. module BillingApp{  
  3.     // 声明接口  
  4.     interface Billing{  
  5.         string successBilling();  
  6.         oneway void shutdown();  
  7.     };  
  8. };  

2Q编译远E接?br /> 使用idlj~译器生成Java语言的stub和skeleton源文件?br /> idlj~译器缺省只生成客户端的binding代码。如果同旉要客L的bindings和服务器端的skeletonsQ必d?fall选项?br /> 使用POA(Portable Object Adaptor)的优点:
· 允许~程者构建对象在不同ORB产品之间的可UL实现
· 支持带持久化标识的对?br /> · 对对象的透明zd提供支持
· 允许单个servant支持多种对象同时标识
注意Q确定jdk/bin目录下有Qidlj、java、javac、orbd
命oQ?br />  idlj -fall Billing.idl
在当前目录下生成BillingApp目录Q包含如下六个文Ӟ
· Billing.java    ———?gt; 此接口包含IDL接口的Java版本。它l承自org.omg.CORBA.ObjectQ提供标准的CORBA对象功能?br /> · BillingHelper.java    ———?gt; 此类提供辅助功能QHelperc负责读写数据类型到CORBA,以及插入和提取数据类型?br /> · BillingHolder.java    ———?gt; This final class holds a public instance member of type Billing.
· BillingOperations.java    ———?gt; 此接口包含successBilling()和shutdown()Ҏ?br /> · BillingPOA.java    ———?gt; 此抽象类是基于流的服务器SkeletonQؓ服务器提供基本的CORBA功能。它l承org.omg.PortableServer.ServantQ? 实现了InvokeHandler接口和BillingOperations接口。服务器cBillingServantl承BillingPOA?br /> · _BillingStub.java    ———?gt; 此类是客LstubQؓ客户端提供CORBA功能。它l承org.omg.CORBA.ObjectQ提供标准CORBA对象功能。还扩展? BillingOperations接口和org.omg.CORBA.portable.IDLEntity接口?/p>

3Q实现服务器?br /> 一旦用idlj~译器后Q就可以使用它生的Skeleton装配服务器应用程序了。另外要实现q程接口ҎQ服务器代码应包含启动ORB和等待远E客L调用的机制?br /> 服务器端׃个类l成Q一个是servantQ另一个是Server?br /> servant是BillingImplc,是Billing IDL接口的实玎ͼ每个Billing实例均由BillingImpl实例实现。servant是BillingPOA的子cR?br /> servant包含了IDL定义的所有方法,与通常的JavaҎcM?br /> servercd服务器的main()ҎQ它Q?br /> · 创徏和初始化ORB实例
· 获得根POA的引用ƈȀzPOAManager
· 创徏一个Servant实例QCORBA的Billing对象的实玎ͼq知ORB
· 获得根命名上下文
· 在命名上下文?#8220;Billing”名注册新对象
· {待客户端调用此新对?/p>

【BillingImpl.java源码】:

  1. import org.omg.CORBA.ORB;  
  2. import BillingApp.*;  
  3. class BillingImpl extends BillingPOA{  
  4.  private ORB orb;  
  5.  public void setORB(ORB orb_val){  
  6.   this.orb = orb_val;  
  7.  }  
  8.  /** 
  9.   * 实现successBilling()Ҏ 
  10.   */  
  11.  public String successBilling() {  
  12.   return "\nBilling success!!\n";  
  13.  }  
  14.  /** 
  15.   * 实现shutdown()Ҏ 
  16.   */  
  17.  public void shutdown(){  
  18.   orb.shutdown(false);  
  19.  }  
  20. }  

【BillingServer.java源码】:

  1. import org.omg.CORBA.ORB;  
  2. import org.omg.CosNaming.NameComponent;  
  3. import org.omg.CosNaming.NamingContextExt;  
  4. import org.omg.CosNaming.NamingContextExtHelper;  
  5. import org.omg.PortableServer.POA;  
  6. import BillingApp.*;  
  7. public class BillingServer {  
  8.  public static void main(String args[]){  
  9.   try{  
  10.    // 创徏和初始化ORB  
  11.    ORB orb = ORB.init(args, null);  
  12.    // 获得根POA的引用ƈȀzPOAManager  
  13.    POA rootpoa = (POA)orb.resolve_initial_references("RootPOA");  
  14.    rootpoa.the_POAManager().activate();  
  15.    // 创徏servantq注册到ORB  
  16.    BillingImpl billingImpl = new BillingImpl();  
  17.    billingImpl.setORB(orb);  
  18.    // 从servant获得对象引用  
  19.    org.omg.CORBA.Object ref = rootpoa.servant_to_reference(billingImpl);  
  20.    Billing href = BillingHelper.narrow(ref);  
  21.    // 得到根命名上下文  
  22.    org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");  
  23.    // 使用命名上下文,它是互操作命名服务规范的一部分  
  24.    NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);  
  25.    // 在命名中l定对象引用  
  26.    String name = "Billing";  
  27.    NameComponent path[] = ncRef.to_name(name);  
  28.    ncRef.rebind(path, href);  
  29.    System.out.println("BillingServer is ready and waiting...");  
  30.    // {待客户端调?nbsp; 
  31.    orb.run();  
  32.   }catch(Exception e){  
  33.    System.err.println("ERROR:"+e);  
  34.    e.printStackTrace(System.out);  
  35.   }  
  36.   System.out.println("BillingServer Exiting ...");  
  37.  }  
  38. }  

4Q实现客L
与第三步cMQ可以用idlj产生的stub作ؓ客户端应用程序的基础。客L代码建立于stub之上Q启动ORBQ用服务器提供的命名服务查询,获得q程对象的引用,调用其方法?br /> 【BillingClient.java源码】:

  1. import org.omg.CORBA.ORB;  
  2. import org.omg.CosNaming.NamingContextExt;  
  3. import org.omg.CosNaming.NamingContextExtHelper;  
  4. import BillingApp.*;  
  5. public class BillingClient {  
  6.  static Billing billingImpl;  
  7.  public static void main(String args[]){  
  8.   try{  
  9.    // 创徏和初始化ORB  
  10.    ORB orb = ORB.init(args, null);  
  11.    System.out.println("ORB initialised");  
  12.    // 获得根命名上下文  
  13.    org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");  
  14.    // 使用NamingContextExt代替命名上下文,它是互操作命名服务的一部分  
  15.    NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);  
  16.    // 在命名中解析对象引用  
  17.    String name = "Billing";  
  18.    billingImpl = BillingHelper.narrow(ncRef.resolve_str(name));  
  19.      
  20.    System.out.println("Obtained a handle on server object: "+billingImpl);  
  21.    System.out.println(billingImpl.successBilling());  
  22.    billingImpl.shutdown();  
  23.   }catch(Exception e){  
  24.    System.out.println("ERROR: "+e);  
  25.    e.printStackTrace(System.out);  
  26.   }  
  27.  }  
  28. }  


5Q启动应用程?br /> 要运行服务器和客LQ必d启动命名服务Q再启动服务器,最后运行客L?br /> 此例用到命名服务Q它使得servant对象的操作对客户端有效。服务器需要命名服务的对象引用Q命名服务可以发布对象引用实现各U接口。客L使用对象引用来调用方法?br /> Java SE 1.4以上提供了两U可选的命名服务Q?br /> · tnameserv
一U透明的命名服?br /> · orbd
包含自启动服务、透明的命名服务、持久化命名服务和命名管理器的后台处理进E?br /> 本例使用orbd?/p>

5.1Q启动orbd
注意QSolarispȝq行要求root权限q以1024端口开始进E。因此,Ҏ有OSQ可以选用大于或等?024的端口以实现l一?br /> -ORBInitialPort选项用于指定端口Q非~省状态)?br /> 例如Q假定?050端口的Java ORB DaemonQorbdQ,命o如下Q?br /> start orbd -ORBInitialPort 1050 -ORBInitialHost localhost

5.2Q开始Billing服务?br /> start java BillingServer -ORBInitialPort 1050 -ORBInitialHost localhost
注:如在同一CZq行Q可省略-ORBInitialHost localhost

5.3Q运行客L应用E序
java BillingClient -ORBInitialPort 1050 -ORBInitialHost localhost



whoami 2009-11-16 11:05 发表评论
]]>
Eclipse3.2下配|ORBStudio插g的corba开发环?/title><link>http://www.aygfsteel.com/chinadave/archive/2009/11/16/302464.html</link><dc:creator>whoami</dc:creator><author>whoami</author><pubDate>Mon, 16 Nov 2009 01:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/chinadave/archive/2009/11/16/302464.html</guid><wfw:comment>http://www.aygfsteel.com/chinadave/comments/302464.html</wfw:comment><comments>http://www.aygfsteel.com/chinadave/archive/2009/11/16/302464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chinadave/comments/commentRss/302464.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chinadave/services/trackbacks/302464.html</trackback:ping><description><![CDATA[<p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">一?使用到的软g</font><br /> 1. corba产品QOpenORB<br /> 下蝲地址Q?/font><a ><font color="#0000ff" face="宋体" size="3">http://sourceforge.net/projects/openorb/</font></a><br /> <font color="#0000ff" face="宋体" size="3">解压后如下图所C?/font></p> <div forimg="1"><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/189517137bbeadf5f6039e5d.jpg" border="0" alt="" /></font></div> <p><br /> <br /> <font color="#0000ff" face="宋体" size="3">2. 开发工具Eclipse 3.4.2</font></p> <p><br /> <font color="#0000ff" face="宋体" size="3">3. 插gQORBStudio777<br /> 下蝲地址Q?</font><a href="ftp://www.orbzone.org/"><font color="#0000ff" face="宋体" size="3">ftp://www.orbzone.org</font></a><font color="#0000ff" face="宋体" size="3"> 用户名称Qorbzone_downloads 密码Qorbzone_downloads<br /> 使用W三方Ftp工具或者迅L资源探测器登陆后q入CORBA_Utilities文g夹,下面?个zip压羃文gORBStudio 775, ORBStudio776, ORBStudio777 Q我选择?77下蝲?br /> 解压后如下图所C?/font></p> <p><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/e897a06d77627dde4216945d.jpg" border="0" alt="" /></font></p> <p><font color="#0000ff" face="宋体" size="3">4. Javacc<br /> 下蝲javacc,|址Q?/font><a ><font color="#0000ff" face="宋体" size="3">https://javacc.dev.java.net/</font></a><br /> <font color="#0000ff" face="宋体" size="3">解压后如下图所C?br /> </font></p> <div forimg="1"><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/91dddb23206e5f779922ed5d.jpg" border="0" alt="" /></font></div> <p> </p> <p> </p> <p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">二、安装配|?/font><br /> 1. 解压OpenOrb.rar<br /> 2. 解压ORBStudio777.zipQ从ORBStudio/plugins/下面取得 ORBStudio_7.7.7.jar 的JAR包放到Eclipse/plugins下面.我用的Eclipse版本是Eclipse3.4.2。如果考入Jar包前以前Eclipse是运? 的请关闭Q重新运行?br /> 3. q行CMD 到DOSQ再到存放javacc的bin目录Q输?javacc -tm D:\Eclipse3.22\eclipse\ORBStudio\IDLParser.jj<br /> <img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/f75a94f7bacb5707730eec5d.jpg" border="0" alt="" /><br /> 4. d环境变量TCOO_HOMEQgؓOpenOrb目录的\?br /> 5. 启动eclipse<br /> 6. windows/preferences/出现如下H口选择ORB Studio/IDL Compiler/ 在右辚w择OpenORBq里?U编译器我们使用JacORB. 打开IDL Compiler 前面的加号选择<br /> <img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/c37791f3f953b4ee0b46e05d.jpg" border="0" alt="" /><br /> 双参数IDL CommandQ?D:\ComponentTechnology\OpenOrb\OpenORB\bin\idl2java.bat<br /> Command Options: -d %D% %F% <br /> <img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/5a81874c6b9616dcd62afc5d.jpg" border="0" alt="" /><br /> q样配|成功了Eclipse下面的Corba开发。Eclipse的新建选择如图Q?/font></p> <p><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/a141ce43ab687d349213c65e.jpg" border="0" alt="" /><br /> </font></p> <p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">三、开发步骤参?/font><br /> 1. 在eclipse里新建项目,Project lauyout 选择Create separate source and output folders</font></p> <p><font color="#0000ff" face="宋体" size="3">2. l新目dLibraries,右键Properites--->Libraries--->Add Library--->User Library--->User Libraries...--->New...--->Add JARs...<br /> 扑ֈOpenOrb\OpenORB\lib目录下openorb_orb-1.4.0.jar,openorb_orb_tools-1.4.0.jar<br /> OpenOrb\OpenORB\lib\endorsed目录下openorb_orb_omg-1.4.0.jar<br /> OpenOrb\tools\lib目录下launcher.jar,tools-1.4.0.jar<br /> OpenOrb\tools\lib\ext目录下所?jar文g</font></p> <p><font color="#0000ff" face="宋体" size="3">3. src上右键New--->Other--->CORBA Wizard--->IDL files--->Simple IDL</font></p> <p><font color="#0000ff" face="宋体" size="3">4. 选择IDL文gQ右键ORB Menu--->Compile,p动生成文?/font></p> <p><font color="#0000ff" face="宋体" size="3">5. src上右键New--->Other--->CORBA Wizard--->Server--->Active object map--->Next在弹出的对话框里IDL filename栏选择/{projectName}/src/{IDLname}.idl<br />     Interface栏选择IDL文g里定义的接口?br />     Package栏里填写包名<br />     Server classname栏里填写服务端类?br /> --->Next 在弹出的对话?选中Create server class:?/font></p> <p><font color="#0000ff" face="宋体" size="3">6. 为生成的服务端类d未实现的Ҏ,q填写方法体</font></p> <p><font color="#0000ff" face="宋体" size="3">7. src 上右键New--->Other--->CORBA Wizard--->Client--->Simple implementation 在弹出的对话框里IDL filename栏选择/{projectName}/src/{IDLname}.idl<br />     Interface栏选择IDL文g里定义的接口?br />     Package栏里填写包名<br />     Client classname栏里填写客户端类?/font></p> <p><font color="#0000ff" face="宋体" size="3">8. 在客LcȝmainҎ里,取消注释test.getORBInterface().operation1("A message in the bottle..."); q修改传递的String内容</font></p> <p><font color="#0000ff" face="宋体" size="3">9. q行服务端程序Server_AOM.javaQ然后运行客LE序MyServiceClientImpl.java</font></p> <p><font color="#339966" face="宋体" size="3">如果Q你要将你的E序包发布到别的机器上,p用到名称服务Q用名U服务,我们需要在java代码上作些修改:</font></p> <p><font color="#339966" face="宋体" size="3">使用名称I间的配|:</font></p> <p><font color="#339966" face="宋体" size="3">1. 扑ֈq注释服务端Server_AOM.java里mainҎ的下列代码:</font></p> <p><font color="#339966" face="宋体" size="3">PrintWriter ps = new PrintWriter(new FileOutputStream(new File("server.ior")));<br /> ps.println(orb.object_to_string(obj));<br /> ps.close();</font></p> <p><font color="#339966" face="宋体" size="3">取消下列代码Q位|在上面代码的上方)的注释:</font></p> <p><font color="#339966" face="宋体" size="3">// org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");<br /> // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);<br /> // nc.bind(nc.to_name("MyServerObject"), obj);</font></p> <p><font color="#339966" face="宋体" size="3">修改bindҎ为rebindQƈ引入新的c?/font></p> <p><br /> <font color="#339966" face="宋体" size="3">2. 扑ֈq注释客LMyServiceClientImpl.java里mainҎ的下列代码:</font></p> <p><font color="#339966" face="宋体" size="3">LineNumberReader input = new LineNumberReader(new FileReader("server.ior"));<br /> String ior = input.readLine();<br /> org.omg.CORBA.Object obj = orb.string_to_object(ior);</font></p> <p><font color="#339966" face="宋体" size="3">取消下列代码Q位|在上面代码的上方)的注释:</font></p> <p><font color="#339966" face="宋体" size="3">// org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");<br /> // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);<br /> // org.omg.CORBA.Object obj = nc.resolve_str("MyServerObject");</font></p> <p><font color="#339966" face="宋体" size="3">引入新的c?/font></p> <p><font color="#339966" face="宋体" size="3">修改org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");里面的参敎ͼ服务端Server_AOM.java也要攏V?/font></p> <p><font color="#339966" face="宋体" size="3">改ؓ"corbaloc::1.2@hostname:portNumber/NameService"</font></p> <p><font color="#339966" face="宋体" size="3">修改resolve_initial_referencesҎ为string_to_object</font></p> <p><font color="#339966" face="宋体" size="3">修改所有异ؓException</font></p> <p><br /> <font color="#339966" face="宋体" size="3">3. 用命令行的方式,在OpenOrb\NamingService\bin目录下执行ins -ORBPort=portNumber</font></p> <p><br /> <font color="#339966" face="宋体" size="3">4. 带参?-ORBInitRef NameService=corbaloc::1.2@hostname:portNumber/NameService q行服务端Server_AOM.javaQ?/font></p> <p><br /> <font color="#339966" face="宋体" size="3">5. 然后q行客户端程序MyServiceClientImpl.javaQ结果是一L?/font></p> <p><font color="#339966" face="宋体" size="3">目前为止Qcorba的本地、远E开发都已经配置完毕?/font></p> <img src ="http://www.aygfsteel.com/chinadave/aggbug/302464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chinadave/" target="_blank">whoami</a> 2009-11-16 09:42 <a href="http://www.aygfsteel.com/chinadave/archive/2009/11/16/302464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ϵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">差</a>| <a href="http://" target="_blank">ȷɽ</a>| <a href="http://" target="_blank">찲</a>| <a href="http://" target="_blank">Ļ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ҿ</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͭ</a>| <a href="http://" target="_blank">Ӣɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank">Ӻ</a>| <a href="http://" target="_blank">ʼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ׯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>