﻿<?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-linugb118--java space</title><link>http://www.blogjava.net/linugb118/</link><description>Java</description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:25:32 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:25:32 GMT</pubDate><ttl>60</ttl><item><title>Javascript端加密java服务端解密</title><link>http://www.blogjava.net/linugb118/archive/2014/05/09/413459.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Fri, 09 May 2014 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2014/05/09/413459.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/413459.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2014/05/09/413459.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/413459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/413459.html</trackback:ping><description><![CDATA[<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Javascript<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">端加密</span>java<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">服务端解密</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通常我们会通过</span>htts<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来保证传输安全，但如果我们不用</span>https<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">，如何通过</span>javascript<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来保证浏览器端发送的参数进行加密，并且通过</span>RSA<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">算法来处理。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">这里我们可以利用</span>jquery<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的一个加密插件</span>jcryption<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来处理，可以参考</span></p>  <p><a href="http://jcryption.org/#examples">http://jcryption.org/#examples</a></p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">现在版本是</span>3.0 <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">但是没有</span>java<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">端的实现，下次有时间再研究。现在这个用的是</span>1.1<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的版本</span></p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">这个可以在</span></p>  <p><a href="http://linkwithweb.googlecode.com/svn/trunk/Utilities/jCryptionTutorial">http://linkwithweb.googlecode.com/svn/trunk/Utilities/jCryptionTutorial</a> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">获取</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">不过他的服务端有个缺陷我修改了。</span></p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">接来大致介绍如下：</span></p>  <p>&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">1.<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">首先服务端有产生</span>publicKey<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的</span>servlet<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：</span></p>  <p>package com.gsh.oauth.auth.servlet;</p>  <p>&nbsp;</p>  <p>import java.io.IOException;</p>  <p>import java.security.KeyPair;</p>  <p>&nbsp;</p>  <p>import javax.servlet.ServletException;</p>  <p>import javax.servlet.http.HttpServlet;</p>  <p>import javax.servlet.http.HttpServletRequest;</p>  <p>import javax.servlet.http.HttpServletResponse;</p>  <p>&nbsp;</p>  <p>import com.gsh.oauth.auth.util.JCryptionUtil;</p>  <p>&nbsp;</p>  <p>/**</p>  <p>&nbsp;* Servlet implementation class EncryptionServlet</p>  <p>&nbsp;*/</p>  <p>public class EncryptionServlet extends HttpServlet {</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static final long serialVersionUID = 1L;</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* Default constructor.</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public EncryptionServlet() {</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated constructor stub</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected void service(HttpServletRequest request,</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletResponse response) throws ServletException, IOException {</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int KEY_SIZE = 1024;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (request.getParameter("generateKeypair") != null) {</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JCryptionUtil jCryptionUtil = new JCryptionUtil();</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KeyPair keys = null;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //if (request.getSession().getAttribute("keys") == null) { //<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">这里注释掉</span> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">否则第二次请求会</span>500</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keys = jCryptionUtil.generateKeypair(KEY_SIZE);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute("keys", keys);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //}</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer output = new StringBuffer();</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String e = JCryptionUtil.getPublicKeyExponent(keys);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String n = JCryptionUtil.getPublicKeyModulus(keys);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String md = String.valueOf(JCryptionUtil.getMaxDigits(KEY_SIZE));</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append("{\"e\":\"");</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append(e);<a href="/Files/linugb118/bcprov-jdk15-1.46.jar.zip">/Files/linugb118/bcprov-jdk15-1.46.jar.zip</a></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append("\",\"n\":\"");</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append(n);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append("\",\"maxdigits\":\"");</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append(md);</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.append("\"}");</p>  <p>&nbsp;</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.toString();</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.getOutputStream().print(</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.toString().replaceAll("\r", "").replaceAll("\n", "")</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .trim());</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.getOutputStream().print(String.valueOf(false));</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>  <p>&nbsp;</p>  <p>}</p>  <p>&nbsp;</p>  <p align="left" style="margin-left: 18pt; text-indent: -18pt;"><span style="font-size: 10.0pt;font-family:Consolas;">2.&nbsp;</span>Client<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">例子</span> </p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">html</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">head</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">title</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><span style="font-size: 10pt; font-family: Consolas;">Login form</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas; color:#3F7F7F;">title</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">head</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">meta</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">http-equiv</span>=<em><span style="color:#2A00FF">"Content-Type"</span></em></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;">&nbsp;&nbsp;&nbsp; <span style="color:#7F007F">content</span>=<em><span style="color:#2A00FF">"text/html; charset=utf-8"</span></em><span style="color:teal">&gt;</span></span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">script</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">src</span>=<em><span style="color:#2A00FF">"../js/jquery-1.4.2.min.js" </span></em><span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text/javascript"</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">script</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">script</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">src</span>=<em><span style="color:#2A00FF">"../js/jquery-ui-1.8.2.custom.min.js"</span></em></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;">&nbsp;&nbsp;&nbsp; <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text/javascript"</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">script</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">script</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text/javascript"</span></em></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;">&nbsp;&nbsp;&nbsp; <span style="color:#7F007F">src</span>=<em><span style="color:#2A00FF">"../js/security/jquery.jcryption-1.1.min.js"</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">script</span><span style="color:teal">&gt;</span>&nbsp;&nbsp;&nbsp; </span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; </span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">script</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text/javascript"</span></em><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; $(document).ready(</span><strong><span style="font-size:10.0pt; font-family:Consolas;color:#7F0055;">function</span></strong><span style="font-size: 10pt; font-family: Consolas;">() {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">var</span></strong><span style="font-size: 10pt; font-family: Consolas;"> $statusText = $(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">'&lt;span id="status"&gt;&lt;/span&gt;'</span><span style="font-size: 10pt; font-family: Consolas;">).hide();</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"#status_container"</span><span style="font-size: 10pt; font-family: Consolas;">).append($statusText);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"#lf"</span><span style="font-size: 10pt; font-family: Consolas;">).jCryption({ </span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getKeysURL:</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"/gsh/oauth/encryption?generateKeypair=true"</span><span style="font-size: 10pt; font-family: Consolas;">,</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beforeEncryption : </span><strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">function</span></strong><span style="font-size: 10pt; font-family: Consolas;">() {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $statusText</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"Test Code"</span><span style="font-size: 10pt; font-family: Consolas;">)</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .show();</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">return</span></strong> <strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">true</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encryptionFinished : </span><strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">function</span></strong><span style="font-size: 10pt; font-family: Consolas;">(</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encryptedString,</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objectLength) {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $statusText</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .text(encryptedString);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">return</span></strong> <strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">true</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">script</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">body</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">form</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">id</span>=<em><span style="color:#2A00FF">"lf"</span></em> <span style="color:#7F007F">action</span>=<em><span style="color:#2A00FF">"/gsh/oauth/authorization"</span></em></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;">&nbsp;&nbsp;&nbsp; <span style="color:#7F007F">method</span>=<em><span style="color:#2A00FF">"post"</span></em><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">fieldset</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">legend</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><span style="font-size: 10pt; font-family: Consolas;">login</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas; color:#3F7F7F;">legend</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><span style="font-size: 10pt; font-family: Consolas;">client_id:</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas; color:#3F7F7F;">br</span><span style="font-size: 10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">input</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text"</span></em> <span style="color:#7F007F">size</span>=<em><span style="color:#2A00FF">"45"</span></em> <span style="color:#7F007F">name</span>=<em><span style="color:#2A00FF">"client_id"</span></em> <span style="color:#7F007F">value</span>=<em><span style="color:#2A00FF">""</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">div</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><span style="font-size: 10pt; font-family: Consolas;">redirect_uri:</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas; color:#3F7F7F;">br</span><span style="font-size: 10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">input</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text"</span></em> <span style="color:#7F007F">size</span>=<em><span style="color:#2A00FF">"45"</span></em> <span style="color:#7F007F">name</span>=<em><span style="color:#2A00FF">"redirect_uri"</span></em> <span style="color:#7F007F">value</span>=<em><span style="color:#2A00FF">""</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">div</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><u><span style="font-size: 10pt; font-family: Consolas;">loginid</span></u><span style="font-size: 10pt; font-family: Consolas;">:</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&lt;</span><span style="font-size: 10.0pt;font-family:Consolas;color:#3F7F7F;">br</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">input</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"text"</span></em> <span style="color:#7F007F">size</span>=<em><span style="color:#2A00FF">"45"</span></em> <span style="color:#7F007F">name</span>=<em><span style="color:#2A00FF">"loginid"</span></em> <span style="color:#7F007F">value</span>=<em><span style="color:#2A00FF">""</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">div</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><u><span style="font-size:10.0pt; font-family:Consolas;color:teal;">&lt;/</span></u><u><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span></u><u><span style="font-size:10.0pt; font-family:Consolas;color:teal;">&gt;</span></u></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span><span style="font-size: 10pt; font-family: Consolas;">password:</span><span style="font-size:10.0pt;font-family:Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas; color:#3F7F7F;">br</span><span style="font-size: 10.0pt;font-family:Consolas;color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">input</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"password"</span></em> <span style="color:#7F007F">size</span>=<em><span style="color:#2A00FF">"45"</span></em> <span style="color:#7F007F">name</span>=<em><span style="color:#2A00FF">"password"</span></em> <span style="color:#7F007F">value</span>=<em><span style="color:#2A00FF">""</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">div</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><u><span style="font-size:10.0pt; font-family:Consolas;color:teal;">&lt;/</span></u><u><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span></u><u><span style="font-size:10.0pt; font-family:Consolas;color:teal;">&gt;</span></u></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">p</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;&lt;</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">input</span><span style="font-size:10.0pt;font-family:Consolas;"> <span style="color:#7F007F">type</span>=<em><span style="color:#2A00FF">"submit"</span></em> <span style="color:teal">/&gt;&lt;</span><span style="color:#3F7F7F">span</span> <span style="color:#7F007F">id</span>=<em><span style="color:#2A00FF">"status_container"</span></em><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">span</span><span style="color:teal">&gt;&lt;/</span><span style="color:#3F7F7F">p</span><span style="color:teal">&gt;</span></span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">div</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">fieldset</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">form</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">body</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p align="left"><span style="font-size:10.0pt;font-family: Consolas;color:teal;">&lt;/</span><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F7F;">html</span><span style="font-size:10.0pt;font-family:Consolas; color:teal;">&gt;</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">上面看代码可以看出</span> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">他通过</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">/gsh/oauth/encryption?generateKeypair=true</span><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">来先请求获取</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">public </span><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">然后通过</span><em><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">jcryption</span></em><em><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">进行加密</span></em><em> </em><em><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">然后</span></em><em><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">post</span></em><em><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">到服务端。</span></em><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">Encryption</span><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">就是上面的</span>EncryptionServlet<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">。</span><em></em></p>  <p><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">通过浏览器工具可以看到表单里面的数据加密为</span></em><em></em></p>  <p><em>&nbsp;</em></p>  <p align="left" style="margin-left: -1.45pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:8.5pt;font-family:Consolas; color:#222222;">jCryption=95f1589502288050e08b4bd8b1a360341cf616d9054531b85a6ef85783c1723b46686ec454ee81f1304fa2370ce24c4d9c06f84d47aa4bdf99310ae12b514db19bfcc325f3a39a584c23b1546550f4e0635c12486f2fd84dec137e1c61cfa775dfa3057a1f0154712aaba0af0cc61810282780f15bed909c24a184e66ab39f2e</span></p>  <p align="left" style="margin-left: 18pt; text-indent: -18pt;"><em><span style="font-size: 10.0pt;font-family:Consolas;color:#2A00FF;">3.&nbsp;</span></em><em><span style="font-size:10.0pt;font-family: 宋体;color:#2A00FF;">目标</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">servlet</span></em><em><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">（</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">authorization</span></em><em><span style="font-size:10.0pt;font-family:宋体;color:#2A00FF;">）的解密</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;"> </span></em></p>  <p align="left"><em>&nbsp;</em></p>  <p align="left"><strong><span style="font-size:10.0pt; font-family:Consolas;color:#7F0055;">public</span></strong> <strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">class</span></strong><span style="font-size: 10pt; font-family: Consolas;"> Authorization </span><strong><span style="font-size:10.0pt;font-family: Consolas;color:#7F0055;">extends</span></strong><span style="font-size: 10pt; font-family: Consolas;"> HttpServlet {</span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">protected</span></strong> <strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">void</span></strong><span style="font-size: 10pt; font-family: Consolas;"> doGet(HttpServletRequest httpServletRequest,</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletResponse httpServletResponse) </span><strong><span style="font-size:10.0pt; font-family:Consolas;color:#7F0055;">throws</span></strong><span style="font-size: 10pt; font-family: Consolas;"> ServletException,</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IOException {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p align="left" style="text-indent: 5pt;"><span style="font-size: 10pt; font-family: Consolas;">PrintWriter out = httpServletResponse.getWriter();</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; KeyPair keys = (KeyPair) httpServletRequest.getSession().getAttribute(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"keys"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String encrypted = httpServletRequest.getParameter(</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">"epCryption"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String client_id = </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">null</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; String redirect_uri = </span><strong><span style="font-size:10.0pt;font-family: Consolas;color:#7F0055;">null</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; String loginid = </span><strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">null</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; String password = </span><strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">null</span></strong><span style="font-size: 10pt; font-family: Consolas;">;</span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055;">try</span></strong><span style="font-size: 10pt; font-family: Consolas;"> {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String data = JCryptionUtil.<em>decrypt</em>(encrypted, keys);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpServletRequest.getSession().removeAttribute(</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"keys"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Map</u> params = JCryptionUtil.<em>parse</em>(data, </span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">"UTF-8"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client_id = (String) params.get(</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">"client_id"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirect_uri = (String) params.get(</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">"redirect_uri"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loginid = (String) params.get(</span><span style="font-size:10.0pt; font-family:Consolas;color:#2A00FF;">"loginid"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background:yellow;">password</span> = (String) params.get(</span><span style="font-size:10.0pt;font-family:Consolas; color:#2A00FF;">"password"</span><span style="font-size: 10pt; font-family: Consolas;">);</span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </span><strong><span style="font-size:10.0pt;font-family:Consolas; color:#7F0055;">catch</span></strong><span style="font-size: 10pt; font-family: Consolas;"> (Throwable e) {</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.<u>printStackTrace</u>();</span></p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p align="left" style="text-indent: 15pt;"><span style="font-size: 10pt; font-family: Consolas;">}</span></p>  <p align="left">&nbsp;</p>  <p align="left"><span style="font-size: 10pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp; }</span></p>  <p><em>&nbsp;</em></p>  <p><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">上面至少片段，需要相关的</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">js</span></em><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">和</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">java</span></em><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">问题，请在</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">svn</span></em><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">上面获取。另外还需要</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;">bcprov-jdk15-1.46.jar</span></em></p>  <p><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">可以在</span></em><em><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF;"><a href="http://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15/1.46">http://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15/1.46</a></span></em></p>  <p><em><span style="font-size:10.0pt;font-family:宋体; color:#2A00FF;">获取。</span></em><em></em></p>  <p><em>&nbsp;</em></p>  <p style="margin-left:18.0pt"><em>&nbsp;</em></p>  <p>&nbsp;</p>  <p>&nbsp;</p><div style="display: inline-block;">
<div></div>
</div><img src ="http://www.blogjava.net/linugb118/aggbug/413459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2014-05-09 10:07 <a href="http://www.blogjava.net/linugb118/archive/2014/05/09/413459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cas3  设置独立登录页面</title><link>http://www.blogjava.net/linugb118/archive/2013/05/28/399886.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Tue, 28 May 2013 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2013/05/28/399886.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/399886.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2013/05/28/399886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/399886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/399886.html</trackback:ping><description><![CDATA[<div>在使用cas3的时候，往往有这样的需求，希望每个应用有个独立的登录页面</div><div>这块cas 官方文档有一些说明</div><div>https://wiki.jasig.org/display/CAS/Using+CAS+without+the+Login+Screen</div><div></div><div>首先从官方的角度，不建议使用多个登录页面，这样对安全会形成短板。但是</div><div>用户需求之上，如果我们要实现，有下面几种方式</div><div>1.通过参数来判断css来改变布局甚至一些图片，典型cas里面的default-view中</div><div>casLoginView.jsp 里面就有这样的描述，通过描述可以看出他通过不同css来区分</div><div>weblogin和mobilelogin。</div><div>比如片段</div><div>&lt;c:if</div><div><span style="white-space:pre">	</span>test="${not empty requestScope['isMobile'] and not empty mobileCss}"&gt;</div><div><span style="white-space:pre">	</span>&lt;meta name="viewport"</div><div><span style="white-space:pre">		</span>content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /&gt;</div><div><span style="white-space:pre">	</span>&lt;meta name="apple-mobile-web-app-capable" content="yes" /&gt;</div><div><span style="white-space:pre">	</span>&lt;meta name="apple-mobile-web-app-status-bar-style" content="black" /&gt;</div><div><span style="white-space:pre">	</span>&lt;!--&lt;link type="text/css" rel="stylesheet" media="screen" href="&lt;c:url value="/css/fss-framework-1.1.2.css" /&gt;" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;link type="text/css" rel="stylesheet" href="&lt;c:url value="/css/fss-mobile-${requestScope['browserType']}-layout.css" /&gt;" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;link type="text/css" rel="stylesheet" href="${mobileCss}" /&gt;--&gt;</div><div>&lt;/c:if&gt;</div><div></div><div>2.cas服务端(或者各种应用中)建立一个独立的form页面</div><div>参考：https://wiki.jasig.org/display/CAS/Using+CAS+from+external+link+or+custom+external+form</div><div>比如：</div><div>在cas(或者各种的应用页面) web-inf/ 页面添加testlogin.html</div><div>代码：</div><div>&lt;html&gt;</div><div>&lt;head /&gt;</div><div>&lt;body&gt;</div><div>&nbsp; &nbsp; &lt;form method="GET" action="http://192.168.2.109:8080/cas/login"&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;Username : &lt;input type="text" name="username" /&gt;&lt;/p&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;Password : &lt;input type="password" name="password" /&gt;&lt;/p&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;Remember me : &lt;input type="checkbox" name="rememberMe" value="true" /&gt;&lt;/p&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;&lt;input type="submit" value="Login !" /&gt;&lt;/p&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="auto" value="true" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="service" value="http://localhost/user/checklogintocas.php" /&gt;</div><div>&nbsp; &nbsp; &lt;/form&gt;</div><div>&lt;/body&gt;</div><div>&lt;/html&gt;</div><div></div><div>casLoginView.jsp</div><div>实现自动提交功能：</div><div>...</div><div>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</div><div>&lt;%</div><div>String auto = request.getParameter("auto");</div><div>if (auto != null &amp;&amp; auto.equals("true")) {</div><div>%&gt;</div><div>&lt;html&gt;</div><div>&nbsp; &nbsp; &lt;head&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;script language="javascript"&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function doAutoLogin() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.forms[0].submit();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/script&gt;</div><div>&nbsp; &nbsp; &lt;/head&gt;</div><div>&nbsp; &nbsp; &lt;body onload="doAutoLogin();"&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;form id="credentials" method="POST" action="&lt;%= request.getContextPath() %&gt;/login?service=&lt;%= request.getParameter("service") %&gt;"&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="lt" value="${loginTicket}" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="execution" value="${flowExecutionKey}" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="_eventId" value="submit" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="username" value="&lt;%= request.getParameter("username") %&gt;" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="password" value="&lt;%= request.getParameter("password") %&gt;" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;% if ("true".equals(request.getParameter("rememberMe"))) {%&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="rememberMe" value="true" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;% } %&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="submit" value="Submit" style="visibility: hidden;" /&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/form&gt;</div><div>&nbsp; &nbsp; &lt;/body&gt;</div><div>&lt;/html&gt;</div><div>&lt;%</div><div>} else {</div><div>%&gt;</div><div>&lt;jsp:directive.include file="includes/top.jsp" /&gt;</div><div>...</div><div>&lt;jsp:directive.include file="includes/bottom.jsp" /&gt;</div><div>&lt;%</div><div>}</div><div>%&gt;<br /><br />3.第三种方法 其实是第二种方法的启发，直接把用if-else 把多个页面组合在一起，通过参数来判断显示。（最好能可以支持多套casLoginView.jsp 不过研究下来好像比较难，也许cas开发者也是为了怕再次开放的人用太多灵活的多套casLoginView.jsp 页面跳来跳去把项目搞混吧。）</div><div></div><img src ="http://www.blogjava.net/linugb118/aggbug/399886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2013-05-28 17:12 <a href="http://www.blogjava.net/linugb118/archive/2013/05/28/399886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php的memcached客户端memcached</title><link>http://www.blogjava.net/linugb118/archive/2013/03/22/396853.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Fri, 22 Mar 2013 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2013/03/22/396853.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/396853.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2013/03/22/396853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/396853.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/396853.html</trackback:ping><description><![CDATA[<div style="background-image: url(http://www.9enjoy.com/template/mozine/images/title-bg.gif); background-color: #ffffff; font-size: 16px; padding-top: 2px; height: 23px; margin-left: 7px; font-family: Tahoma, Arial; line-height: normal; background-repeat: no-repeat no-repeat;"><h4>【转】<a href="http://www.9enjoy.com/php-memcached/" style="text-decoration: none; color: #000000;">php的memcached客户端memcached</a></h4><div style="color: #979797; float: left; padding: 3px; font-size: 12px;"></div><div style="float: right; padding-top: 1px; padding-bottom: 1px; font-size: 12px; color: #cccccc;">Tags:&nbsp;<a href="http://www.9enjoy.com/tags/memcached/" title="Tags:  memcached" rel="tag" style="text-decoration: none; color: #cccccc;">memcached</a>&nbsp;,&nbsp;<a href="http://www.9enjoy.com/tags/php/" title="Tags:  php" rel="tag" style="text-decoration: none; color: #cccccc;">php</a>&nbsp;,&nbsp;<a href="http://www.9enjoy.com/tags/memcache/" title="Tags:  memcache" rel="tag" style="text-decoration: none; color: #cccccc;">memcache</a></div></div><div id="zoomtext" style="clear: both; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; word-wrap: break-word; line-height: 19px; padding: 10px; font-size: 12px; background-color: #ffffff;"><div style="margin-bottom: 8px;">文章作者：<a href="http://www.9enjoy.com/" style="text-decoration: none; color: #557700;">Enjoy</a>&nbsp;转载请注明原文链接。</div><div style="float: right; width: 260px; height: 260px;"></div>之前在<a href="http://www.9enjoy.com/post/344/" target="_blank" style="text-decoration: none; color: #557700;">安装memcache</a>时有提到memcached客户端是叫memcache，其实还有一个基于libmemcached的客户端叫memcached，据说性能更好，功能也更多。<br /><br />memcache的官方主页：<a href="http://pecl.php.net/package/memcache" target="_blank" style="text-decoration: none; color: #557700;">http://pecl.php.net/package/memcache</a><br />memcached的官方主页：<a href="http://pecl.php.net/package/memcached" target="_blank" style="text-decoration: none; color: #557700;">http://pecl.php.net/package/memcached</a><br /><br />以下是我安装Memcached版本的PHP模块的过程记录：<br /><br />wget<a href="http://download.tangent.org/libmemcached-0.48.tar.gz" target="_blank" style="text-decoration: none; color: #557700;">http://download.tangent.org/libmemcached-0.48.tar.gz</a><br />tar zxf libmemcached-0.48.tar.gz<br />cd libmemcached-0.48<br />./configure --prefix=/usr/local/libmemcached --with-memcached<br />make<br />make install<br /><br />wget&nbsp;<a href="http://pecl.php.net/get/memcached-1.0.2.tgz" target="_blank" style="text-decoration: none; color: #557700;">http://pecl.php.net/get/memcached-1.0.2.tgz</a><br />tar zxf memcached-1.0.2.tgz<br />cd memcached-1.0.2<br />/usr/local/webserver/php/bin/phpize&nbsp;<br />./configure --enable-memcached --with-php-config=/usr/local/webserver/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached<br />make<br />make install<br /><br />在php.ini中加入<br />extension=memcached.so<br />完成<a name="entrymore" style="color: rgb(85, 119, 0); width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><br /><br />另：<br />在安装libmemcached时，如果只用./configure，可能会提示：<br />checking for memcached&#8230; no<br />configure: error: &#8220;could not find memcached binary&#8221;<br /><br />两者使用起来几乎一模一样。<div style="border-left-width: 3px; border-left-style: solid; border-left-color: #e3e3e3; background-color: #f6f6f6; color: #666666; margin: 5px; padding: 10px;"><br />&nbsp;&nbsp;&nbsp;&nbsp;$mem = new Memcache;<br />&nbsp;&nbsp;&nbsp;&nbsp;$mem-&gt;addServer($memcachehost, '11211');&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;$mem-&gt;addServer($memcachehost, '11212');<br />&nbsp;&nbsp;&nbsp;&nbsp;$mem-&gt;set('hx','9enjoy');<br />&nbsp;&nbsp;&nbsp;&nbsp;echo $mem-&gt;get('hx');</div><br /><div style="border-left-width: 3px; border-left-style: solid; border-left-color: #e3e3e3; background-color: #f6f6f6; color: #666666; margin: 5px; padding: 10px;"><br />&nbsp;&nbsp;&nbsp;&nbsp;$md = new Memcached;<br />&nbsp;&nbsp;&nbsp;&nbsp;$servers = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array($memcachehost, '11211'),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array($memcachehost, '11212')<br />&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;$md-&gt;addServers($servers);<br />&nbsp;&nbsp;&nbsp;&nbsp;$md-&gt;set('hx','9enjoy');<br />&nbsp;&nbsp;&nbsp;&nbsp;echo $md-&gt;get('hx');</div><br /><br />memcached的方法比memcache多不少，比如getMulti，getByKey，addServers等。<br />memcached没有memcache的connect方法，目前也还不支持长连接。<br />memcached 支持 Binary Protocol，而 memcache 不支持，意味着 memcached 会有更高的性能。<br />Memcache是原生实现的，支持OO和非OO两套接口并存，memcached是使用libmemcached，只支持OO接口。<br />更详细的区别：<a href="http://code.google.com/p/memcached/wiki/PHPClientComparison" target="_blank" style="text-decoration: none; color: #557700;">http://code.google.com/p/memcached/wiki/PHPClientComparison</a><br /><br /><br />memcached服务端是集中式的缓存系统，分布式实现方法是由客户端决定的。<br />memcached的分布算法一般有两种选择：<br />1、根据hash(key)的结果，模连接数的余数决定存储到哪个节点，也就是hash(key)% sessions.size()，这个算法简单快速，表现良好。然而这个算法有个缺点，就是在memcached节点增加或者删除的时候，原有的缓存数据将大规模失效，命中率大受影响，如果节点数多，缓存数据多，重建缓存的代价太高，因此有了第二个算法。<br />2、Consistent Hashing，一致性哈希算法，他的查找节点过程如下：<br />&nbsp;&nbsp;&nbsp;&nbsp;首先求出memcached服务器（节点）的哈希值，并将其配置到0～232的圆（continuum）上。然后用同样的方法求出存储数据的键的哈希值，并映射到圆上。然后从数据映射到的位置开始顺时针查找，将数据保存到找到的第一个服务器上。如果超过2的32次方后仍然找不到服务器，就会保存到第一台memcached服务器上。<br /><br />memcache在没有任何配置的情况下，是使用第一种方法。memcached要实现第一种方法，似乎是使用(未确认)：<br />$md-&gt;setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);&nbsp;&nbsp;&nbsp;<br /><br />第二种一致性哈希算法：<br /><br />memcache在php.ini中加<br /><div style="border-left-width: 3px; border-left-style: solid; border-left-color: #e3e3e3; background-color: #f6f6f6; color: #666666; margin: 5px; padding: 10px;">Memcache.hash_strategy =consistent<br />Memcache.hash_function =crc32</div><br /><br />memcached在程序中加(未确认)<br /><div style="border-left-width: 3px; border-left-style: solid; border-left-color: #e3e3e3; background-color: #f6f6f6; color: #666666; margin: 5px; padding: 10px;">$md-&gt;setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);<br />$md-&gt;setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);&nbsp;&nbsp;&nbsp;<br />或<br />$mem-&gt;setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);<br />$mem-&gt;setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);</div><br />一些参考文档:<br />memcached分布测试报告（一致性哈希情况下的散列函数选择）：<a href="http://www.iteye.com/topic/346682" target="_blank" style="text-decoration: none; color: #557700;">http://www.iteye.com/topic/346682</a><br />php模块memcache和memcached区别：<a href="http://hi.baidu.com/dong_love_yan/blog/item/afbe1e12d22e7512203f2e21.html" target="_blank" style="text-decoration: none; color: #557700;">http://hi.baidu.com/dong_love_yan/blog/item/afbe1e12d22e7512203f2e21.html</a><br />PHP模块：Memcached &gt; Memcache：<a href="http://hi.baidu.com/thinkinginlamp/blog/item/717cd42a11f6e491023bf67a.html" target="_blank" style="text-decoration: none; color: #557700;">http://hi.baidu.com/thinkinginlamp/blog/item/717cd42a11f6e491023bf67a.html</a><br /><br /><br />20110509@@UPDATE：<br />如果安装libmemcached有如下出错提示：<br />make[2]: *** [clients/ms_conn.o] Error 1<br />make[2]: Leaving directory `/www/soft/libmemcached-0.48'<br />make[1]: *** [all-recursive] Error 1<br />make[1]: Leaving directory `/www/soft/libmemcached-0.48'<br />make: *** [all] Error 2<br /><br />可在configure时增加--disable-64bit CFLAGS="-O3 -march=i686"<br />即：./configure --prefix=/usr/local/libmemcached --with-memcached --disable-64bit CFLAGS="-O3 -march=i686"</div><img src ="http://www.blogjava.net/linugb118/aggbug/396853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2013-03-22 14:19 <a href="http://www.blogjava.net/linugb118/archive/2013/03/22/396853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>绿色mysql安装问题</title><link>http://www.blogjava.net/linugb118/archive/2013/03/21/396790.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Thu, 21 Mar 2013 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2013/03/21/396790.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/396790.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2013/03/21/396790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/396790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/396790.html</trackback:ping><description><![CDATA[1. windows里面出现&#8220;拒绝访问&#8221;， 那需要通过管理员身份运行cmd<br /><br />2. 安装服务时候指定的ini路径需要注意，应该指定你现在mysql目录现有的ini文件<br /><span style="color: #ff0000; font-family: Verdana; line-height: 25px; background-color: #dddddd;">如mysqld --install mysql --defaults-file="C:\MySQL5\my.ini"</span><br /><br /><br /><br /><img src ="http://www.blogjava.net/linugb118/aggbug/396790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2013-03-21 10:36 <a href="http://www.blogjava.net/linugb118/archive/2013/03/21/396790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mulestudio 运行demo出错</title><link>http://www.blogjava.net/linugb118/archive/2012/10/18/389833.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Thu, 18 Oct 2012 09:22:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2012/10/18/389833.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/389833.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2012/10/18/389833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/389833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/389833.html</trackback:ping><description><![CDATA[<span style="color: red; ">现象：</span><br />&nbsp;执行demo，比如helloexample ，点击&#8220;run as mule application&#8221;，弹出框&#8220;Could not find the main class.Program will exit&#8221;<br />控制台出现：<br /><div>java.lang.NoClassDefFoundError: org/mule/tooling/server/application/ApplicationDeployer</div><div>Exception in thread "main"&nbsp;</div><br /><span style="color: red; ">解决方法：</span><br />&nbsp;是因为jdk 有问题，在mule官网上要求<br /><p style="font-size: 13.63636302947998px; line-height: 22.393938064575195px; color: #292929; font-family: Helvetica; margin: 10px 0px 16px; padding: 0px; background-color: #ffffff; ">Before installing Mule Studio, ensure that the host machine has one of the following Java Development Kit versions installed on it:</p><ul style="margin: 16px 0px; padding: 0px 3em; line-height: 16px; font-size: 11px; font-family: Helvetica, Arial, sans-serif; background-color: #ffffff; "><li style="line-height: 1.6em; font-size: 14px; margin: 0px; padding: 0px; ">Standard Edition 1.6.0_26 (also known as JDK SE 6 Update 26) or more recent</li><li style="line-height: 1.6em; font-size: 14px; margin: 0px; padding: 0px; ">Enterprise Edition 1.6u3 (JDK EE 6 Update 3) or more recent</li><li style="line-height: 1.6em; font-size: 14px; margin: 0px; padding: 0px; ">Any version (SE or EE) of JDK 7<br />在java build path--》libraries 选择jre system library 为jdk1.7就可以。</li></ul><img src ="http://www.blogjava.net/linugb118/aggbug/389833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2012-10-18 17:22 <a href="http://www.blogjava.net/linugb118/archive/2012/10/18/389833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始serviceMix </title><link>http://www.blogjava.net/linugb118/archive/2012/06/11/380512.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Mon, 11 Jun 2012 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2012/06/11/380512.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/380512.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2012/06/11/380512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/380512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/380512.html</trackback:ping><description><![CDATA[<p style="margin-left:18.0pt;text-indent:-18.0pt;">1.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span>serviceMix <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">特点：</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">支持的协议有：</span></p>  <p style="margin-left:18.0pt">File<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>FTP<span style="font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>Http/s<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>jms<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>smtp<span style="font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>soap<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>tcp<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>xmpp</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">与其他引擎的支持：</span></p>  <p style="margin-left:18.0pt">Apache Camel<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>apache cxf<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>apache ode<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>drools<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>os workflow<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>pojos<span style="font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>quartz<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>scripting<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>saxon Xquery and xslt<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span>ws-notification</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">支持的安全：</span></p>  <p style="margin-left:18.0pt">JAAS,WS-Security</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">与</span>web <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">容器的集成</span></p>  <p style="margin-left:18.0pt">JBoss,Geronimo,jetty,tomcat,weblogic,websphere</p>  <p>&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">2.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span>eclipse IDE tooling for serviceMix</p>  <p style="margin-left:18.0pt"><a href="http://eclipse.org/stp">http://eclipse.org/stp</a></p>  <p style="margin-left:18.0pt"><a href="http://spagic.com/">http://spagic.com</a></p>  <p style="margin-left:18.0pt"><a href="http://sopera.de/en/products/sopera-servicemixtools">http://sopera.de/en/products/sopera-servicemixtools</a></p>  <p>&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">3.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">安装：</span></p>  <ol style="margin-top:0cm" start="1" type="A">  <li><span style="font-family:      宋体;Times New Roman&quot;;Times New Roman&quot;">官方下载</span><a href="http://servicemix.apache.org/downloads.html">http://servicemix.apache.org/downloads.html</a>.<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">并解压</span></li>  <li><span style="font-family:      宋体;Times New Roman&quot;;Times New Roman&quot;">进入</span>bin<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录执行</span>servicemix.bat<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">或者</span>shell script</li>  <li>Sericemix<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">是</span>osgi<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">结构的，</span></li> </ol>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>osgi:list <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">命令可以查看所有有效的</span>osgi bundles</p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>osgi:list | grep camel <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">命令</span> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">查看</span>camel<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">相关的</span>bundles</p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>log:display<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">命令</span> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来显示日志</span></p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>log:display-exception&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">显示最近的异常日志</span></p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>log:set DEBUG&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">设置日志的级别</span></p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>log:display | grep DEBUG <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">显示只是</span>debug<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">级别的日志</span></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>features:list <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来查看所有的特性，并从而可以分析当前特性是否安装</span></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">若没有安装</span> <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">可以通过</span> features:install<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来安装，比如：</span>features:install webconsole</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">4.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">与</span>Camel <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">集成</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">先查看是否存在</span>camel<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">相关</span>features,<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">没有则按照相应的</span>bundles</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">接下来我们做一个例子：分别设置两个目录</span>input<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">和</span>output<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">，在</span>input<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">放入文件后则被传送到</span>output<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">中。而这个过程就是通过</span>serviceMix<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">调用</span>camel router<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来完成</span></p>  <ol style="margin-top:0cm" start="1" type="A">  <li>Blueprint      xml file</li> </ol>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">下面是一个配置的</span>router<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">文件描述，你可以通过自己写文件，当然最好还是用可视化工具</span>,<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">后面我们再花时间聊聊这东东，这个时候就绕不开</span>Enterprise Integration pattern <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">又是标准，老外厉害。</span></p>  <p style="margin-left:36.0pt">&nbsp;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">我们这里直接先贴上文件</span>:</p>  <p style="margin-left:36.0pt">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>  <p style="margin-left:36.0pt">&lt;blueprint</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"&gt;</p>  <p style="margin-left:36.0pt">&nbsp;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; &lt;camelContext xmlns="http://camel.apache.org/schema/blueprint"&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;route&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from uri="file:bgao/input" /&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;log message="happy day!!!" /&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to uri="file:bgao/output" /&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/route&gt;</p>  <p style="margin-left:36.0pt">&nbsp;&nbsp;&nbsp; &lt;/camelContext&gt;</p>  <p style="margin-left:36.0pt">&lt;/blueprint&gt;</p>  <p style="margin-left:36.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">并命名为</span>firstCamelRouter.xml</p>  <p style="margin-left:36.0pt">&nbsp;</p>  <ol style="margin-top:0cm" start="2" type="A">  <li><span style="font-family:      宋体;Times New Roman&quot;;Times New Roman&quot;">配置到</span>serviceMix</li> </ol>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">将文件放入到</span>serviceMix<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的</span>deploy<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">中，这个时候后再</span>serviceMix<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录下发现</span>bgao<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的目录并下面有个</span>input<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">文件夹，这时候如果在</span>input<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">文件夹放入一个文件，这</span>bgao<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录下会出现</span>output<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录并且将</span>input<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录的文件移到</span>output<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">上。通过</span>log:display &nbsp;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">可以查看到当前这个动作的日志。</span></p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过</span>karaf@root&gt; osgi:list | grep xml</p>  <p style="margin-left:18.0pt">[&nbsp; 43] [Active&nbsp;&nbsp;&nbsp;&nbsp; ] [GracePeriod ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp; 60] activemq-broker.xml (0.0.0</p>  <p style="margin-left:18.0pt">)</p>  <p style="margin-left:18.0pt">[ 129] [Active&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp; 60] Apache ServiceMix :: Bundl</p>  <p style="margin-left:18.0pt">es :: xmlsec (1.4.5.1)</p>  <p style="margin-left:18.0pt">[ 138] [Active&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp; 60] Apache ServiceMix :: Bundl</p>  <p style="margin-left:18.0pt">es :: xmlbeans (2.4.0.4)</p>  <p style="margin-left:18.0pt">[ 142] [Active&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp; 60] Apache ServiceMix :: Bundl</p>  <p style="margin-left:18.0pt">es :: xmlresolver (1.2.0.3)</p>  <p style="margin-left:18.0pt">[ 163] [Active&nbsp;&nbsp;&nbsp;&nbsp; ] [Created&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] [&nbsp;&nbsp; 60] firstCamelRouter.xml (0.0.</p>  <p style="margin-left:18.0pt">0)</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">得到当前</span>ID<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">为</span>163<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；通过</span>osgi:stop 163<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">或者</span>&nbsp; osgi:start 163 <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来启动或者关闭当前</span>bundle</p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">5.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">与</span>ActiveMQ<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">集成</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">先查看是否存在</span>camel<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">相关</span>features, <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">没有则按照相应的</span>bundles</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">我们做一个例子：</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">对两个文件进行文件移动，同时对</span>MQ<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">队列产生一个</span>event <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">消息并捕获消息打出到日志。</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">第一个文件：</span>firstMq.xml</p>  <p style="margin-left:18.0pt">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>  <p style="margin-left:18.0pt">&lt;blueprint</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"&gt;</p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; &lt;camelContext xmlns="http://camel.apache.org/schema/blueprint"&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;route&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from uri="file:bgao/mq/input" /&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to uri="file:bgao/mq/output" /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;setBody&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;simple&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File Move Event (${file:name},${date:now:hh:MM:ss.SSS})</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/simple&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/setBody&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to uri="activemq://event" /&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/route&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; &lt;/camelContext&gt;</p>  <p style="margin-left:18.0pt">&lt;/blueprint&gt;</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">这时候，文件已经移到</span>output<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">，现在是</span>event message<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">都在队列里面，但还没有人去处理他，现在通过</span>secondeMq<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">里处理她。</span></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">设置第二个文件</span> secondMq.xml <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">放入</span>deloy<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">文件夹中</span></p>  <p style="margin-left:18.0pt">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>  <p style="margin-left:18.0pt">&lt;blueprint</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"&gt;</p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; &lt;camelContext xmlns="http://camel.apache.org/schema/blueprint"&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;route&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from uri="activemq://event" /&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from uri="file:bgao/mq/input" /&gt;</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to uri="log:events" /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/route&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp; &lt;/camelContext&gt;</p>  <p style="margin-left:18.0pt">&lt;/blueprint&gt;</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">启动当前这个</span>bundle <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">然后打日志就发现有</span></p>  <p style="margin-left:18.0pt">2012-06-11 16:01:43,751 | INFO&nbsp; | sConsumer[event] | events</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ? | 91 - org.apache.camel.camel-core</p>  <p style="margin-left:18.0pt">&nbsp;- 2.8.4 | Exchange[ExchangePattern:InOnly, BodyType:String, Body:</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File Move Event (address list20120130.xls,04:06:08.272)</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]</p>  <p style="margin-left:18.0pt">2012-06-11 16:01:43,751 | INFO&nbsp; | sConsumer[event] | events</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ? | 91 - org.apache.camel.camel-core</p>  <p style="margin-left:18.0pt">&nbsp;- 2.8.4 | Exchange[ExchangePattern:InOnly, BodyType:String, Body:</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File Move Event (jms-1_1-fr-spec.pdf,04:06:08.469)</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]</p>  <p style="margin-left:18.0pt">2012-06-11 16:01:43,752 | INFO&nbsp; | sConsumer[event] | events</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ? | 91 - org.apache.camel.camel-core</p>  <p style="margin-left:18.0pt">&nbsp;- 2.8.4 | Exchange[ExchangePattern:InOnly, BodyType:String, Body:</p>  <p style="margin-left:18.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File Move Event (<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">新建文本文档</span> (3).txt,04:06:08.765)</p>  <p>&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;">6.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; </span>Webconsole</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">通过安装</span>features:install webconsole<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">后，可以通过访问</span><a href="http://localhost:8181/system/console">http://localhost:8181/system/console</a></p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">用户名：</span>smx</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">密码：</span>smx</p>  <p style="margin-left:18.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">当前</span>webconsole <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">是</span>karaf<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">框架提供的一个</span>web<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">页面系统。</span></p><img src ="http://www.blogjava.net/linugb118/aggbug/380512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2012-06-11 17:10 <a href="http://www.blogjava.net/linugb118/archive/2012/06/11/380512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为weblogic配置maven插件</title><link>http://www.blogjava.net/linugb118/archive/2012/06/04/379908.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Mon, 04 Jun 2012 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2012/06/04/379908.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/379908.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2012/06/04/379908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/379908.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/379908.html</trackback:ping><description><![CDATA[<div>从weblogic 10.3.4开始支持maven deploy部署</div><div></div><div>步骤如下：</div><div>1.构建weblogic-maven-plugin jar</div><div>在D:\oracle\Middleware\wlserver_12.1\server\lib</div><div>找到 WebLogic JarBuilder Tool (wljarbuilder)，执行：</div><div>java -jar wljarbuilder.jar -profile weblogic-maven-plugin</div><div></div><div>2.将weblogic-maven-plugin jar中的pom.xml 解压出放入到在</div><div>D:\oracle\Middleware\wlserver_12.1\server\lib</div><div>可以使用命令：</div><div>jar xvf D:/oracle/Middleware/wlserver_12.1/server/lib/weblogic-maven-plugin.jar&nbsp;</div><div>META-INF/maven/com.oracle.weblogic/weblogic-maven-plugin/pom.xml</div><div></div><div>cp D:/oracle/Middleware/wlserver_12.1/server/lib/META-INF/maven/com.oracle.weblogic/</div><div>weblogic-maven-plugin/pom.xml D:/oracle/Middleware/wlserver_12.1/server/lib</div><div></div><div>3.安装插件：</div><div>一种将weblogic-maven-plugin.jar 和pom.xml上传到nexus的第三方库中</div><div>另一种执行mvn install:install-file -Dfile=weblogic-maven-plugin.jar -DpomFile=pom.xml</div><div>进行安装。这个时候在你的本地仓库能到找.m2\repository\com\oracle\weblogic</div><div></div><div>4.在当前需要上传的应用的pom中配置weblogic的相关配置</div><div>比如：</div><div>&nbsp;&lt;!--auto deploy war to weblogic by maven--&gt;</div><div>&nbsp; &nbsp;</div><div>&nbsp; &nbsp;&lt;plugin&gt;&nbsp;</div><div><span style="white-space:pre">		</span> &nbsp;&lt;groupId&gt;com.oracle.weblogic&lt;/groupId&gt;</div><div><span style="white-space:pre">		</span> &nbsp;&lt;artifactId&gt;weblogic-maven-plugin&lt;/artifactId&gt;</div><div><span style="white-space:pre">		</span> &nbsp;&lt;version&gt;10.3.6.0&lt;/version&gt;</div><div></div><div>&nbsp; &nbsp; &nbsp; &lt;configuration&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;adminurl&gt;t3://192.168.2.141:9001&lt;/adminurl&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;user&gt;weblogic&lt;/user&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;password&gt;123456&lt;/password&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;upload&gt;true&lt;/upload&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;action&gt;deploy&lt;/action&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;remote&gt;false&lt;/remote&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;verbose&gt;true&lt;/verbose&gt;&nbsp;</div><div><span style="white-space:pre">		</span>&lt;source&gt;target/demo.war&lt;/source&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;name&gt;demo&lt;/name&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &lt;/configuration&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &lt;!--&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &lt;executions&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;execution&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;phase&gt;install&lt;/phase&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;goals&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;goal&gt;deploy&lt;/goal&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/goals&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/execution&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&lt;/executions&gt;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp;--&gt;&nbsp;</div><div>&nbsp; &lt;/plugin&gt;&nbsp;</div><div>&nbsp; &nbsp;&lt;!-- end--&gt;</div><div>先打包生成demo.war,然后执行&gt;mvn com.oracle.weblogic:weblogic-maven-plugin:deploy</div><div>主要官方提供的命令是：mvn weblogic:deploy; 其实你敲这个命令你会发现，他用的不是oracle的plugin</div><div>而是用的 org.codehaus.mojo的</div><div>此外如果需要提前命令，可以用help来查看，查看结果：</div><div>『</div><div>---</div><div>The following are the goals available currently in Maven</div><div>deploy</div><div>list-apps</div><div>redeploy</div><div>start-app</div><div>stop-app</div><div>undeploy</div><div>update-app</div><div>』</div><div></div><div>执行成功后，回到weblogic的console台，你能发现你的war包，同时可以访问看是否部署成功。</div><div>如果想直接一个命令部署怎么办？ 直接在mvn命令后面加上package</div><div>mvn package com.oracle.weblogic:weblogic-maven-plugin:deploy</div><div>但是他报错：</div><div>[INFO] ------------------------------------------------------------------------</div><div>[ERROR] Failed to execute goal com.oracle.weblogic:weblogic-maven-plugin:10.3.6.</div><div>0:deploy (default-cli) on project ep-easyui-webapp: weblogic.deploy.api.tools.de</div><div>ployer.DeployerException: Java heap space -&gt; [Help 1]</div><div>[ERROR]</div><div>原因是jdk 内存不够</div><div>为mvn设置内存，在maven.bat上加上</div><div>set MAVEN_OPTS=-Xdebug -Xnoagent -Xms256m -Xmx512m -Djava.compiler=NONE</div><div>这句话本身是@rem有。</div><div>然后直接</div><div>mvn package com.oracle.weblogic:weblogic-maven-plugin:deploy</div><div>就是能成功。</div><div></div><div>参考文献：</div><div>http://docs.oracle.com/cd/E24329_01/web.1211/e24443/maven_deployer.htm</div><div></div><div>主要10.3以后好像才有这个支持，另外12g和11g也有区别。</div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><img src ="http://www.blogjava.net/linugb118/aggbug/379908.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2012-06-04 11:14 <a href="http://www.blogjava.net/linugb118/archive/2012/06/04/379908.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mvn 打包问题2</title><link>http://www.blogjava.net/linugb118/archive/2012/05/09/377675.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Wed, 09 May 2012 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2012/05/09/377675.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/377675.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2012/05/09/377675.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/377675.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/377675.html</trackback:ping><description><![CDATA[<div>调试maven时候，报错</div><div></div><div>[INFO] ------------------------------------------------------------------------</div><div>[ERROR] Failed to execute goal on project ep-easyui-webapp: Could not resolve de</div><div>pendencies for project ep-easyui-webapp:ep-easyui-webapp:war:1.0-SNAPSHOT: The f</div><div>ollowing artifacts could not be resolved: javax.persistence:ejb:jar:3.0-public_r</div><div>eview, maven-plugins:maven-cobertura-plugin:plugin:1.3, maven-plugins:maven-find</div><div>bugs-plugin:plugin:1.3.1, persistence:persistence:jar:1: Failure to find javax.p</div><div>ersistence:ejb:jar:3.0-public_review in http://localhost:8081/nexus/content/grou</div><div>ps/EpPublic/ was cached in the local repository, resolution will not be reattemp</div><div>ted until the update interval of EpPublic has elapsed or updates are forced -&gt; [</div><div>Help 1]</div><div></div><div>我在pom.xml 文件中添加</div><div>&lt;dependency&gt;</div><div>&nbsp; &lt;groupId&gt;javax.persistence&lt;/groupId&gt;</div><div>&nbsp; &lt;artifactId&gt;ejb&lt;/artifactId&gt;</div><div>&nbsp; &lt;version&gt;3.0-public_review&lt;/version&gt;</div><div>&lt;/dependency&gt;</div><div></div><div>仍然抱这个错，解决方法</div><div>1) Manually install this artifact into your local repo cache</div><div>2) Add an excludes and a corresponding dependency so you get a proper artifact</div><div>3) Stop depending on outdated Hibernate artifacts, I'd suggest</div><div>upgrading to this one:</div><div>http://repo2.maven.org/maven2/org/hibernate/hibernate-annotations/3.4.0.GA/</div><div></div><div>改成&lt;dependency&gt;</div><div>&lt;groupId&gt;org.hibernate&lt;/groupId&gt;</div><div>&lt;artifactId&gt;hibernate-annotations&lt;/artifactId&gt;</div><div>&lt;version&gt;3.4.0.GA&lt;/version&gt;</div><div>&lt;/dependency&gt;</div><div>同时把</div><div>&lt;dependency&gt;</div><div>&nbsp; &lt;groupId&gt;javax.persistence&lt;/groupId&gt;</div><div>&nbsp; &lt;artifactId&gt;ejb&lt;/artifactId&gt;</div><div>&nbsp; &lt;version&gt;3.0-public_review&lt;/version&gt;</div><div>&lt;/dependency&gt;</div><div>去掉</div><img src ="http://www.blogjava.net/linugb118/aggbug/377675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2012-05-09 10:44 <a href="http://www.blogjava.net/linugb118/archive/2012/05/09/377675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mvn 打包问题</title><link>http://www.blogjava.net/linugb118/archive/2012/05/02/377162.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Wed, 02 May 2012 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2012/05/02/377162.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/377162.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2012/05/02/377162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/377162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/377162.html</trackback:ping><description><![CDATA[<p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">通过</span><span style="font-size:9.0pt;line-height:150%;">mvn</span><span style="font-size:9.0pt;line-height: 150%;font-family:宋体;">调用</span><span style="font-size:9.0pt;line-height:150%;">ant </span><span style="font-size:9.0pt;line-height: 150%;font-family:宋体;">的</span><span style="font-size:9.0pt;line-height:150%;">build.xml </span><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">文件</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Mvn </span><span style="font-size:9.0pt;line-height:150%;font-family: 宋体;">命令出错，出错信息：</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] ------------------------------------------------------------------------</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] BUILD FAILURE</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] ------------------------------------------------------------------------</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] Total time: 1.013s</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] Finished at: Wed May 02 13:36:28 CST 2012</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] Final Memory: 3M/7M</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[INFO] ------------------------------------------------------------------------</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">run (compile) on project ep-cas-client: An Ant BuildException has occured: The f</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">ollowing error occurred while executing this line:</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] E:\casClient\build.xml:28: Unable to find a javac compiler;</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] com.sun.tools.javac.Main is not on the classpath.</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] Perhaps JAVA_HOME does not point to the JDK.</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] It is currently set to "D:\Java\jdk1.6.0_01\jre"</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] -&gt; [Help 1]</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR]</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">ch.</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] Re-run Maven using the -X switch to enable full debug logging.</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR]</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] For more information about the errors and possible solutions, please rea</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">d the following articles:</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Xception</span></p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">而直接</span><span style="font-size:9.0pt;line-height:150%;"> echo&nbsp; %Java_Home%</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">得到：</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">D:\Java\jdk1.6.0_01</span></p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">再直接</span><span style="font-size:9.0pt;line-height:150%;">mvn &#8211;version</span><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">：</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Maven home: D:\Java\apache-maven-3.0.4</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Java version: 1.6.0_01, vendor: Sun Microsystems Inc.</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Java home: D:\Java\jdk1.6.0_01\jre</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">Default locale: zh_CN, platform encoding: GBK</span></p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt;line-height:150%;">OS name: "windows vista", version: "6.1", arch: "x86", family: "windows"</span></p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">发现</span> <span style="font-size:9.0pt;line-height:150%;font-family:宋体;">的确</span><span style="font-size: 9.0pt;line-height:150%;"> mvn </span><span style="font-size:9.0pt;line-height:150%;font-family:宋体;">指向的</span><span style="font-size: 9.0pt;line-height:150%;">java home </span><span style="font-size:9.0pt;line-height:150%;font-family:宋体;">是</span><span style="font-size: 9.0pt;line-height:150%;">D:\Java\jdk1.6.0_01\jre<br /></span></p>  <p style="margin-left:18.0pt"><span style="font-size: 9pt; line-height: 150%; font-family: 宋体; color: red; ">解决方法：</span></p>  <p style="margin-left:18.0pt">&nbsp;</p>  <p style="margin-left:18.0pt"><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">在</span><span style="font-size:9.0pt;line-height:150%;">build.xml </span><span style="font-size:9.0pt; line-height:150%;font-family:宋体;">文件中添加</span></p>  <p style="margin-left:18.0pt"><span style="font-size:8.5pt;line-height:150%;font-family:&quot;Courier New&quot;;color:#222222; background:#EEEEEE">&lt;property name="build.compiler" value="extJavac"/&gt;</span></p><img src ="http://www.blogjava.net/linugb118/aggbug/377162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2012-05-02 14:17 <a href="http://www.blogjava.net/linugb118/archive/2012/05/02/377162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>easiUi--datagrid中两项相加点击第三项 自动获取</title><link>http://www.blogjava.net/linugb118/archive/2011/11/09/363307.html</link><dc:creator>linugb118</dc:creator><author>linugb118</author><pubDate>Wed, 09 Nov 2011 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/linugb118/archive/2011/11/09/363307.html</guid><wfw:comment>http://www.blogjava.net/linugb118/comments/363307.html</wfw:comment><comments>http://www.blogjava.net/linugb118/archive/2011/11/09/363307.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linugb118/comments/commentRss/363307.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linugb118/services/trackbacks/363307.html</trackback:ping><description><![CDATA[<p align="center">&nbsp;</p>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a href="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</a>"&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&nbsp;&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;<br />&nbsp;&lt;title&gt;jQuery EasyUI&lt;/title&gt;<br />&nbsp;&lt;link rel="stylesheet" type="text/css" href="../themes/default/easyui.css"&gt;<br />&nbsp;&lt;link rel="stylesheet" type="text/css" href="../themes/icon.css"&gt;<br />&nbsp;&lt;script type="text/javascript" src="../jquery-1.4.4.min.js"&gt;&lt;/script&gt;<br />&nbsp;&lt;script type="text/javascript" src="../jquery.easyui.min.js"&gt;&lt;/script&gt;<br />&nbsp;&lt;script&gt;<br />&nbsp;&nbsp;var products = [<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'FI-SW-01',name:'Koi'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'K9-DL-01',name:'Dalmation'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'RP-SN-01',name:'Rattlesnake'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'RP-LI-02',name:'Iguana'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'FL-DSH-01',name:'Manx'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'FL-DLH-02',name:'Persian'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {productid:'AV-CB-01',name:'Amazon Parrot'}<br />&nbsp;&nbsp;];<br />&nbsp;&nbsp;function productFormatter(value){<br />&nbsp;&nbsp;&nbsp;for(var i=0; i&lt;products.length; i++){<br />&nbsp;&nbsp;&nbsp;&nbsp;if (products[i].productid == value) return products[i].name;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return value;<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;function getSum()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp; alert(33);<br />&nbsp;&nbsp;}&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;$(function () {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var lastIndex;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#tt').datagrid({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: 'webjson.ashx',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: 'Load Data ',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls: 'icon-save',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; singleSelect: true,&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loadMsg: '数据加载中请稍后&#8230;&#8230;', <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width: 600,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height: 300,&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; columns: [[<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'itemid', title: 'Item ID', width: 80 },<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'productid', title: 'Product ID', width: 100 },<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'listprice', title: 'List Price', width: 80, align: 'right', editor: "numberbox" }, //增加可编辑<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'unitcost', title: 'Unit Cost', width: 80, align: 'right', editor: "numberbox" },//增加可编辑<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'attr1', title: 'Attribute', width: 150, editor: "numberbox" },//这里虽为编辑类型，但是已经修改源码，成为不可以状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { field: 'status', title: 'Status', width: 60, align: 'center' }<br />&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; pageSize: 5,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageList:[5,10,20,30],<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pagination: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rownumbers: true ,<br />toolbar:[{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:'append',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iconCls:'icon-add',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler:function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('#tt').datagrid('endEdit', lastIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('#tt').datagrid('appendRow',{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itemid:'',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;productid:'',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listprice:'',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unitprice:'',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attr1:'',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status:'P'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var lastIndex = $('#tt').datagrid('getRows').length-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('#tt').datagrid('beginEdit', lastIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}],<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onClickRow: function (rowIndex) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lastIndex != rowIndex) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#tt').datagrid('endEdit', lastIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#tt').datagrid('beginEdit', rowIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setEditing(rowIndex);<br />&nbsp;&nbsp;&nbsp;//$('#tt').datagrid('refreshRow',rowIndex);</p>
<p>&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; lastIndex = rowIndex;<br />&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; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; <br />//具体实现方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function setEditing(rowIndex) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var editors = $('#tt').datagrid('getEditors', rowIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var priceEditor = editors[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var amountEditor = editors[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var sumcount = editors[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumcount.target.bind('click', function () {<br />&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; var sum = priceEditor.target.val()+amountEditor.target.val();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(sum);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumcount.target.val(sum);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;<br />&nbsp;&lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&nbsp;&lt;h1&gt;Editable DataGrid&lt;/h1&gt;<br />&nbsp;<br />&nbsp;&lt;table id="tt" style="width:650px;height:auto"<br />&nbsp;&nbsp;&nbsp;title="Editable DataGrid" iconCls="icon-edit" singleSelect="true"&gt;<br />&nbsp;&lt;/table&gt;<br />&nbsp;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>
<p align="center">&nbsp;</p><img src ="http://www.blogjava.net/linugb118/aggbug/363307.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linugb118/" target="_blank">linugb118</a> 2011-11-09 16:10 <a href="http://www.blogjava.net/linugb118/archive/2011/11/09/363307.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>