﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-在路上...-随笔分类-JAVA相关</title><link>http://www.blogjava.net/midea0978/category/3623.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Apr 2013 02:34:38 GMT</lastBuildDate><pubDate>Tue, 09 Apr 2013 02:34:38 GMT</pubDate><ttl>60</ttl><item><title>EAR文件结构</title><link>http://www.blogjava.net/midea0978/archive/2013/04/08/397531.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Mon, 08 Apr 2013 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2013/04/08/397531.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/397531.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2013/04/08/397531.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/397531.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/397531.html</trackback:ping><description><![CDATA[
<strong>1、打包文件命名规则</strong><br />
根据JavaEE规范，打包的EAR文件可以不适用部署描述符部署，因此需要使用一些默认的约定规则，例如<br />
&#8226;EJBs and client archives are packaged as .jar files.
<p>&#8226;Web applications are packaged as .war files.</p>
<p>&#8226;Resource adapters are packaged as .rar files.</p>
<p>&#8226;Enterprise applications are packaged as .ear files, and can contain other Java EE modules such as EJBs, JDBC, JMS, Web applications, and Resource Adapters.</p>
<p>&#8226;Web Services can be packaged either as .war files or as .jar files, depending on whether they are implemented using Java classes or EJBs. Typically, the .war or .jar files are then packaged in an Enterprise Application .ear file.</p>
<p>&#8226;Java EE libraries are packaged either as an Enterprise Application (.ear file) or as a standard Java EE module.</p>
<p>&#8226;Client applications and optional packages are packaged as .jar files.<br />
<strong>2、Java EE默认部署规则</strong><br />
通常EAR应用也可以使用开放式目录部署，此时也应该参考以上的规范配置相应的文件夹，例如<br />
war应用目录名必须为XX.war<br />
EAR==&gt;xx.ear&nbsp; <br />
RAR==&gt;XX.rar<br />
EJB==&gt;xx.jar<br /><br /><strong>3、Java EE标准的部署规则</strong><br />a． 应用包中所有扩展名是.war 的文件被看作是 web 模块。Web 模块的上下文根<br />的名字是相对于应用包根的名字，但要去掉.war 扩展名。<br />b． 应用包中所有扩展名是.rar 的文件都被看作是资源适配器。<br />c． 名字为 lib 的目录被看作是库目录，正如在节 8.2.1&#8220;捆绑的库&#8221;中所述。<br />d． 对于应用包中所有以扩展名是.jar 但不包含在 lib 目录内的文件来说，按下面 的方式来处理：<br />i.&nbsp;如果 JAR 文件中包含带有 Main&#8208;Class 属性的 META&#8208;INF/MANINFEST.MF 文件， 或者包含 META&#8208;INF/application&#8208;client.xml 文件，那么这个 JAR 文件被看作 是应用客户端模块。<br />ii.&nbsp;如果 JAR 文件包含 META&#8208;INF/ejb&#8208;jar.xml 文件，或者包含任何带有 EJB 组件 注释符（Stateless，等等）的类，那么这个 JAR 文件被看作是 EJB 模块。<br />iii.&nbsp;所有其他的 JAR 文件都被忽略，除非它被上面的 JAR 文件使用 JAR 文件引 用机制（如在 mainfest 文件中的 Class&#8208;Path 头<font face="Verdana">library-directory</font>）引用。<br /><br />在Jboss环境中，可以在application.xml中手工指定library-directory，例如：<br />&lt;library-directory&gt;APP-INF/lib&lt;/library-directory&gt;
<br />其他的jboss遵循标准规范<br /><strong><br />4、Weblogic的部署规则</strong><br />
对于weblogic使用下面的一些规则处理目录结构：<br />
</p>
<p>&#8226;For an exploded archived Web application, in the absence of WEB-INF/web.xml descriptor, the name of the directory should have a .war suffix.</p>
<p>&#8226;For an exploded archived Enterprise Application without a META-INF/application.xml descriptor, the directory should have an .ear suffix. Within the application, the directory of exploded Web module should have a .war suffix. Similarly, the exploded EJB module should have a .jar suffix and the exploded RAR module should have a .rar suffix.</p>
<p>&#8226;If an exploded Enterprise Application contains no META-INF/application.xml descriptor, the order in which modules are deployed is undefined and is dependent on the underlying File.listFiles() method order. To ensure a specific order in which modules are deployed, you must add an application.xml descriptor and list the modules in the desired order.<br />
</p>
<p>如果在weblogic下面如果不使用上面的规则，则需要在<font face="Courier New">application.xml</font> 文件中指定对应的uri路径<br />
或者在应用模块中使用下面的manifest路径规则<br />
<br />
<strong>4.1 classloader的路径引用</strong><br />
在weblogic中EAR里面的所有应用共有一个classloader，所以对于ear里面的war，通常不需要在WEB-INF里面包含lib，weblogic提供了一个默认的目录：<br />
APP-INF\lib:存放jar包<br />
APP-INF\classes:存放classes<br /><br />注意对于其他的应用服务器，可能没有这样的规则<br />
<br />
<strong>5、</strong><font face="Verdana"><strong>Manifest Class-Path规则<br />
</strong>在java EE规范中，可以使用manifest文件指定当前的应用模块对与其他classpath路径的关联引用，该文件位于<br />
<font face="Verdana">META-INF/MANIFEST.MF<br />
路径下面，内容例如下面，多个引用路径使用空格分隔：<br />
</font>Manifest-Version: 1.0 <br />
Class-Path: utility.jar ../xxx/classes ../xxxlib/xxx.jar <br />
<br />
META-INF/MANIFEST.MF</font></p>
<p><br />
<br />
Manifest Class-Path</p>
<p><br />
&nbsp;</p>
参考页面：
http://docs.oracle.com/cd/E12839_01/web.1111/e13706/classloading.htm
http://docs.oracle.com/cd/E12839_01/web.1111/e13702/deployunits.htm#DEPGD142
 
<img src ="http://www.blogjava.net/midea0978/aggbug/397531.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2013-04-08 16:18 <a href="http://www.blogjava.net/midea0978/archive/2013/04/08/397531.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA AWT处理图片时的错误</title><link>http://www.blogjava.net/midea0978/archive/2012/01/19/368742.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Thu, 19 Jan 2012 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2012/01/19/368742.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/368742.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2012/01/19/368742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/368742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/368742.html</trackback:ping><description><![CDATA[<p>在linux环境部署应用时，有时候需要用到AWT处理图片的功能，典型的就是图片的缩放处理等等，可能会遇到下面错误：<br />java.lang.NoClassDefFoundError<br />　　at java.lang.Class.forName0(Native Method)<br />　　at java.lang.Class.forName(Class.java:141)<br />　　at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)<br />　　at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1041)</p> <p>甚至在默写情况下面可能导致jvm崩溃，对于该问题的解决办法是</p> <p>1、配置java启动参数java -Djava.awt.headless=true<br />在jdk1.4及以上的环境中，允许使用没有键盘、鼠标、x window显示启动的headless虚拟机模式，通过加上上面的属性即可</p> <p>2、配置合适的DISPLAY属性</p> <p>例如通过当前用户启动了一个x window的图形界面，可以将设置类似export DISPLAY=localhost:10.0这样的环境变量将awt定位到一个实际存在的环境处理。</p> <p>配置成功之后，可能可以看到这样的提示</p> <p>nl.ikarus.nxt.priv.imageio.icoreader.lib.ICOReader loaded, version: 0.06.064 build: 691</p> <p>配置好之后就不会报错了</p><p>网上还有一种办法，启动Xvfb</p><p>使用<div>ls -l /tmp/.X*lock</div>可以查看当前启动了那些xwindow，如果发现X0，可能0.0已经被使用了<br /></p><p><div>使用两个命令：<br />　　      －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－      <br />　　       Xvfb :1 -screen 0 800x600x16 &amp;                               启动Xwindows的虚拟设备<br />　　       export DISPLAY=localhost:1.0                                  配置本地环境<br />　　      －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－    <br /></div><br /></p> <p>参考：<a title="http://javatechniques.com/blog/linux-x11-libraries-for-headless-mode/" href="http://javatechniques.com/blog/linux-x11-libraries-for-headless-mode/">http://javatechniques.com/blog/linux-x11-libraries-for-headless-mode/</a></p><img src ="http://www.blogjava.net/midea0978/aggbug/368742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2012-01-19 12:01 <a href="http://www.blogjava.net/midea0978/archive/2012/01/19/368742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>APK文件修改及编译打包备忘</title><link>http://www.blogjava.net/midea0978/archive/2012/01/04/367848.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Wed, 04 Jan 2012 08:07:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2012/01/04/367848.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/367848.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2012/01/04/367848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/367848.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/367848.html</trackback:ping><description><![CDATA[1、使用apktool反编译<br />apktool d [file.apk] [path]<br />2、根据需要修改配置文件、smali文件，如果需要反编译成jar文件，可以使用dex2jar，然后使用jd-gui查看代码<br />3、重新编译成apk文件<br />apktool b [path] file.apk<br />4、签名<br />使用JDK自带工具keytool创建keystore<br />c:\&gt;keytool -genkey -alias android.keystore -keyalg RSA -validity 10000 -keystore mystore.keystore <br />其中validity 为有效期天数,这里创建的keystore文件也可以供eclipse打包apk时使用，注意记住密码。<br />使用JDK自带工具jarsigner签名apk文件，需要输入keystore的密码<br />c:\&gt;jarsigner -verbose -keystore mystore.jks -signedjar [签名后的文件.jar] [需要签名的文件.apk] my<br />5、安装到手机上面测试<br />adb -d install -r signed-file.apk<br /><br /><img src ="http://www.blogjava.net/midea0978/aggbug/367848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2012-01-04 16:07 <a href="http://www.blogjava.net/midea0978/archive/2012/01/04/367848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>smali文件语法参考</title><link>http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Wed, 04 Jan 2012 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/367847.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/367847.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/367847.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转载：http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html&nbsp;Dalvik opcodesAuthor: Gabor PallerVx values in the table denote a Dalvik register. Depending on the instruction, 16, 256 or 64k r...&nbsp;&nbsp;<a href='http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html'>阅读全文</a><img src ="http://www.blogjava.net/midea0978/aggbug/367847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2012-01-04 15:59 <a href="http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>改用LiveWriter写日志看看</title><link>http://www.blogjava.net/midea0978/archive/2011/07/30/355378.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Sat, 30 Jul 2011 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2011/07/30/355378.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/355378.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2011/07/30/355378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/355378.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/355378.html</trackback:ping><description><![CDATA[<p>测试发帖，直接粘贴图片看看效果如何！</p> <p><a href="http://www.blogjava.net/images/blogjava_net/midea0978/Windows-Live-Writer/230dc2096897_8528/image_2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.blogjava.net/images/blogjava_net/midea0978/Windows-Live-Writer/230dc2096897_8528/image_thumb.png" width="244" height="68"></a></p> <img src ="http://www.blogjava.net/midea0978/aggbug/355378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2011-07-30 09:31 <a href="http://www.blogjava.net/midea0978/archive/2011/07/30/355378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单独使用jboss的jndi provider</title><link>http://www.blogjava.net/midea0978/archive/2011/06/20/352647.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Mon, 20 Jun 2011 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2011/06/20/352647.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/352647.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2011/06/20/352647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/352647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/352647.html</trackback:ping><description><![CDATA[<div>通过下面方式可以发布jboss的naming服务 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">server</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mbean&nbsp;</span><span style="color: #ff0000">code</span><span style="color: #0000ff">="org.jboss.naming.NamingService"</span><span style="color: #ff0000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name</span><span style="color: #0000ff">="DefaultDomain:service=Naming"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Port"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1099</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">attribute</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">mbean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">server</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>同时也可以独立使用，你需要<font face="Courier New">jnpserver.jar</font> 和<font face="Courier New">log4j.jar</font> 文件， 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;#&nbsp;Use&nbsp;a&nbsp;ConsoleAppender&nbsp;--&nbsp;write&nbsp;log&nbsp;data&nbsp;to&nbsp;standard&nbsp;out<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />log4j.rootLogger</span><span style="color: #000000">=</span><span style="color: #000000">DEBUG</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;A1<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />log4j.appender.A1</span><span style="color: #000000">=</span><span style="color: #000000">org.apache.log4j.ConsoleAppender<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />log4j.appender.A1.layout</span><span style="color: #000000">=</span><span style="color: #000000">org.apache.log4j.PatternLayout<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />log4j.appender.A1.layout.ConversionPattern</span><span style="color: #000000">=</span><span style="color: #000000">%-4r&nbsp;</span><span style="color: #800000; font-weight: bold">[</span><span style="color: #800000">%t</span><span style="color: #800000; font-weight: bold">]</span><span style="color: #000000">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>配套的log4j配置文件，使用下面命令启动java org.jnp.server.Main，启动之后，jndi客户端需要<font face="Courier New">jnp-client.jar</font>文件来连接<br />java.naming.provider.url=jnphost.mycompany.com:1099<br />java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory<br />java.naming.factory.url.pkgs=org.jboss.naming<br />连接参数如上<br /><br /><br /><br /></div><img src ="http://www.blogjava.net/midea0978/aggbug/352647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2011-06-20 11:23 <a href="http://www.blogjava.net/midea0978/archive/2011/06/20/352647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>intellij idea使用tomcat开发时自动部署jndi数据源</title><link>http://www.blogjava.net/midea0978/archive/2011/01/02/342165.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Sun, 02 Jan 2011 09:36:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2011/01/02/342165.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/342165.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2011/01/02/342165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/342165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/342165.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通常，如果需要在应用中使用tomcat的jndi数据源，需要修改context配置，例如&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&lt;Context&nbsp;path="/app"&nbsp;docBase="E:\appweb"&gt;&nbsp;&nbsp;&lt;Resource&nbsp;name="jnd...&nbsp;&nbsp;<a href='http://www.blogjava.net/midea0978/archive/2011/01/02/342165.html'>阅读全文</a><img src ="http://www.blogjava.net/midea0978/aggbug/342165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2011-01-02 17:36 <a href="http://www.blogjava.net/midea0978/archive/2011/01/02/342165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMX远程管理tomcat或weblogic</title><link>http://www.blogjava.net/midea0978/archive/2011/01/02/342164.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Sun, 02 Jan 2011 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2011/01/02/342164.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/342164.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2011/01/02/342164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/342164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/342164.html</trackback:ping><description><![CDATA[通过jconsole可以远程监控web应用服务器，可以在启动参数中加上<br />
<br />
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false<br />
<br />
<img src ="http://www.blogjava.net/midea0978/aggbug/342164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2011-01-02 17:14 <a href="http://www.blogjava.net/midea0978/archive/2011/01/02/342164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改驱动解决SqlRowSet的Invalid scale size. Cannot be less than zero异常的处理办法</title><link>http://www.blogjava.net/midea0978/archive/2009/10/09/297584.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Fri, 09 Oct 2009 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2009/10/09/297584.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/297584.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2009/10/09/297584.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/297584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/297584.html</trackback:ping><description><![CDATA[参考：http://blog.csdn.net/horsefaced/archive/2007/08/16/1746888.aspx<br />
<br />
这个异常源自于oracle驱动面对一个数值型的返回字段时，在得到指定的字段小数点右边的数值数量时（Gets the designated column's number of digits to right of the decimal point.这个是原文），居然会返回-127，而oracle本身的cacheRowSet实现不允许这种情况出现，于是就会报标题所说的异常。<br />
<br />
对于一般的做法，需要修改很多地方，包括ResultSet的decorate类，还有Spring的SqlRowSetResultSetExtractor <br />
<br />
所谓头痛医头，脚痛医脚，这里提供一种方法直接从oracle jdbc驱动入手，彻底从源头上修改掉该问题：<br />
反编译ojdbc14.jar(Oracle 9i驱动为例)<br />
<p>package oracle.jdbc.driver;</p>
<p>public class OracleResultSetMetaData</p>
<br />
目标方法：<br />
public int getScale(int paramInt)<br />
&nbsp;&nbsp;&nbsp; throws SQLException<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; int i = getValidColumnIndex(paramInt);<br />
&nbsp;&nbsp;&nbsp; return this.statement.getDBDescription()[i].scale;<br />
&nbsp; }<br />
<br />
使用javassist编写一段代码：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_34_792_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_792_Open_Text.style.display='none'; Codehighlighter1_34_792_Closed_Image.style.display='inline'; Codehighlighter1_34_792_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_34_792_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_34_792_Closed_Text.style.display='none'; Codehighlighter1_34_792_Open_Image.style.display='inline'; Codehighlighter1_34_792_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;crackOracleDriver()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_34_792_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_34_792_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClassPool&nbsp;pool&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ClassPool.getDefault();<br />
<img id="Codehighlighter1_97_721_Open_Image" onclick="this.style.display='none'; Codehighlighter1_97_721_Open_Text.style.display='none'; Codehighlighter1_97_721_Closed_Image.style.display='inline'; Codehighlighter1_97_721_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_97_721_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_97_721_Closed_Text.style.display='none'; Codehighlighter1_97_721_Open_Image.style.display='inline'; Codehighlighter1_97_721_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_97_721_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_97_721_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pool.insertClassPath(</span><span style="color: #000000">"</span><span style="color: #000000">E:\\allproject\\bpmtrans\\lib\\ojdbc14.jar</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CtClass&nbsp;cc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pool.get(</span><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.driver.OracleResultSetMetaData</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(cc);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CtClass[]&nbsp;param&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;CtClass[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[</span><span style="color: #000000">0</span><span style="color: #000000">]</span><span style="color: #000000">=</span><span style="color: #000000">pool.get(</span><span style="color: #000000">"</span><span style="color: #000000">int</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CtMethod&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cc.getDeclaredMethod(</span><span style="color: #000000">"</span><span style="color: #000000">getScale</span><span style="color: #000000">"</span><span style="color: #000000">,param);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.setBody(</span><span style="color: #000000">"</span><span style="color: #000000">{int&nbsp;i&nbsp;=&nbsp;getValidColumnIndex($1);\n</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;res=statement.getDBDescription()[i].scale;\n</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">return&nbsp;res&lt;0?0:res;&nbsp;}</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc.writeFile(</span><span style="color: #000000">"</span><span style="color: #000000">c:\\</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img id="Codehighlighter1_743_786_Open_Image" onclick="this.style.display='none'; Codehighlighter1_743_786_Open_Text.style.display='none'; Codehighlighter1_743_786_Closed_Image.style.display='inline'; Codehighlighter1_743_786_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_743_786_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_743_786_Closed_Text.style.display='none'; Codehighlighter1_743_786_Open_Image.style.display='inline'; Codehighlighter1_743_786_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_743_786_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_743_786_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
将生成的class置换原来的class，大功告成！<br />
<br />
这个所谓的精度，一般来说，修改了应该没有多大问题的
<img src ="http://www.blogjava.net/midea0978/aggbug/297584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2009-10-09 17:18 <a href="http://www.blogjava.net/midea0978/archive/2009/10/09/297584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用openssl生成自签名证书、配置SSL</title><link>http://www.blogjava.net/midea0978/archive/2008/07/18/215740.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Fri, 18 Jul 2008 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2008/07/18/215740.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/215740.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2008/07/18/215740.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/215740.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/215740.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">首先，下载openssl安装，windows环境从<a href="http://www.openssl.org/related/binaries.html">http://www.openssl.org/related/binaries.html</a>下载。<br />
我这里测试下载的版本是：<a href="http://www.slproweb.com/download/Win32OpenSSL-0_9_8h.exe">http://www.slproweb.com/download/Win32OpenSSL-0_9_8h.exe</a><br />
安装完成之后，修改bin目录下面的openssl.cfg为openssl.cnf，在请求证书时需要用到这个配置文件，生成证书，为了方便，编写了下面的批处理文件，供参考：</span><br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">@echo&nbsp;off<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">.CA&nbsp;创建一个&nbsp;RSA&nbsp;私用密钥<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />openssl&nbsp;genrsa&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">1</span><span style="color: #000000">.key&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">.利用&nbsp;CA&nbsp;的&nbsp;RSA&nbsp;密钥创建一个自签署的&nbsp;CA&nbsp;证书（X.509结构）<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />openssl&nbsp;req&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">x509&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">days&nbsp;</span><span style="color: #000000">36500</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">key&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">1</span><span style="color: #000000">.key&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">1</span><span style="color: #000000">.crt&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">subj&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">C</span><span style="color: #000000">=</span><span style="color: #000000">CN</span><span style="color: #000000">/</span><span style="color: #000000">ST</span><span style="color: #000000">=</span><span style="color: #000000">GuangDong</span><span style="color: #000000">/</span><span style="color: #000000">L</span><span style="color: #000000">=</span><span style="color: #000000">GuangZhou</span><span style="color: #000000">/</span><span style="color: #000000">O</span><span style="color: #000000">=</span><span style="color: #000000">SinoTech</span><span style="color: #000000">/</span><span style="color: #000000">OU</span><span style="color: #000000">=</span><span style="color: #000000">CA</span><span style="color: #000000">-</span><span style="color: #000000">SinoTech<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">.CA&nbsp;创建一个&nbsp;服务端&nbsp;RSA&nbsp;私用密钥<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />openssl&nbsp;genrsa&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">.key&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">.创建服务端签署请求&nbsp;CSR<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />openssl&nbsp;req&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">key&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">.key&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">.csr&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">subj&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">/C=CN/ST=GuangDong/L=GuangZhou/O=SinoTech/OU=Serv-SinoTech/CN=SinoTech&nbsp;Weblogic&nbsp;Server</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">.签署证书<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />rem&nbsp;准备一些默认文件、目录，否则运行时会报错<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;exist&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%cd%\newcerts</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">goto</span><span style="color: #000000">&nbsp;got1<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />md&nbsp;newcerts<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:got1<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;exist&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%cd%\index.txt</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">goto</span><span style="color: #000000">&nbsp;got2<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;tmp&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">_tmp<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />del&nbsp;_tmp&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">index.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:got2<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;exist&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%cd%\serial</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">goto</span><span style="color: #000000">&nbsp;got3<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;AD&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">serial<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:got3<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />openssl&nbsp;ca&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">.csr&nbsp;</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">.crt&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">cert&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">1</span><span style="color: #000000">.crt&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">keyfile&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">1</span><span style="color: #000000">.key&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />echo&nbsp;处理完成<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />pause<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<span style="font-size: 10pt">运行批处理<br />
<strong>genca.cmd [CA证书名] [服务端证书名]<br />
</strong>例如genca.cmd ca server<br />
<br />
通过上面命令，会生成server.crt,server.key,然后将上面参数加到tomcat的配置中就可以使用SSL连接方式访问网站应用了<br />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Connector&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">port</span><span style="color: #0000ff">="8443"</span><span style="color: #ff0000">&nbsp;minSpareThreads</span><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;maxSpareThreads</span><span style="color: #0000ff">="75"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enableLookups</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;disableUploadTimeout</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acceptCount</span><span style="color: #0000ff">="100"</span><span style="color: #ff0000">&nbsp;&nbsp;maxThreads</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scheme</span><span style="color: #0000ff">="https"</span><span style="color: #ff0000">&nbsp;secure</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;SSLEnabled</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLCertificateFile</span><span style="color: #0000ff">="C:\apache-tomcat-6.0.16\conf\server.crt"</span><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLCertificateKeyFile</span><span style="color: #0000ff">="C:\apache-tomcat-6.0.16\conf\server.key"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientAuth</span><span style="color: #0000ff">="false"</span><span style="color: #ff0000">&nbsp;sslProtocol</span><span style="color: #0000ff">="TLS"</span><span style="color: #0000ff">/&gt;</span></div>
<img src ="http://www.blogjava.net/midea0978/aggbug/215740.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2008-07-18 12:40 <a href="http://www.blogjava.net/midea0978/archive/2008/07/18/215740.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle JDBC驱动与时间不见了的问题</title><link>http://www.blogjava.net/midea0978/archive/2008/06/13/207655.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Fri, 13 Jun 2008 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2008/06/13/207655.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/207655.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2008/06/13/207655.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/207655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/207655.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">一般的数据库中，DATE字段仅仅表示日期，不包括日期信息，而Oracle数据库中的DATE数据类型是包括日期、时间的，对于不同的Oracle jdbc驱动版本，对于该问题的处理都有些区别，如果你使用9i或者11g<br />
的驱动程序，可能不会发现什么困惑，不幸的话，你使用Oracle10g的JDBC驱动，问题就来了，<strong style="color: #ff0000">你会发现时间不见了</strong>？<br />
看下面的程序<br />
<strong>&#8226; 表结构如下</strong><br />
create table t_test(<br />
id int,<br />
date1 date,<br />
date2 timestamp,<br />
primary key(id)<br />
)<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_4_552_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_552_Open_Text.style.display='none'; Codehighlighter1_4_552_Closed_Image.style.display='inline'; Codehighlighter1_4_552_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4_552_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4_552_Closed_Text.style.display='none'; Codehighlighter1_4_552_Open_Image.style.display='inline'; Codehighlighter1_4_552_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_4_552_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4_552_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.OracleDriver</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.sql.Connection&nbsp;connection1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:oracle:thin:@192.168.8.200:1521:cdb</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">sysusr</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">sys</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(connection1);<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(connection1.getMetaData().getDriverName()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">connection1.getMetaData().getDriverVersion());<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;connection1.createStatement().executeQuery(</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;date1,date2&nbsp;from&nbsp;t_test</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.next();<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printInfo(rs,</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printInfo(rs,</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_591_643_Open_Image" onclick="this.style.display='none'; Codehighlighter1_591_643_Open_Text.style.display='none'; Codehighlighter1_591_643_Closed_Image.style.display='inline'; Codehighlighter1_591_643_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_591_643_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_591_643_Closed_Text.style.display='none'; Codehighlighter1_591_643_Open_Image.style.display='inline'; Codehighlighter1_591_643_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;exception1)&nbsp;</span><span id="Codehighlighter1_591_643_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_591_643_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exception1.printStackTrace();<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img id="Codehighlighter1_715_926_Open_Image" onclick="this.style.display='none'; Codehighlighter1_715_926_Open_Text.style.display='none'; Codehighlighter1_715_926_Closed_Image.style.display='inline'; Codehighlighter1_715_926_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_715_926_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_715_926_Closed_Text.style.display='none'; Codehighlighter1_715_926_Open_Image.style.display='inline'; Codehighlighter1_715_926_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;printInfo(ResultSet&nbsp;rs,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;SQLException</span><span id="Codehighlighter1_715_926_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_715_926_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSetMetaData&nbsp;meta</span><span style="color: #000000">=</span><span style="color: #000000">rs.getMetaData();<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.printf(</span><span style="color: #000000">"</span><span style="color: #000000">Colname=%s,Type=%s,TypeName=%s,val=[%s];\n</span><span style="color: #000000">"</span><span style="color: #000000">,meta.getColumnName(i),meta.getColumnType(i),meta.getColumnTypeName(i),rs.getObject(i).toString());<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
&#8226; 如果使用9i或者11g的驱动连接数据库，返回结果如下：<br />
<strong>9i数据库JDBC</strong><br />
oracle.jdbc.driver.OracleConnection@16930e2<br />
Oracle JDBC driver 9.2.0.8.0<br />
Colname=DATE1,Type=91,TypeName=DATE,val=[<span style="color: red">2008-06-13 13:48:21.0</span>];<br />
Colname=DATE2,Type=93,TypeName=TIMESTAMP,val=[oracle.sql.TIMESTAMP@18d107f];<br />
<br />
<strong>11g数据库JDBC<br />
</strong>oracle.jdbc.driver.T4CConnection@a61164<br />
Oracle JDBC driver 11.1.0.6.0-Production+<br />
Colname=DATE1,Type=93,TypeName=DATE,val=[<span style="color: red">2008-06-13 13:48:21.0];</span><br />
Colname=DATE2,Type=93,TypeName=TIMESTAMP,val=[oracle.sql.TIMESTAMP@c4aad3];<br />
<br />
如果使用<strong>10g JDBC</strong>驱动，结果如下：<br />
oracle.jdbc.driver.T4CConnection@1bac748<br />
Oracle JDBC driver 10.2.0.2.0<br />
Colname=DATE1,Type=91,TypeName=DATE,val=[<span style="color: red">2008-06-13</span>];<br />
Colname=DATE2,Type=93,TypeName=TIMESTAMP,val=[oracle.sql.TIMESTAMP@b8df17];<br />
<br />
结果是让人困惑，<span style="color: red">时间怎么不见了？<br />
<br />
<span style="color: #000000">对于该问题，在Oracle的JDBC FAQ中有提到解决办法：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Prior&nbsp;to&nbsp;9.2,&nbsp;the&nbsp;Oracle&nbsp;JDBC&nbsp;drivers&nbsp;mapped&nbsp;the&nbsp;DATE&nbsp;SQL&nbsp;type&nbsp;to&nbsp;java.sql.Timestamp.&nbsp;This&nbsp;made&nbsp;a&nbsp;certain&nbsp;amount&nbsp;of&nbsp;sense&nbsp;because&nbsp;the&nbsp;Oracle&nbsp;DATE&nbsp;SQL&nbsp;type&nbsp;contains&nbsp;both&nbsp;date&nbsp;and&nbsp;time&nbsp;information&nbsp;as&nbsp;does&nbsp;java.sql.Timestamp.&nbsp;The&nbsp;more&nbsp;obvious&nbsp;mapping&nbsp;to&nbsp;java.sql.Date&nbsp;was&nbsp;somewhat&nbsp;problematic&nbsp;as&nbsp;java.sql.Date&nbsp;does&nbsp;not&nbsp;include&nbsp;time&nbsp;information.&nbsp;It&nbsp;was&nbsp;also&nbsp;the&nbsp;case&nbsp;that&nbsp;the&nbsp;RDBMS&nbsp;did&nbsp;not&nbsp;support&nbsp;the&nbsp;TIMESTAMP&nbsp;SQL&nbsp;type,&nbsp;so&nbsp;there&nbsp;was&nbsp;no&nbsp;problem&nbsp;with&nbsp;mapping&nbsp;DATE&nbsp;to&nbsp;Timestamp.&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />In&nbsp;9.2&nbsp;TIMESTAMP&nbsp;support&nbsp;was&nbsp;added&nbsp;to&nbsp;the&nbsp;RDBMS.&nbsp;The&nbsp;difference&nbsp;between&nbsp;DATE&nbsp;and&nbsp;TIMESTAMP&nbsp;is&nbsp;that&nbsp;TIMESTAMP&nbsp;includes&nbsp;nanoseconds&nbsp;and&nbsp;DATE&nbsp;does&nbsp;not.&nbsp;So,&nbsp;beginning&nbsp;in&nbsp;9.2,&nbsp;DATE&nbsp;is&nbsp;mapped&nbsp;to&nbsp;Date&nbsp;and&nbsp;TIMESTAMP&nbsp;is&nbsp;mapped&nbsp;to&nbsp;Timestamp.&nbsp;Unfortunately&nbsp;if&nbsp;you&nbsp;were&nbsp;relying&nbsp;on&nbsp;DATE&nbsp;values&nbsp;to&nbsp;contain&nbsp;time&nbsp;information,&nbsp;there&nbsp;is&nbsp;a&nbsp;problem.&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />There&nbsp;are&nbsp;several&nbsp;ways&nbsp;to&nbsp;address&nbsp;this&nbsp;problem:&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Alter&nbsp;your&nbsp;tables&nbsp;to&nbsp;use&nbsp;TIMESTAMP&nbsp;instead&nbsp;of&nbsp;DATE.&nbsp;This&nbsp;is&nbsp;probably&nbsp;rarely&nbsp;possible,&nbsp;but&nbsp;it&nbsp;is&nbsp;the&nbsp;best&nbsp;solution&nbsp;when&nbsp;it&nbsp;is.&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Alter&nbsp;your&nbsp;application&nbsp;to&nbsp;use&nbsp;defineColumnType&nbsp;to&nbsp;define&nbsp;the&nbsp;columns&nbsp;as&nbsp;TIMESTAMP&nbsp;rather&nbsp;than&nbsp;DATE.&nbsp;There&nbsp;are&nbsp;problems&nbsp;with&nbsp;this&nbsp;because&nbsp;you&nbsp;really&nbsp;don't&nbsp;want&nbsp;to&nbsp;use&nbsp;defineColumnType&nbsp;unless&nbsp;you&nbsp;have&nbsp;to&nbsp;(see&nbsp;What&nbsp;is&nbsp;defineColumnType&nbsp;and&nbsp;when&nbsp;should&nbsp;I&nbsp;use&nbsp;it?).&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Alter&nbsp;you&nbsp;application&nbsp;to&nbsp;use&nbsp;getTimestamp&nbsp;rather&nbsp;than&nbsp;getObject.&nbsp;This&nbsp;is&nbsp;a&nbsp;good&nbsp;solution&nbsp;when&nbsp;possible,&nbsp;however&nbsp;many&nbsp;applications&nbsp;contain&nbsp;generic&nbsp;code&nbsp;that&nbsp;relies&nbsp;on&nbsp;getObject,&nbsp;so&nbsp;it&nbsp;isn't&nbsp;always&nbsp;possible.&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Set&nbsp;the&nbsp;V8Compatible&nbsp;connection&nbsp;property.&nbsp;This&nbsp;tells&nbsp;the&nbsp;JDBC&nbsp;drivers&nbsp;to&nbsp;use&nbsp;the&nbsp;old&nbsp;mapping&nbsp;rather&nbsp;than&nbsp;the&nbsp;new&nbsp;one.&nbsp;You&nbsp;can&nbsp;set&nbsp;this&nbsp;flag&nbsp;either&nbsp;as&nbsp;a&nbsp;connection&nbsp;property&nbsp;or&nbsp;a&nbsp;system&nbsp;property.&nbsp;You&nbsp;set&nbsp;the&nbsp;connection&nbsp;property&nbsp;by&nbsp;adding&nbsp;it&nbsp;to&nbsp;the&nbsp;java.util.Properties&nbsp;object&nbsp;passed&nbsp;to&nbsp;DriverManager.getConnection&nbsp;or&nbsp;to&nbsp;OracleDataSource.setConnectionProperties.&nbsp;You&nbsp;set&nbsp;the&nbsp;system&nbsp;property&nbsp;by&nbsp;including&nbsp;a&nbsp;-D&nbsp;option&nbsp;in&nbsp;your&nbsp;java&nbsp;command&nbsp;line.&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;java&nbsp;-Doracle.jdbc.V8Compatible="true"&nbsp;MyApp<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
参照上面的解释，修改代码如下可以解决10g JDBC驱动的问题：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_4_711_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_711_Open_Text.style.display='none'; Codehighlighter1_4_711_Closed_Image.style.display='inline'; Codehighlighter1_4_711_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4_711_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4_711_Closed_Text.style.display='none'; Codehighlighter1_4_711_Open_Image.style.display='inline'; Codehighlighter1_4_711_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_4_711_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4_711_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.OracleDriver</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Properties&nbsp;prop</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Properties();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prop.setProperty(</span><span style="color: #000000">"</span><span style="color: #000000">user</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">sysuser</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prop.setProperty(</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">sys</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>prop.setProperty(</strong></span><strong><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.V8Compatible</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span></strong><strong><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.sql.Connection&nbsp;connection1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:oracle:thin:@192.168.8.200:1521:cdb</span><span style="color: #000000">"</span></strong><span style="color: #000000"><strong>,&nbsp;prop);</strong><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(connection1);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(connection1.getMetaData().getDriverName()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">connection1.getMetaData().getDriverVersion());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;connection1.createStatement().executeQuery(</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;date1,date2&nbsp;from&nbsp;t_test</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.next();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printInfo(rs,</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printInfo(rs,</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_750_802_Open_Image" onclick="this.style.display='none'; Codehighlighter1_750_802_Open_Text.style.display='none'; Codehighlighter1_750_802_Closed_Image.style.display='inline'; Codehighlighter1_750_802_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_750_802_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_750_802_Closed_Text.style.display='none'; Codehighlighter1_750_802_Open_Image.style.display='inline'; Codehighlighter1_750_802_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;exception1)&nbsp;</span><span id="Codehighlighter1_750_802_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_750_802_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exception1.printStackTrace();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
</span></span></span><span style="font-size: 10pt">或者在系统变量中使用参数-Doracle.jdbc.V8Compatible="true"，例如<br />
java -Doracle.jdbc.V8Compatible="true" MyApp<br />
</span><br />
<span style="font-size: 10pt"><strong>结果如下：<br />
</strong>oracle.jdbc.driver.T4CConnection@9664a1<br />
Oracle JDBC driver 10.2.0.2.0<br />
Colname=DATE1,Type=93,TypeName=DATE,val=[<span style="color: #ff0000">2008-06-13 13:48:21.0</span>];<br />
Colname=DATE2,Type=93,TypeName=DATE,val=[oracle.sql.TIMESTAMP@1172e08];<br />
</span>
<img src ="http://www.blogjava.net/midea0978/aggbug/207655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2008-06-13 14:19 <a href="http://www.blogjava.net/midea0978/archive/2008/06/13/207655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle整合BEA，WEBLogic的License可以免费下载了</title><link>http://www.blogjava.net/midea0978/archive/2008/06/05/205987.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Thu, 05 Jun 2008 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2008/06/05/205987.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/205987.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2008/06/05/205987.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/205987.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/205987.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">众所周知，Oracle的数据库、中间件都可以在网上自由下载，没有任何license注册码的限制。<br />
现在，Oracle以85亿美元收购了BEA，带来的最直接的好处是，以前严格保密的License文件现在都可以直接下载了。请看下面页面：<br />
</span><a href="http://commerce.bea.com/products/all_products.jsp#WL"><span style="font-size: 10pt">http://commerce.bea.com/products/all_products.jsp#WL</span></a><br />
<br />
<a href="http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip"><span style="font-size: 10pt">WebLogic Family License Keys</span></a><br />
<a href="http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip"><span style="font-size: 10pt">http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip</span></a><br />
<br />
<a href="http://download2.bea.com/pub/license/All%20Products/BEA_AquaLogic.zip"><span style="font-size: 10pt">AquaLogic Family License Keys</span></a><br />
<a href="http://download2.bea.com/pub/license/All%20Products/BEA_AquaLogic.zip"><span style="font-size: 10pt">http://download2.bea.com/pub/license/All%20Products/BEA_AquaLogic.zip</span></a><br />
<br />
<span style="font-size: 10pt">摘录部分内容如下：<br />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-size: 10pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><span style="font-size: 10pt">========================================<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;Read&nbsp;Me&nbsp;--&nbsp;BEA&nbsp;WebLogic&nbsp;License&nbsp;Keys&nbsp;=<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;========================================<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Some&nbsp;BEA&nbsp;products&nbsp;require&nbsp;multiple&nbsp;license&nbsp;keys&nbsp;for&nbsp;full&nbsp;functionality,&nbsp;or&nbsp;use&nbsp;a&nbsp;license&nbsp;key&nbsp;which&nbsp;is&nbsp;not&nbsp;intuitively&nbsp;identified&nbsp;as&nbsp;being&nbsp;for&nbsp;that&nbsp;product.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Please&nbsp;refer&nbsp;to&nbsp;the&nbsp;legend&nbsp;below&nbsp;to&nbsp;determine&nbsp;which&nbsp;license&nbsp;keys&nbsp;are&nbsp;required&nbsp;for&nbsp;the&nbsp;BEA&nbsp;products&nbsp;you&nbsp;own.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;Products&nbsp;(Product,&nbsp;Version,&nbsp;License&nbsp;ID/file)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />================================================================<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;Advantage&nbsp;Edition&nbsp;&nbsp;&nbsp;&nbsp;10.0&nbsp;-&nbsp;10.0mp1&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSA10.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2&nbsp;-&nbsp;9.2mp3&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSA92.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSA90.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;Premium&nbsp;Edition&nbsp;&nbsp;&nbsp;&nbsp;10.0&nbsp;-&nbsp;10.0mp1&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP10.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2&nbsp;-&nbsp;9.2mp3&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP92.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP90.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;SDK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP10-DEV<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP92-DEV<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP91-DEV<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLSP90-DEV<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;Premium&nbsp;for&nbsp;Linux&nbsp;s/390&nbsp;and&nbsp;z/Series<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.0sp1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLS70-CLS-56<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Server&nbsp;Mid-Market&nbsp;Edition&nbsp;&nbsp;&nbsp;&nbsp;10.0&nbsp;-&nbsp;10.0mp1&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLS10-MME.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2&nbsp;-&nbsp;9.2mp3&nbsp;&nbsp;&nbsp;&nbsp;LIC-WLS92-MME.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Platform&nbsp;Products&nbsp;(Product,&nbsp;Version,&nbsp;License&nbsp;ID/file)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />==================================================================<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />BEA&nbsp;WebLogic&nbsp;Platform&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.2&nbsp;ISV&nbsp;&nbsp;&nbsp;&nbsp;LIC-PLAT102-ISVED<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-AUTONOMY<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIC-PORT102<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />LIC-WLI102<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2mp3&nbsp;ISV&nbsp;&nbsp;&nbsp;&nbsp;LIC-PLAT92-ISVED<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.2&nbsp;-&nbsp;9.2mp3&nbsp;&nbsp;&nbsp;&nbsp;LIC-PFRM92.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.1&nbsp;-&nbsp;8.1sp6&nbsp;&nbsp;&nbsp;&nbsp;LIC-PFRM81-128.txt<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.0&nbsp;-&nbsp;7.0sp7&nbsp;&nbsp;&nbsp;&nbsp;LIC-PFRM70-128.txt</span></span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">license<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">component</span><span style="color: #0000ff">="WebLogic"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpus</span><span style="color: #0000ff">="unvalued"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expiration</span><span style="color: #0000ff">="never"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip</span><span style="color: #0000ff">="any"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;licensee</span><span style="color: #0000ff">="Customer"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serial</span><span style="color: #0000ff">="454493271161-2642447506228"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type</span><span style="color: #0000ff">="RTK"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;units</span><span style="color: #0000ff">="unlimited"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signature</span><span style="color: #0000ff">="MCwCFHRYQyBkRqhyayiKQBDxfTq/bWfYAhQj+RMMeDMVxjiYhBaXuHobbHe/JA=="</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
<br />
<span style="font-size: 10pt">呵呵，都什么年代了，您还在Google、baidu中搜索&#8220;weblogic 破解&#8221;这样的关键字吗，用不着了。但是这并不意味着您可以免费使用这些产品，熟悉Oracle的人都知道，如果您想在企业级应用中部署这些产品，您还是得付money！<br />
</span>
<img src ="http://www.blogjava.net/midea0978/aggbug/205987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2008-06-05 10:46 <a href="http://www.blogjava.net/midea0978/archive/2008/06/05/205987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC驱动补丁与连接Oracle的一些错误</title><link>http://www.blogjava.net/midea0978/archive/2008/06/03/205529.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Tue, 03 Jun 2008 04:46:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2008/06/03/205529.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/205529.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2008/06/03/205529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/205529.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/205529.html</trackback:ping><description><![CDATA[开发环境一直使用jdbc14.jar "Oracle JDBC Driver version - 9.0.2.0.0"版本连接Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 服务器，突然今天不能连接了，报错误如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">java.sql.SQLException:&nbsp;不能在&nbsp;UTF8&nbsp;和&nbsp;UCS2&nbsp;之间转换:&nbsp;failUTF8Conv<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:</span><span style="color: #000000">134</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:</span><span style="color: #000000">179</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.check_error(DBError.java:</span><span style="color: #000000">1130</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBConversion.failUTF8Conv(DBConversion.java:</span><span style="color: #000000">2261</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBConversion.utf8BytesToJavaChars(DBConversion.j<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />ava:</span><span style="color: #000000">2061</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBConversion.utf8BytesToString(DBConversion.java<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:</span><span style="color: #000000">1976</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBConversion.CharBytesToString(DBConversion.java<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:</span><span style="color: #000000">543</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.ttc7.TTIoer.processWarning(TTIoer.java:</span><span style="color: #000000">334</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:</span><span style="color: #000000">523</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:</span><span style="color: #000000">278</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleConnection.</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">&gt;</span><span style="color: #000000">(OracleConnection.java:</span><span style="color: #000000">346</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />va:</span><span style="color: #000000">468</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:</span><span style="color: #000000">314</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.sql.DriverManager.getConnection(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.sql.DriverManager.getConnection(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;JDBC.main(JDBC.java:</span><span style="color: #000000">9</span><span style="color: #000000">)</span></div>
然后更换为Oracle&nbsp; 11g的驱动，可以正常连接了，但是会显示下面异常<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">javax.management.MalformedObjectNameException:&nbsp;Invalid&nbsp;character&nbsp;</span><span style="color: #000000">'<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />'</span><span style="color: #000000">&nbsp;in&nbsp;value&nbsp;part&nbsp;of&nbsp;property</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">at&nbsp;javax.management.ObjectName.construct(ObjectName.java:</span><span style="color: #000000">529</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;javax.management.ObjectName.</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">&gt;</span><span style="color: #000000">(ObjectName.java:</span><span style="color: #000000">1304</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:</span><span style="color: #000000">303</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;oracle.jdbc.driver.OracleDriver$</span><span style="color: #000000">1</span><span style="color: #000000">.run(OracleDriver.java:</span><span style="color: #000000">213</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;java.security.AccessController.doPrivileged(Native&nbsp;Method)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;oracle.jdbc.driver.OracleDriver.</span><span style="color: #000000">&lt;</span><span style="color: #000000">clinit</span><span style="color: #000000">&gt;</span><span style="color: #000000">(OracleDriver.java:</span><span style="color: #000000">209</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;java.lang.Class.forName0(Native&nbsp;Method)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;java.lang.Class.forName(Class.java:</span><span style="color: #000000">164</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
采用9i驱动还碰到下面错误<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">java.sql.SQLException:&nbsp;违反协议<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:</span><span style="color: #000000">134</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:</span><span style="color: #000000">179</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.dbaccess.DBError.check_error(DBError.java:</span><span style="color: #000000">1160</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:</span><span style="color: #000000">548</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:</span><span style="color: #000000">279</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleConnection.</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">&gt;</span><span style="color: #000000">(OracleConnection.java:</span><span style="color: #000000">371</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />va:</span><span style="color: #000000">551</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:</span><span style="color: #000000">351</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.sql.DriverManager.getConnection(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.sql.DriverManager.getConnection(Unknown&nbsp;Source)</span></div>
<ul>
    <li>最终查询资料，发现还是jdbc驱动问题，原因因该是与bug有关，因此从新从otn.oracle.com下载驱动升级解决问题。<br />
    ojdbc6.jar的驱动版本可以运行java -jar ojdbc6.jar查看，如果是Oracle 11.1.0.6.0-Production+ JDBC 4.0 compiled with JDK6，带+号就是补丁版本，否则是没有打补丁的，仍然可能出错。</li>
    <li>我遇到的请况，采用10.2.0.4的jdbc驱动就没有问题了</li>
    <li>oracle jdbc驱动下载地址如下：</li>
</ul>
<p>
<table class="bodycopy" cellspacing="5" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td valign="top" align="center" colspan="4" height="110">
            <div align="left"><a href="http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html">Oracle JDBC Portal </a></div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_111060.html">Oracle Database 11<em>g</em> Release 1 (11.1.0.6) drivers</a></td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html">Oracle Database 10<em>g</em> Release 2 (10.2.0.4), (10.2.0.3), (10.2.0.2), (10.2.0.1.0) drivers</a></td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html">Oracle Database 10<em>g</em> (10.1.0.5), (10.1.0.4), (10.1.0.2.0) drivers</a></td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html">Oracle9<em>i</em> Release 2 (9.2.0.8), (9.2.0.5), (9.2.0.4), (9.2.0.3), &amp; (9.2.0.1) drivers</a></td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc901.html">Oracle9<em>i</em> Release 1 (9.0.1.4) &amp; (9.0.1) drivers</a></td>
        </tr>
        <tr>
            <td valign="top" width="2%"><img height="16" src="http://www.oracle.com/technology/images/bullets_and_symbols/bullet.gif" width="16" align="top"  alt="" /></td>
            <td><a class="bodylink" href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc817.html">Oracle8<em>i</em> Release 2 (8.1.7)</a></td>
        </tr>
    </tbody>
</table>
</p>
<ul>
    <li></li>
</ul>
<img src ="http://www.blogjava.net/midea0978/aggbug/205529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2008-06-03 12:46 <a href="http://www.blogjava.net/midea0978/archive/2008/06/03/205529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Intellij idea v7.0 注册码</title><link>http://www.blogjava.net/midea0978/archive/2007/10/22/155024.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Mon, 22 Oct 2007 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2007/10/22/155024.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/155024.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2007/10/22/155024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/155024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/155024.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 称为是最好的JAVA IDE开发平台!包括：J2EE支持、Ant、JUnit、集成CVS。包含一个智能编辑器，代码辅助和增强的自动代码工具。可提高JAVA开发人员的效率。</span><a name="entrymore"></a><br />
<p><span style="font-size: 10pt">　　 JetBrains已经发布了IntelliJ IDEA 7.0，IntelliJ IDEA 7里程碑1包括许多新的特性和提高，尤其是在对Java EE的支持上，包括Spring和Hibernate，<strong class="kgb" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline">代码</strong>分析，扩展版本控制支持，Rational ClearCase集成，增强了调试，代码查询，可用性和<strong class="kgb" style="font-weight: normal; cursor: hand; color: #0000ff; text-decoration: underline">性能</strong>。 <br />
</span></p>
<p><span style="font-size: 10pt">　　 正使用IntelliJ IDEA 6.0的用户可以免费使用IntelliJ IDEA 7.0到2007年12月31号，评估用户可以从<strong class="kgb" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline">官方网站</strong><strong class="kgb" style="font-weight: normal; cursor: hand; color: #0000ff; text-decoration: underline">下载</strong>并有30天的免费试用期。 </span></p>
<p><span style="font-size: 10pt">　　 IntelliJ IDEA 7.0的新特性包括： </span></p>
<p><span style="font-size: 10pt">　　 1.性能提高 <br />
　　 IDE的启动速度得到改善 <br />
　　 编辑JSP的速度加快 <br />
　　 更快的XML的格式化</span></p>
<p><span style="font-size: 10pt">　　 2.对Hibernate的支持<br />
　　 代码助手</span></p>
<p><span style="font-size: 10pt">　　 3.对Spring的支持<br />
　　 代码助手<br />
　　 观察依赖的可视化图表<br />
　　 专门的文件设置编辑器</span></p>
<p><span style="font-size: 10pt">　　 4.与Eclipse的协作能力 <br />
　　 导入（从现有的Eclipse<strong class="kgb" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline">工程</strong>中创建IntelliJ IDEA .iml和.ipr文件 ） <br />
　　 导出（从现有的IntelliJ IDEA .iml文件中创建Eclipse工程文件） <br />
　　 同步</span></p>
<p><span style="font-size: 10pt">　　 5.版本控制<br />
　　 支持Rational ClearCase </span></p>
<p><span style="font-size: 10pt">　　 6.JavaScript <br />
　　 支持JSON文件类型 <br />
　　 JSDoc和DoJo样式类型注释提供了更准确的完成和参数类型信息 <br />
　　 JSDoc和DoJo样式注释的丰富文档 <br />
　　 JavaScript命名空间完成/验证<br />
<br />
一份注册码如下，Enjoy!<br />
=============================================================<br />
</p>
<p>user name:在路上...<br />
License:12008-M3132-RY84C-0GSMK-V7TNK-33XV0<br />
customer id:12008<br />
product id:IDEA<br />
license type:COMMERCIAL<br />
major version:7<br />
minor version:0<br />
generationDate:Mon Oct 22 16:31:47 CST 2007<br />
expirationDate:Sun Jan 20 16:31:47 CST 2008</p>
<p></span>&nbsp;</p>
<img src ="http://www.blogjava.net/midea0978/aggbug/155024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2007-10-22 16:35 <a href="http://www.blogjava.net/midea0978/archive/2007/10/22/155024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Zlib压缩算法在java与delphi之间的交互实现</title><link>http://www.blogjava.net/midea0978/archive/2007/10/10/151645.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Wed, 10 Oct 2007 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2007/10/10/151645.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/151645.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2007/10/10/151645.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/151645.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/151645.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">一个典型应用中，使用delphi作为客户端，J2EE服务端，两者之间用XML作为数据交换，为了提高效率，对XML数据进行压缩，为此需要找到一种压缩/解压算法能够两个平台之间交互处理，使用ZLIB算法就是一个不错的解决方案。<br />
1、JAVA实现<br />
在JDK中，在java.util.zip包中已经内置了ZLIB的实现，示例代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">解压</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img id="Codehighlighter1_54_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_448_Open_Text.style.display='none'; Codehighlighter1_54_448_Closed_Image.style.display='inline'; Codehighlighter1_54_448_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_54_448_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_54_448_Closed_Text.style.display='none'; Codehighlighter1_54_448_Open_Image.style.display='inline'; Codehighlighter1_54_448_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;decompressData(String&nbsp;encdata)&nbsp;</span><span id="Codehighlighter1_54_448_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_54_448_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_68_343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_68_343_Open_Text.style.display='none'; Codehighlighter1_68_343_Closed_Image.style.display='inline'; Codehighlighter1_68_343_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_68_343_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_68_343_Closed_Text.style.display='none'; Codehighlighter1_68_343_Open_Image.style.display='inline'; Codehighlighter1_68_343_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_68_343_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_68_343_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;bos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayOutputStream();<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InflaterOutputStream&nbsp;zos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InflaterOutputStream(bos);<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zos.write(convertFromBase64(encdata));<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zos.close();<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(bos.toByteArray());<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_366_442_Open_Image" onclick="this.style.display='none'; Codehighlighter1_366_442_Open_Text.style.display='none'; Codehighlighter1_366_442_Closed_Image.style.display='inline'; Codehighlighter1_366_442_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_366_442_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_366_442_Closed_Text.style.display='none'; Codehighlighter1_366_442_Open_Image.style.display='inline'; Codehighlighter1_366_442_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span id="Codehighlighter1_366_442_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_366_442_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UNZIP_ERR</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">压缩</span><span style="color: #008000"><br />
</span><span style="color: #008080">16</span><span style="color: #008000"><img id="Codehighlighter1_504_902_Open_Image" onclick="this.style.display='none'; Codehighlighter1_504_902_Open_Text.style.display='none'; Codehighlighter1_504_902_Closed_Image.style.display='inline'; Codehighlighter1_504_902_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_504_902_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_504_902_Closed_Text.style.display='none'; Codehighlighter1_504_902_Open_Image.style.display='inline'; Codehighlighter1_504_902_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;compressData(String&nbsp;data)&nbsp;</span><span id="Codehighlighter1_504_902_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_504_902_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_518_799_Open_Image" onclick="this.style.display='none'; Codehighlighter1_518_799_Open_Text.style.display='none'; Codehighlighter1_518_799_Closed_Image.style.display='inline'; Codehighlighter1_518_799_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_518_799_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_518_799_Closed_Text.style.display='none'; Codehighlighter1_518_799_Open_Image.style.display='inline'; Codehighlighter1_518_799_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_518_799_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_518_799_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;bos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayOutputStream();<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeflaterOutputStream&nbsp;zos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DeflaterOutputStream(bos);<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zos.write(data.getBytes());<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zos.close();<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(convertToBase64(bos.toByteArray()));<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img id="Codehighlighter1_822_896_Open_Image" onclick="this.style.display='none'; Codehighlighter1_822_896_Open_Text.style.display='none'; Codehighlighter1_822_896_Closed_Image.style.display='inline'; Codehighlighter1_822_896_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_822_896_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_822_896_Closed_Text.style.display='none'; Codehighlighter1_822_896_Open_Image.style.display='inline'; Codehighlighter1_822_896_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span id="Codehighlighter1_822_896_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_822_896_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">ZIP_ERR</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
2、DELPHI中的实现<br />
在DELPHI中，有第3方的控件可以利用来实现压缩/解压，这里我们选择VCLZIP V3.04，可以从这里下载<a href="http://www.vclzip.net">http://www.vclzip.net</a><br />
为了提高通用性，我们可以编写一个标准的DLL，就可以在Win32平台随意调用了，关键代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;Cmip_CompressStr(txt:&nbsp;PChar):&nbsp;pchar;&nbsp;stdcall;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />var<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip:&nbsp;TVclZip;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;compr:&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;data:&nbsp;PChar;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />begin<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;TVclZip.Create(nil);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;compr&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zip.ZLibCompressString(txt);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;data&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pchar(Base64EncodeStr(compr));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Result&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;StrNew(data);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip.Free<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;Cmip_DeCompressStr(txt:&nbsp;PChar):&nbsp;pchar;&nbsp;stdcall;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />var<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip:&nbsp;TVCLUnZip;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;compr:&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;data:&nbsp;PChar;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />begin<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;TVCLUnZip.Create(nil);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;compr&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;zip.ZLibDecompressString(Base64DecodeStr(txt));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;data&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;StrNew(pchar(compr));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Result&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;data;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;zip.Free<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;</span></div>
<br />
<br />
在我们当前的项目中，采用的方案是Powerbuilder +DLL与J2EE平台进行xml数据交换的方式。</span>
<img src ="http://www.blogjava.net/midea0978/aggbug/151645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2007-10-10 10:35 <a href="http://www.blogjava.net/midea0978/archive/2007/10/10/151645.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Resin Pro 3.1.2 Plugin for  IntelliJ IDEA </title><link>http://www.blogjava.net/midea0978/archive/2007/09/18/146102.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Tue, 18 Sep 2007 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2007/09/18/146102.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/146102.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2007/09/18/146102.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/146102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/146102.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">在这里可以下载Resin&nbsp; Plugin for&nbsp; IntelliJ IDEA&nbsp; ，但是对于3.1X好像还不支持。</span><a href="http://plugins.intellij.net/plugin/?id=215"><span style="font-size: 10pt">http://plugins.intellij.net/plugin/?id=215</span></a><br />
<span style="font-size: 10pt">作者更新太慢，不好意思自己动手反编译修改了几个地方，现在可以支持Resin Pro 3.1.2，如果需要地可以从这里<br />
* 下载：</span><a title="Resin_2640_31.zip" href="/Files/midea0978/Resin_2640_31.zip"><span style="font-size: 10pt">Resin_2640_31.zip</span></a><br />
<span style="font-size: 10pt">* 安装：<br />
修改文件名为Resin_2640_31.jar，复制到C:\Documents and Settings\[username]\.IntelliJIdea60\config\plugins下面<br />
* 修改记录<br />
1、将3.1.2的resin.conf文件命名为resin31.conf加到org\intellij\j2ee\web\resin\resin下面<br />
2、将ResinVersion.java修改为如下方法判断是否3.1版本</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-size: 10pt"><img id="Codehighlighter1_77_342_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_342_Open_Text.style.display='none'; Codehighlighter1_77_342_Closed_Image.style.display='inline'; Codehighlighter1_77_342_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_77_342_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_77_342_Closed_Text.style.display='none'; Codehighlighter1_77_342_Open_Image.style.display='inline'; Codehighlighter1_77_342_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;ResinVersion&nbsp;VERSION_3_X&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ResinVersion(</span><span style="color: #000000">"</span><span style="color: #000000">Resin&nbsp;3.x</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_77_342_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_77_342_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;isOfVersion(File&nbsp;file)<br />
<img id="Codehighlighter1_134_222_Open_Image" onclick="this.style.display='none'; Codehighlighter1_134_222_Open_Text.style.display='none'; Codehighlighter1_134_222_Closed_Image.style.display='inline'; Codehighlighter1_134_222_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_134_222_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_134_222_Closed_Text.style.display='none'; Codehighlighter1_134_222_Open_Image.style.display='inline'; Codehighlighter1_134_222_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_134_222_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_134_222_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(file,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">lib</span><span style="color: #000000">"</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">jsdk-15.jar</span><span style="color: #000000">"</span></span><span style="color: #000000"><span style="font-size: 10pt">)).exists();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #0000ff"><span style="font-size: 10pt">public</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;String&nbsp;getStartupClass()<br />
<img id="Codehighlighter1_273_335_Open_Image" onclick="this.style.display='none'; Codehighlighter1_273_335_Open_Text.style.display='none'; Codehighlighter1_273_335_Closed_Image.style.display='inline'; Codehighlighter1_273_335_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_273_335_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_273_335_Closed_Text.style.display='none'; Codehighlighter1_273_335_Open_Image.style.display='inline'; Codehighlighter1_273_335_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_273_335_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_273_335_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">com.caucho.server.resin.Resin</span><span style="color: #000000">"</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div>
<span style="font-size: 10pt">3、修改Resin3XConfigurationStrategy.java文件中部分判断http port、host的代码<br />
原来的XML节点为root-&gt;server-&gt;host-&gt;http-&gt;port&nbsp;&nbsp; and&nbsp; root-&gt;server-&gt;host-&gt;web-app<br />
3.1下面的XML节点为root-&gt;cluster-&gt;server-default-&gt;http-&gt;port and &nbsp;&nbsp; root-&gt;cluster-&gt;host-&gt;web-app<br />
改过的代码为<br />
Element httpElement = document.getRootElement().getChild("cluster", ns).getChild("server-default", ns).getChild("http", ns);<br />
<br />
Element host = getHost(document.getRootElement().getChild("cluster", ns), ns, webApp);<br />
<br />
List hosts = document.getRootElement().getChild("cluster", ns).getChildren("host", ns);<br />
<br />
public InputStream getDefaultResinConfContent()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return getClass().getResourceAsStream("/org/intellij/j2ee/web/resin/resin/resin31.conf");<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
原来的作者没有开源，所以不好做进一步的修改完善，对于3.0的版本应该就不支持了。<br />
</span>
<img src ="http://www.blogjava.net/midea0978/aggbug/146102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2007-09-18 11:04 <a href="http://www.blogjava.net/midea0978/archive/2007/09/18/146102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>集成struts+spring的新思路</title><link>http://www.blogjava.net/midea0978/archive/2007/01/11/93219.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Thu, 11 Jan 2007 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2007/01/11/93219.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/93219.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2007/01/11/93219.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/93219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/93219.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">网上有好多种struts+spring的集成思路，例如</font>
				<a href="http://dev.csdn.net/author/hql638/35679289a9a94e4f97e999508df064db.html">
						<font size="2">http://dev.csdn.net/author/hql638/35679289a9a94e4f97e999508df064db.html</font>
				</a>
				<br />
				<font size="2">这篇文章就介绍得很详细，介绍了下面三种方法：</font>
		</p>
		<p>
				<font size="2">使用 Spring 的 ActionSupport 类整合 Structs <br />使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor <br />将 Struts Action 管理委托给 Spring 框架 <br />其实在使用spring+struts时，我们往往就是想使用Ioc的特性，减少业务逻辑组件之间的依赖关系，通过高度灵活的XML配置提高业务的灵活性和扩展性。步骤如下：<br />首先依旧加入spring的context plugin到struts-config.xml中</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">struts-config</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">plug-in<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />         </span>
				<span style="COLOR: #ff0000">className</span>
				<span style="COLOR: #0000ff">="org.springframework.web.struts.ContextLoaderPlugIn"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">set-property </span>
				<span style="COLOR: #ff0000">property</span>
				<span style="COLOR: #0000ff">="contextConfigLocation"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />         value</span>
				<span style="COLOR: #0000ff">="/WEB-INF/applicationContext.xml"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">plug-in</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">struts-config</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p>
				<font size="2">
						<br />然后包装一下struts的DispatchAction，提供一个方法可以直接获取Spring的WebApplicationContext对象。</font>
				<br />
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> com.cngd.dataview.action; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.struts.actions.DispatchAction;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.springframework.web.context.WebApplicationContext;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.springframework.web.struts.DelegatingActionUtils; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_210_215_Open_Image" onclick="this.style.display='none'; Codehighlighter1_210_215_Open_Text.style.display='none'; Codehighlighter1_210_215_Closed_Image.style.display='inline'; Codehighlighter1_210_215_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_210_215_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_210_215_Closed_Text.style.display='none'; Codehighlighter1_210_215_Open_Image.style.display='inline'; Codehighlighter1_210_215_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_210_215_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_210_215_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000"> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span id="Codehighlighter1_216_290_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_216_290_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Date: 2007-1-11 16:57:48<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@author</span>
						<span style="COLOR: #008000"> midea0978<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@version</span>
						<span style="COLOR: #008000"> 1.0<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_347_555_Open_Image" onclick="this.style.display='none'; Codehighlighter1_347_555_Open_Text.style.display='none'; Codehighlighter1_347_555_Closed_Image.style.display='inline'; Codehighlighter1_347_555_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_347_555_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_347_555_Closed_Text.style.display='none'; Codehighlighter1_347_555_Open_Image.style.display='inline'; Codehighlighter1_347_555_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> CommDispatchAction </span>
				<span style="COLOR: #0000ff">extends</span>
				<span style="COLOR: #000000"> DispatchAction </span>
				<span id="Codehighlighter1_347_555_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_347_555_Open_Text">
						<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_401_553_Open_Image" onclick="this.style.display='none'; Codehighlighter1_401_553_Open_Text.style.display='none'; Codehighlighter1_401_553_Closed_Image.style.display='inline'; Codehighlighter1_401_553_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_401_553_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_401_553_Closed_Text.style.display='none'; Codehighlighter1_401_553_Open_Image.style.display='inline'; Codehighlighter1_401_553_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">protected</span>
						<span style="COLOR: #000000"> WebApplicationContext getAppContext() </span>
						<span id="Codehighlighter1_401_553_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_401_553_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        WebApplicationContext context </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> DelegatingActionUtils.findRequiredWebApplicationContext(</span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.getServlet(), </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> context;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
		</div>
		<p>
				<br />
				<font size="2">然后自己的action可以直接从CommDispatchAction继承通过this.getAppContext();获取WebApplicationContext,这样对原有的<br />struts程序架构体系几乎没有太大的变化，同时可以引入spring的Ioc特性到现有系统中，这个与ActionSupport 中的<br />getWebApplicationContext()方法类似了，但是可以不必拘泥于在两者之间转来转去的。<br /></font>
				<font size="2">
				</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> com.cngd.dataview.action; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> com.spring.bo.WeatherService;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.log4j.Logger;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.struts.action.ActionForm;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.struts.action.ActionForward;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.struts.action.ActionMapping;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.springframework.jdbc.core.JdbcTemplate;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.springframework.jdbc.datasource.DriverManagerDataSource;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.springframework.web.context.WebApplicationContext; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> javax.servlet.http.HttpServletRequest;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> javax.servlet.http.HttpServletResponse; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_521_526_Open_Image" onclick="this.style.display='none'; Codehighlighter1_521_526_Open_Text.style.display='none'; Codehighlighter1_521_526_Closed_Image.style.display='inline'; Codehighlighter1_521_526_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_521_526_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_521_526_Closed_Text.style.display='none'; Codehighlighter1_521_526_Open_Image.style.display='inline'; Codehighlighter1_521_526_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_521_526_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_521_526_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000"> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span id="Codehighlighter1_527_601_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_527_601_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Date: 2007-1-11 16:19:15<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@author</span>
						<span style="COLOR: #008000"> midea0978<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@version</span>
						<span style="COLOR: #008000"> 1.0<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_658_1725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_658_1725_Open_Text.style.display='none'; Codehighlighter1_658_1725_Closed_Image.style.display='inline'; Codehighlighter1_658_1725_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_658_1725_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_658_1725_Closed_Text.style.display='none'; Codehighlighter1_658_1725_Open_Image.style.display='inline'; Codehighlighter1_658_1725_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> DataViewAction </span>
				<span style="COLOR: #0000ff">extends</span>
				<span style="COLOR: #000000"> CommDispatchAction </span>
				<span id="Codehighlighter1_658_1725_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_658_1725_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> Logger logger </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> Logger.getLogger(DataViewAction.</span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">.getName()); <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_743_748_Open_Image" onclick="this.style.display='none'; Codehighlighter1_743_748_Open_Text.style.display='none'; Codehighlighter1_743_748_Closed_Image.style.display='inline'; Codehighlighter1_743_748_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_743_748_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_743_748_Closed_Text.style.display='none'; Codehighlighter1_743_748_Open_Image.style.display='inline'; Codehighlighter1_743_748_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_743_748_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_743_748_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span id="Codehighlighter1_749_897_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_749_897_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> actionMapping<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> actionForm<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> request<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> response<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@return</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@throws</span>
								<span style="COLOR: #008000"> Exception<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> ActionForward genReport(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)<br /><img id="Codehighlighter1_1073_1720_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1073_1720_Open_Text.style.display='none'; Codehighlighter1_1073_1720_Closed_Image.style.display='inline'; Codehighlighter1_1073_1720_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1073_1720_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1073_1720_Closed_Text.style.display='none'; Codehighlighter1_1073_1720_Open_Image.style.display='inline'; Codehighlighter1_1073_1720_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000"> Exception </span>
						<span id="Codehighlighter1_1073_1720_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_1073_1720_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String yymm </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> request.getParameter(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">yymm</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String opname </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> request.getParameter(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">opname</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        logger.info(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">参数：</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> yymm </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">,</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> opname);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        WebApplicationContext ctx </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.getAppContext();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        WeatherService srv </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> (WeatherService) ctx.getBean(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">weatherServiceBean</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        srv.showWeather();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        DriverManagerDataSource ds </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> (DriverManagerDataSource) ctx.getBean(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">datasource</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        JdbcTemplate jt </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> JdbcTemplate(ds);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String sql </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">select count(*) from tab</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> rows </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> jt.queryForInt(sql);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(rows);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> actionMapping.findForward(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">viewresult</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
		</div>
<img src ="http://www.blogjava.net/midea0978/aggbug/93219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2007-01-11 17:27 <a href="http://www.blogjava.net/midea0978/archive/2007/01/11/93219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebLogic配置文件Config.xml中的{3DES}加密字符串的解密思路</title><link>http://www.blogjava.net/midea0978/archive/2006/09/07/68223.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Thu, 07 Sep 2006 04:35:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2006/09/07/68223.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/68223.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2006/09/07/68223.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/68223.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/68223.html</trackback:ping><description><![CDATA[
		<font size="2">通常在weblogic的config.xml文件中，对于关键字符串、密码会自动加密，例如LDAP密码、数据库JDBC连接池连接密码等。通常加密之后前面会加上{3DES}的标识。<br />3DES就是DES算法的增强，相关资料如下：<br />1、DES（Data Encryption Standard）是一种经典的对称算法。其数据分组长度为64位，使用的密钥为64位，有效密钥长度为56位（有8位用于奇偶校验）。它由IBM公司在70年代开发，经过政府的加密标准筛选后，于1976年11月被美国政府采用，随后被美国国家标准局和美国国家标准协会(American National Standard Institute， ANSI) 承认。<br /><br />该技术算法公开，在各行业有着广泛的应用。DES算法从公布到现在已有20多年的历史，由于计算机能力的飞速发展，DES的56位密钥长度显得有些太短了，已经有可能通过穷举的<br /><br />方法来对其进行攻击。但是除此以外，直到现在还没有发现穷举以外的能有效破译DES的方法。<br />2、DES算法现在已经不能提供足够的安全性，因为其有效密钥只有56位。因此，后来又提出了三重DES（或称3DES），该方法的强度大约和112比特的密钥强度相当。 <br />这种方法用两个密钥对明文进行三次运算。设两个密钥是K1和K2，其算法的步骤如图3所示： <br />1. 用密钥K1进行DES加密。 <br />2. 用K2对步骤1的结果进行DES解密。 <br />3. 用步骤2的结果使用密钥K1进行DES加密。 <br /><br />首先需要找到加密的密钥，根据BEA文档可以发现是文件SerializedSystemIni.dat，查找一下安装目录就可以找到整个问见，通常系统管理员应该将该文件设置为不能直接访问，以提高安全性。<br />加密、解密的大致演示算法代码如下，在WebLogic 9.2下面调试通过，运行编译前应该先运行setExamplesEnv.cmd（参考）的环境变量，以保证相关类库已经被引用了。对于低版本的WebLogic,例如WebLogic 7.0/8.1可能不能直接在命令行执行，因为SerializedSystemIni必须在控制台Console环境下面才能调用，有兴趣的朋友可以自行测试看看。 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> weblogic.security.internal.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> weblogic.security.internal.encryption.EncryptionService;<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> weblogic.utils.encoders.BASE64Decoder;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> weblogic.utils.encoders.BASE64Encoder;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> CrackData <br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img id="Codehighlighter1_217_1269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_1269_Open_Text.style.display='none'; Codehighlighter1_217_1269_Closed_Image.style.display='inline'; Codehighlighter1_217_1269_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_217_1269_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_217_1269_Closed_Text.style.display='none'; Codehighlighter1_217_1269_Open_Image.style.display='inline'; Codehighlighter1_217_1269_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_217_1269_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_217_1269_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) <br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img id="Codehighlighter1_261_1267_Open_Image" onclick="this.style.display='none'; Codehighlighter1_261_1267_Open_Text.style.display='none'; Codehighlighter1_261_1267_Closed_Image.style.display='inline'; Codehighlighter1_261_1267_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_261_1267_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_261_1267_Closed_Text.style.display='none'; Codehighlighter1_261_1267_Open_Image.style.display='inline'; Codehighlighter1_261_1267_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_261_1267_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_261_1267_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] salt,keys;<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        salt</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SerializedSystemIni.getSalt();<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        keys</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SerializedSystemIni.getEncryptedSecretKey();<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String data</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id="Codehighlighter1_423_449_Open_Image" onclick="this.style.display='none'; Codehighlighter1_423_449_Open_Text.style.display='none'; Codehighlighter1_423_449_Closed_Image.style.display='inline'; Codehighlighter1_423_449_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_423_449_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_423_449_Closed_Text.style.display='none'; Codehighlighter1_423_449_Open_Image.style.display='inline'; Codehighlighter1_423_449_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">salt.length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_423_449_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_423_449_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            data</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">salt[i]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">salt:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">data);<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        data</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img id="Codehighlighter1_530_556_Open_Image" onclick="this.style.display='none'; Codehighlighter1_530_556_Open_Text.style.display='none'; Codehighlighter1_530_556_Closed_Image.style.display='inline'; Codehighlighter1_530_556_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_530_556_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_530_556_Closed_Text.style.display='none'; Codehighlighter1_530_556_Open_Image.style.display='inline'; Codehighlighter1_530_556_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">keys.length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_530_556_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_530_556_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            data</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">keys[i]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Key:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">data);<br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">EncryptionService svr=SerializedSystemIni.getExistingEncryptionService();</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        EncryptionService svr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SerializedSystemIni.getEncryptionService();<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(svr);<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(svr.getAlgorithm());<br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id="Codehighlighter1_827_1261_Open_Image" onclick="this.style.display='none'; Codehighlighter1_827_1261_Open_Text.style.display='none'; Codehighlighter1_827_1261_Closed_Image.style.display='inline'; Codehighlighter1_827_1261_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_827_1261_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_827_1261_Closed_Text.style.display='none'; Codehighlighter1_827_1261_Open_Image.style.display='inline'; Codehighlighter1_827_1261_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(args.length</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_827_1261_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_827_1261_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img id="Codehighlighter1_861_1006_Open_Image" onclick="this.style.display='none'; Codehighlighter1_861_1006_Open_Text.style.display='none'; Codehighlighter1_861_1006_Closed_Image.style.display='inline'; Codehighlighter1_861_1006_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_861_1006_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_861_1006_Closed_Text.style.display='none'; Codehighlighter1_861_1006_Open_Image.style.display='inline'; Codehighlighter1_861_1006_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(args[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].equals(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">encrypt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))</span><span id="Codehighlighter1_861_1006_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_861_1006_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] edata</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">svr.encryptString(args[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]);<br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                String s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BASE64Encoder()).encodeBuffer(edata);<br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Encode:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">s);<br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img id="Codehighlighter1_1040_1257_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1040_1257_Open_Text.style.display='none'; Codehighlighter1_1040_1257_Closed_Image.style.display='inline'; Codehighlighter1_1040_1257_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1040_1257_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1040_1257_Closed_Text.style.display='none'; Codehighlighter1_1040_1257_Open_Image.style.display='inline'; Codehighlighter1_1040_1257_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(args[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].equals(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">decrypt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))</span><span id="Codehighlighter1_1040_1257_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1040_1257_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img id="Codehighlighter1_1049_1199_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1049_1199_Open_Text.style.display='none'; Codehighlighter1_1049_1199_Closed_Image.style.display='inline'; Codehighlighter1_1049_1199_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1049_1199_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1049_1199_Closed_Text.style.display='none'; Codehighlighter1_1049_1199_Open_Image.style.display='inline'; Codehighlighter1_1049_1199_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">try</span><span id="Codehighlighter1_1049_1199_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1049_1199_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] edata </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BASE64Decoder()).decodeBuffer(args[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]);<br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                String txt</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">svr.decryptString(edata);<br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decode:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">txt);<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img id="Codehighlighter1_1219_1252_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1219_1252_Open_Text.style.display='none'; Codehighlighter1_1219_1252_Closed_Image.style.display='inline'; Codehighlighter1_1219_1252_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1219_1252_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1219_1252_Closed_Text.style.display='none'; Codehighlighter1_1219_1252_Open_Image.style.display='inline'; Codehighlighter1_1219_1252_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                }</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception ex)</span><span id="Codehighlighter1_1219_1252_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1219_1252_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    ex.printStackTrace();<br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />测试运行结果如下：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">root@srdsh # </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">rdsh</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">bea92</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">jdk150_04</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">bin</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">java CrackData decrypt nMttUc5jNe9RNJXslXjbJQ</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">86</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">123</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">107</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">42</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">75</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">31</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">93</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">75</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">115</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">42</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">53</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">41</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">36</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">85</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">81</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">66</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">110</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">31</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">29</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">79</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />weblogic.security.internal.encryption.JSafeEncryptionServiceImpl@199f91c<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />3DES<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Decode:weblogic<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />root@srdsh # </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">rdsh</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">bea92</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">jdk150_04</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">bin</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">java CrackData decrypt erzD515N5z2zSnOk7uG1cYQthCbYA5OU6Bw</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Zt5BsjPruTQaOZASh</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">ZZW4kuBGvfbZ2BXWSACbgOZ2MY4bHtpOPps</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">6WfZJg<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">86</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">123</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">107</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">42</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">75</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">31</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">93</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">75</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">115</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">42</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">53</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">41</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">36</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">85</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">81</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">66</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">110</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">31</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">29</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">79</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />weblogic.security.internal.encryption.JSafeEncryptionServiceImpl@199f91c<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />3DES<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Decode:</span><span style="COLOR: #000000">0xa778f572127d2282247ec653147c35d4e4040aca016c6d1e06ab325af5798fca</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />root@srdsh #</span></div></font>
<img src ="http://www.blogjava.net/midea0978/aggbug/68223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2006-09-07 12:35 <a href="http://www.blogjava.net/midea0978/archive/2006/09/07/68223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XDB与tomcat 8080端口冲突的解决办法</title><link>http://www.blogjava.net/midea0978/archive/2005/12/22/25061.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Thu, 22 Dec 2005 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2005/12/22/25061.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/25061.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2005/12/22/25061.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/25061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/25061.html</trackback:ping><description><![CDATA[<P><FONT size=2>在安装了Oracle 9i之后XDB的http默认占用了8080，ftp会占用2100端口，其实XDB就是XML Database提供的一种服务，在oracle中有一个package可以用来维护管理该服务的配置信息。这个包就是<STRONG>dbms_xdb.<BR></STRONG>解决方法有下面几种：<BR>1、sqlplus "/ as sysdba"连入数据库<BR>SQL&gt; -- Change the HTTP/WEBDAV port from 8080 to 8081<BR>&nbsp; SQL&gt; <B>call dbms_xdb.cfg_update(updateXML(</B><BR>&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>&nbsp; dbms_xdb.cfg_get()</B><BR>&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>, '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'</B><BR>&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>, 8081))</B><BR>&nbsp;&nbsp;&nbsp; 5&nbsp; <B>/</B><BR><BR>&nbsp; Call completed. <BR><BR><BR>&nbsp; SQL&gt; -- Change the FTP port from 2100 to 2111<BR>&nbsp; SQL&gt; <B>call dbms_xdb.cfg_update(updateXML(</B><BR>&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>&nbsp; dbms_xdb.cfg_get()</B><BR>&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>, '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'</B><BR>&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>, 2111))</B><BR>&nbsp;&nbsp;&nbsp; 5&nbsp; <B>/</B><BR><BR>&nbsp; Call completed. <BR><BR><BR>&nbsp; SQL&gt; <B>COMMIT;</B><BR><BR>&nbsp; Commit complete. <BR><BR><BR>&nbsp; SQL&gt; <B>EXEC dbms_xdb.cfg_refresh;</B><BR><BR>&nbsp; PL/SQL procedure successfully completed.<BR><BR><BR>&nbsp; SQL&gt; -- Verify the change<BR>&nbsp; SQL&gt; <B>set long 100000</B><BR>&nbsp; SQL&gt; <B>set pagesize 9000</B><BR>&nbsp; SQL&gt; <B>SELECT dbms_xdb.cfg_get FROM dual;</B><BR>2、移除XDB服务，将实例信息去掉<BR>dispatchers='(PROTOCOL=TCP) (SERVICE=&lt;ORACLE_SID&gt;XDB)'<BR><BR>3、使用Oracle Enterprise Manager 中的的<STRONG>XML Database</STRONG> 配置信息中修改掉端口就可以了</FONT></P><img src ="http://www.blogjava.net/midea0978/aggbug/25061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2005-12-22 13:37 <a href="http://www.blogjava.net/midea0978/archive/2005/12/22/25061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JIRA 3.3.2注册与DSA签名算法研究 </title><link>http://www.blogjava.net/midea0978/archive/2005/10/24/16566.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Mon, 24 Oct 2005 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2005/10/24/16566.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/16566.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2005/10/24/16566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/16566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/16566.html</trackback:ping><description><![CDATA[<P>JIRA是一个不错的问题跟踪系统，在软件开发项目中不可或缺，详细资料可以访问<A href="http://www.atlassian.com/software/jira/">http://www.atlassian.com/software/jira/</A><BR><BR>本文探讨了JIRA 3.3.2的注册机制，顺便利用JAVA的数字签名机制实现了简单的demo,具体内容见：<BR><A HREF="/midea0978/articles/16563.html">http://www.blogjava.net/midea0978/articles/16563.html</A></P><img src ="http://www.blogjava.net/midea0978/aggbug/16566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2005-10-24 14:04 <a href="http://www.blogjava.net/midea0978/archive/2005/10/24/16566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IBM WebSphere 6.0的BUG</title><link>http://www.blogjava.net/midea0978/archive/2005/09/28/14324.html</link><dc:creator>在路上...</dc:creator><author>在路上...</author><pubDate>Wed, 28 Sep 2005 11:28:00 GMT</pubDate><guid>http://www.blogjava.net/midea0978/archive/2005/09/28/14324.html</guid><wfw:comment>http://www.blogjava.net/midea0978/comments/14324.html</wfw:comment><comments>http://www.blogjava.net/midea0978/archive/2005/09/28/14324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/midea0978/comments/commentRss/14324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/midea0978/services/trackbacks/14324.html</trackback:ping><description><![CDATA[有时候，像IBM这样的大公司也会有一些弱智的错误，最近在一个项目中需要从websphere5.1升级6.0，发现在JSP中会出现这样的错误：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">String fieldname="fieldname",value="value";<IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><SPAN style="COLOR: #000000">out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">fieldname</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;<![CDATA[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">value</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]]&gt;</< SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">fieldname</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV>这时候你会发现应该显示出来的CDATA标签不见了。<BR>在另外一种写法下，也会有错误：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">String&nbsp;fieldvalue</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/dot.gif"><BR></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">td</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">[CDATA[</SPAN><SPAN style="COLOR: #000000">&lt;%=</SPAN><SPAN style="COLOR: #000000">fieldvalue</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000">]]</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">td</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN></DIV><BR><SPAN style="COLOR: #000000"><SPAN style="COLOR: #000000">在这种情况下，<%=fieldvalue%>是不会被执行的，在运行后的jsp里面仍然存在。<BR>很可惜，这个问题已经得到了IBM开发实验室的确认，但是补丁到现在还没于出来,最新的版本是6.0.2。</SPAN></SPAN></SPAN></SPAN><img src ="http://www.blogjava.net/midea0978/aggbug/14324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/midea0978/" target="_blank">在路上...</a> 2005-09-28 19:28 <a href="http://www.blogjava.net/midea0978/archive/2005/09/28/14324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>