??xml version="1.0" encoding="utf-8" standalone="yes"?>青青草国产一区二区三区,亚洲人精品午夜,亚洲精品视频中文字幕http://www.aygfsteel.com/dong/Share Our Experience of Javazh-cnWed, 07 May 2025 21:08:41 GMTWed, 07 May 2025 21:08:41 GMT60C-JDBC 数据库集中间g资料http://www.aygfsteel.com/dong/archive/2010/03/25/316577.htmlDongDongThu, 25 Mar 2010 12:23:00 GMThttp://www.aygfsteel.com/dong/archive/2010/03/25/316577.htmlhttp://www.aygfsteel.com/dong/comments/316577.htmlhttp://www.aygfsteel.com/dong/archive/2010/03/25/316577.html#Feedback0http://www.aygfsteel.com/dong/comments/commentRss/316577.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/316577.htmlCJDBC官网http://c-jdbc.ow2.org/
cjdbc与hibernate的整?/strong>
Configuring C-JDBC with Hibernate

C-JDBC just has to be defined as any JDBC driver in Hibernate, leaving the syntax set to the proper database. Here is a configuration example to use Hibernate with a C-JDBC cluster made of Sybase backends:
## C-JDBC
hibernate.dialect                 net.sf.hibernate.dialect.SybaseDialect
hibernate.connection.driver_class org.objectweb.cjdbc.driver.Driver
hibernate.connection.username     user
hibernate.connection.password     pass
hibernate.connection.url          jdbc:cjdbc://localhost:25322/test       
      
      转自Q?/font>http://lzj0470.javaeye.com/blog/445348
一、前a
         cjdbc ( http://c-jdbc.objectweb.org/ ) 是一个open source的数据库集群中间ӞMZjdbc的应用都可以通过它透明地访问数据库集群Q它可以q行各个节点之间的数据复Ӟq且可以实现各个节点的查询负载均衡。通过q样的YӞ偶们可以方便的实现RAIDb - Redundant Array of Inexpensive Database 廉h数据库冗余阵列?br />         大型应用随着用户量访问越来越大,增加数据库存储和做好数据库冗余可以增加系l的可靠性和性能?br />
        下面利用cjdbcQ把两台对等?Mysql ?RAIDbQ?strong>本文假定你已l搭建好两台对等?Mysql环境q徏好一个需要做集群冗余的数据库 clusterdb?/strong>
二、配|环?/span>
Mysql: 5.0.19, q?InnoDB 作ؓ Mysql 引擎

C-jdbc: 2.0.2

Jdk: 1.5
三、选择合适的 C-JDBC RAIDb 机制

cjdbc有几URAIDb的机制可以选择Q如RAIDb-0QRAIDb-1{等Q可以根据不同的情况选择不同的RAIDb的机制。各U?RAIDb的机制详情请查看 cjdbc 的文档和 Demo?br />
RAIDb-1有如下功能:
完全镜像处理机制Q每个节点上都有完整的数据库l构Q这U方式提供了最好的定w处理Qƈ且通过讄合理的Loading Balance{略Q可以带来查询性能相当好的提高。但是由于对于Q何的写操作(create/update/delete)Q需要在各个节点上进行传播复Ӟ写操作就会比原来慢一些了Q如下图Q?/span>



q里选择 RAIDb-1 做ؓ cjdbc RAIDb 机制?/span>

四、给两台对等?Mysql Q假设两?Mysql 的IP分别?192.168.0.2?92.168.0.3
bash> mysql -h192.168.0.2 -uroot
bash> use clusterdb
bash> create table user (id int(3) not null auto_increment primary key, name char(50) not null) engine innodb;
bash> exit;

bash> mysql -h192.168.0.3 -uroot
bash> use clusterdb
bash> create table user (id int(3) not null auto_increment primary key, name char(50) not null) engine innodb;
bash> exit;
五、在 Linux 下安?C-JDBC Controller
bash> mkdir -p /usr/local/c-jdbc
bash> cd /usr/local/c-jdbc
bash> tar xvfz c-jdbc-2.0.2-bin.tar.gz
bash> export CJDBC_HOME=/usr/local/c-jdbc
六、把 Mysql JDBC Driver 攑ֈ C-JDBC Controller 中来

q里我们使用 mysql-connector-java-3.1.12-bin.jar 驱动E序Q把它放?br /> /usr/local/c-jdbc/drivers ?/span>

七、配|?C-JDBC Controller
1、在 /usr/local/c-jdbc/config/virtualdatabase 目录中创?虚拟数据库配|文Ӟq把它命名ؓ mysql-raidb1-distribution.xmlQ内容如下:

<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE C-JDBC PUBLIC "-//ObjectWeb//DTD C-JDBC 2.0.2//EN" "http://c-jdbc.objectweb.org/dtds/c-jdbc-2.0.2.dtd">

<C-JDBC>

<VirtualDatabase name="myDB">

<Distribution>
</Distribution>

<AuthenticationManager>
<Admin>
<User username="admin" password="c-jdbc"/>
</Admin>
<VirtualUsers>
<VirtualLogin vLogin="boss" vPassword="boss"/>
</VirtualUsers>
</AuthenticationManager>

<DatabaseBackend name="mysqlNode211" driver="org.gjt.mm.mysql.Driver" url="jdbc:mysql://192.168.0.2/clusterdb" connectionTestStatement="select 1">
<ConnectionManager vLogin="boss" rLogin="boss_user" rPassword="123456">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="10" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>

<DatabaseBackend name="mysqlNode213" driver="org.gjt.mm.mysql.Driver" url="jdbc:mysql://192.168.0.3/clusterdb" connectionTestStatement="select 1">
<ConnectionManager vLogin="boss" rLogin="boss_user" rPassword="123456">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="10" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>

<RequestManager>
<RequestScheduler>
<RAIDb-1Scheduler level="passThrough"/>
</RequestScheduler>

<LoadBalancer>
<RAIDb-1>
<WaitForCompletion policy="first"/>
<RAIDb-1-LeastPendingRequestsFirst/>
</RAIDb-1>
</LoadBalancer>
</RequestManager>

</VirtualDatabase>

</C-JDBC>

2、在 /usr/local/c-jdbc/config/controller 目录中创?C-JDBC controller 配置文gQƈ把它命名?uud-controller-distributed.xmlQ内容如下:

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE C-JDBC-CONTROLLER PUBLIC "-//ObjectWeb//DTD C-JDBC-CONTROLLER 2.0.2//EN" "http://c-jdbc.objectweb.org/dtds/c-jdbc-controller-2.0.2.dtd">
<C-JDBC-CONTROLLER>
<Controller port="25323">
<JmxSettings>
<RmiJmxAdaptor port="1091"/>
</JmxSettings>
<VirtualDatabase configFile="mysql-raidb1-distribution.xml" virtualDatabaseName="myDB" autoEnableBackends="true"/>
</Controller>
</C-JDBC-CONTROLLER>

3、在 /usr/local/c-jdbc/config/demo 目录中创建启?C-JDBC controller shQƈ把它命名?uud-distributed-raidb1-controller.shQ内容如下:

#!/bin/sh

export CJDBC_HOME=/usr/local/c-jdbc
export JAVA_HOME=/opt/jdk1.5

cd $CJDBC_HOME/bin

echo "Waiting for mysql servers to finish start up"

echo "Starting Controller"
./controller.sh -f ../config/controller/uud-controller-distributed.xml &

八、启?C-JDBC Controller
bash> cd /usr/local/c-jdbc/demo
bash> chmod u+rwx uud-distributed-raidb1-controller.sh
bash> ./uud-distributed-raidb1-controller.sh &

如果启动正常Q显C的信息如下Q?

Waiting for mysql servers to finish start up
Starting Controller
2006-04-20 10:32:21,126 INFO controller.core.Controller C-JDBC controller (2.0.2)
2006-04-20 10:32:21,189 INFO controller.core.Controller Loading configuration file: ../config/controller/uud-controller-distributed.xml
2006-04-20 10:32:21,278 INFO controller.core.Controller JMX is enabled
2006-04-20 10:32:21,308 INFO controller.core.Controller Starting JMX server on host: 127.0.0.1
2006-04-20 10:32:21,674 INFO backend.DatabaseBackend.mysqlNode211 Adding connection manager for virtual user "boss"
2006-04-20 10:32:21,749 INFO backend.DatabaseBackend.mysqlNode213 Adding connection manager for virtual user "boss"
2006-04-20 10:32:21,809 INFO controller.RequestManager.myDB Request manager will parse requests with the following granularity: NO_PARSING
2006-04-20 10:32:21,814 INFO controller.virtualdatabase.myDB Configuring jgroups using: file:/usr/local/c-jdbc/config/jgroups.xml

-------------------------------------------------------
GMS: address is 127.0.0.1:32773
-------------------------------------------------------
2006-04-20 10:32:26,476 INFO controller.virtualdatabase.myDB Group myDB connected to /127.0.0.1:32773[/127.0.0.1:32773]
2006-04-20 10:32:26,476 INFO controller.virtualdatabase.myDB First controller in group myDB
2006-04-20 10:32:26,477 WARN controller.virtualdatabase.myDB No recovery log has been configured, enabling backend without checkpoint.

[1]+ Done ./uud-distributed-raidb1-controller.sh

八、编?C-JDBC 客户端程?/span>
1、把 C-JDBC Drivers(/usr/local/c-jdbc/drivers/c-jdbc-driver.jar) 攄?CLASSPATH ?br /> 2、编写插?10 条数据到 Mysql 中,E序如下Q?

/**
* @author 胡荣?br /> * @Company 世纪?21cn
*/
package com.cjdbc.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.DriverManager;

/**
*
*/
public class GenerateSampleData {

public void generate() {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// q是 c-jdbc drivers ?Drivers classQ注意不?mysql ?Drivers class
Class.forName("org.objectweb.cjdbc.driver.Driver").newInstance();
// 192.168.0.1 ?cjdbc controller 所在的 ip
// myDB 是在 文g mysql-raidb1-distribution.xml 里定义的 <VirtualDatabase name="myDB">
// user=boss&password=boss 是在 文g mysql-raidb1-distribution.xml 里定义的
// <VirtualUsers>
// <VirtualLogin vLogin="boss" vPassword="boss"/>
// </VirtualUsers>

String url = "jdbc:cjdbc://192.168.0.1:25323/myDB?user=boss&password=boss";

conn = DriverManager.getConnection(url);

try{
conn.setAutoCommit(false);
pstmt = conn.prepareStatement("insert into user values ('', ?)");

int numOfTestRecords = 10;
System.out.println("Update Record Start.");
for (int i=0;i<numOfTestRecords;i++) {
String newkey = i + "-" + i;
pstmt.setString(1, "hua_" + newkey);
pstmt.executeUpdate();

}
conn.commit();
System.out.println("Update Record Success.");
}
catch(Exception ex){
conn.rollback();
ex.printStackTrace();
}
finally{
try {
if( pstmt != null )
pstmt.close();
if( conn != null)
conn.close();
}
catch(Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
GenerateSampleData g = new GenerateSampleData();
g.generate();

}

}

3、程序执行完毕后Q分别到 Mysql Node 192.168.0.2 ?192.168.0.3 查询Q看看是否已同步了数据,如果两个 Mysql Node 都有相同的数据,说明 C-JDBC 环境搭徏成功?/span>



Dong 2010-03-25 20:23 发表评论
]]>
颠覆JAVAQ用WEB的方式开发桌面程?一)http://www.aygfsteel.com/dong/archive/2009/03/19/260789.htmlDongDongThu, 19 Mar 2009 07:16:00 GMThttp://www.aygfsteel.com/dong/archive/2009/03/19/260789.htmlhttp://www.aygfsteel.com/dong/comments/260789.htmlhttp://www.aygfsteel.com/dong/archive/2009/03/19/260789.html#Feedback23http://www.aygfsteel.com/dong/comments/commentRss/260789.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/260789.html最q做了一个日志管理系l?br /> 个h觉得采用了一套非帔R常创新或者变态的开发方式,像题目说的那样Q用web的方法开发桌面应用程序,当然所有的技术都是基于java的?br /> ȝ一下在整个目中用到的技?/strong>

1、底层服务器的开发socket通信、http报文解析、反机Ӟq些技术其实就是开发了一Ƒְ型的服务器,让我们的web代码能够在本地运行v来,之所以选择自己开发服务器的原因是Qtomcat对于我们q个桌面程序来说还是太大了点,如果作ؓ桌面启动Q用户不可能{待E序启动q么长的旉Q我l这个服务器起了个名字叫?span style="color: #ff0000">jnetQ?br /> 2、SWTQ包括的览器控件和H口{?br /> 3、用installanywhere来打包程序,方便发布
4、前台展现数据用了ext2.2
5、扩展自己开发的服务?span style="color: #ff0000">jnetQ开发出自己?#8220;action”Q应该来说还是符合MVC?br /> 数据库用的是accessQ采用jdbc的方式访问,你知道,如果在桌面Y件上使用hibernate...

好了Q不说废?br /> 先脓出成品的效果?br />
1、桌面图?br />

2、登录界?br />

3、登录效果图


4、主界面


是不是觉得还不错呢?JAVA也可以扬眉吐气开发出q样的桌面系l,可惜的是因ؓ使用CSWTQ所以整个项目ƈ不能跨^収ͼ攑ֈlinuxpȝ下去q行?br /> 好了先理一理,发一张项目的原理?/strong>


看图说话Q我们整个项目的构架Q就是这个样子的Q采用SWT装了IE作ؓ前台展现Q后C用自己开发的服务器作为后台来处理数据Q中间数据通信方式当然只能是http?br />
所以中心思想是Q我开发了个服务器Q这个服务器能够让用h展自qc,自己的方法,然后用户可以根据自q需要来书写自己的系l,最最最重要的就是,让我们这些写惯了J2EE的h能够使用已经形成的思维来编写桌面系l,我们可以不需要再dswing和swtQ可以用html的方式来做前台的布局Q因实说我每次写桌面程序的时候,M把代码弄得一团糟Q在webpȝ上容易规规矩矩的写出分层的代码,桌面pȝ...布局p我头大(我的意思是当你跑出LU活q的时候,不用再学一套东西,呵呵Q?br />
好了Q这个帖子只是一个简单的介绍Q整个系l具体的实现方式Q会在后l的帖子中一步步解析Q大家有什么意见或者徏议可以给我留aQ谢谢!


Dong 2009-03-19 15:16 发表评论
]]>
JAVA反射机制的简单应?/title><link>http://www.aygfsteel.com/dong/archive/2008/06/05/206083.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Thu, 05 Jun 2008 08:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/dong/archive/2008/06/05/206083.html</guid><wfw:comment>http://www.aygfsteel.com/dong/comments/206083.html</wfw:comment><comments>http://www.aygfsteel.com/dong/archive/2008/06/05/206083.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.aygfsteel.com/dong/comments/commentRss/206083.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/dong/services/trackbacks/206083.html</trackback:ping><description><![CDATA[<p style="font-size: 10pt; font-family: q圆">  开发的时候有时候会到q样的情况,我们在写E序的时候ƈ不知道需要调用某个对象的哪个ҎQ只有程序运行后Q我们才能够知道。或许我们需要根据客L传过来的某个String参数的值来判断我们应该执行哪个Ҏ。在q种情况下JAVA的反执行就可以帮上忙了。下面是我做的一个简单的试代码Q提供给大家做个参考?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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.InvocationTargetException;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.Method;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img id="Codehighlighter1_86_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_128_Open_Text.style.display='none'; Codehighlighter1_86_128_Closed_Image.style.display='inline'; Codehighlighter1_86_128_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_86_128_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_86_128_Closed_Text.style.display='none'; Codehighlighter1_86_128_Open_Image.style.display='inline'; Codehighlighter1_86_128_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span id="Codehighlighter1_86_128_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_86_128_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> * </span><span style="color: #808080">@author</span><span style="color: #008000"> Dong<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /> * 试JAVA reflect机制<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" /> </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_150_950_Open_Image" onclick="this.style.display='none'; Codehighlighter1_150_950_Open_Text.style.display='none'; Codehighlighter1_150_950_Closed_Image.style.display='inline'; Codehighlighter1_150_950_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_150_950_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_150_950_Closed_Text.style.display='none'; Codehighlighter1_150_950_Open_Image.style.display='inline'; Codehighlighter1_150_950_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TestRef</span><span id="Codehighlighter1_150_950_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_150_950_Open_Text"><span style="color: #000000">{<br /> <img id="Codehighlighter1_156_185_Open_Image" onclick="this.style.display='none'; Codehighlighter1_156_185_Open_Text.style.display='none'; Codehighlighter1_156_185_Closed_Image.style.display='inline'; Codehighlighter1_156_185_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_156_185_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_156_185_Closed_Text.style.display='none'; Codehighlighter1_156_185_Open_Image.style.display='inline'; Codehighlighter1_156_185_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />    </span><span id="Codehighlighter1_156_185_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_156_185_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />     * </span><span style="color: #808080">@param</span><span style="color: #008000"> args<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />     </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_229_948_Open_Image" onclick="this.style.display='none'; Codehighlighter1_229_948_Open_Text.style.display='none'; Codehighlighter1_229_948_Closed_Image.style.display='inline'; Codehighlighter1_229_948_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_229_948_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_229_948_Closed_Text.style.display='none'; Codehighlighter1_229_948_Open_Image.style.display='inline'; Codehighlighter1_229_948_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args)</span><span id="Codehighlighter1_229_948_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_229_948_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            TestBean test </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> TestBean();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            Method[] methods </span><span style="color: #000000">=</span><span style="color: #000000"> test.getClass().getMethods();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            test.setAbc(</span><span style="color: #000000">"</span><span style="color: #000000">---</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img id="Codehighlighter1_413_942_Open_Image" onclick="this.style.display='none'; Codehighlighter1_413_942_Open_Text.style.display='none'; Codehighlighter1_413_942_Closed_Image.style.display='inline'; Codehighlighter1_413_942_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_413_942_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_413_942_Closed_Text.style.display='none'; Codehighlighter1_413_942_Open_Image.style.display='inline'; Codehighlighter1_413_942_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />            </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"><</span><span style="color: #000000">methods.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_413_942_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_413_942_Open_Text"><span style="color: #000000">{<br /> <img id="Codehighlighter1_482_928_Open_Image" onclick="this.style.display='none'; Codehighlighter1_482_928_Open_Text.style.display='none'; Codehighlighter1_482_928_Closed_Image.style.display='inline'; Codehighlighter1_482_928_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_482_928_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_482_928_Closed_Text.style.display='none'; Codehighlighter1_482_928_Open_Image.style.display='inline'; Codehighlighter1_482_928_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />                </span><span style="color: #0000ff">if</span><span style="color: #000000">(methods[i].getName().equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">getabc</span><span style="color: #000000">"</span><span style="color: #000000">))</span><span id="Codehighlighter1_482_928_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_482_928_Open_Text"><span style="color: #000000">{<br /> <img id="Codehighlighter1_508_599_Open_Image" onclick="this.style.display='none'; Codehighlighter1_508_599_Open_Text.style.display='none'; Codehighlighter1_508_599_Closed_Image.style.display='inline'; Codehighlighter1_508_599_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_508_599_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_508_599_Closed_Text.style.display='none'; Codehighlighter1_508_599_Open_Image.style.display='inline'; Codehighlighter1_508_599_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />                    </span><span style="color: #0000ff">try</span><span style="color: #000000"> </span><span id="Codehighlighter1_508_599_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_508_599_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />                        System.out.println(methods[i].invoke(test));<br /> <img id="Codehighlighter1_636_703_Open_Image" onclick="this.style.display='none'; Codehighlighter1_636_703_Open_Text.style.display='none'; Codehighlighter1_636_703_Closed_Image.style.display='inline'; Codehighlighter1_636_703_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_636_703_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_636_703_Closed_Text.style.display='none'; Codehighlighter1_636_703_Open_Image.style.display='inline'; Codehighlighter1_636_703_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />                    }</span></span><span style="color: #000000"> </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IllegalArgumentException e) </span><span id="Codehighlighter1_636_703_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_636_703_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />                        e.printStackTrace();<br /> <img id="Codehighlighter1_738_805_Open_Image" onclick="this.style.display='none'; Codehighlighter1_738_805_Open_Text.style.display='none'; Codehighlighter1_738_805_Closed_Image.style.display='inline'; Codehighlighter1_738_805_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_738_805_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_738_805_Closed_Text.style.display='none'; Codehighlighter1_738_805_Open_Image.style.display='inline'; Codehighlighter1_738_805_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />                    }</span></span><span style="color: #000000"> </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IllegalAccessException e) </span><span id="Codehighlighter1_738_805_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_738_805_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />                        e.printStackTrace();<br /> <img id="Codehighlighter1_843_910_Open_Image" onclick="this.style.display='none'; Codehighlighter1_843_910_Open_Text.style.display='none'; Codehighlighter1_843_910_Closed_Image.style.display='inline'; Codehighlighter1_843_910_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_843_910_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_843_910_Closed_Text.style.display='none'; Codehighlighter1_843_910_Open_Image.style.display='inline'; Codehighlighter1_843_910_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />                    }</span></span><span style="color: #000000"> </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (InvocationTargetException e) </span><span id="Codehighlighter1_843_910_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.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_843_910_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />                        e.printStackTrace();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />                    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />                }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />            }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <img src ="http://www.aygfsteel.com/dong/aggbug/206083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/dong/" target="_blank">Dong</a> 2008-06-05 16:36 <a href="http://www.aygfsteel.com/dong/archive/2008/06/05/206083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA中Object[]数据转String[]http://www.aygfsteel.com/dong/archive/2008/06/02/205280.htmlDongDongMon, 02 Jun 2008 03:25:00 GMThttp://www.aygfsteel.com/dong/archive/2008/06/02/205280.htmlhttp://www.aygfsteel.com/dong/comments/205280.htmlhttp://www.aygfsteel.com/dong/archive/2008/06/02/205280.html#Feedback0http://www.aygfsteel.com/dong/comments/commentRss/205280.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/205280.html(String[])ArrayList.toArray(new String[0]);


Dong 2008-06-02 11:25 发表评论
]]>在XML配置文g中输?amp;W号http://www.aygfsteel.com/dong/archive/2008/05/21/201812.htmlDongDongWed, 21 May 2008 01:03:00 GMThttp://www.aygfsteel.com/dong/archive/2008/05/21/201812.htmlhttp://www.aygfsteel.com/dong/comments/201812.htmlhttp://www.aygfsteel.com/dong/archive/2008/05/21/201812.html#Feedback0http://www.aygfsteel.com/dong/comments/commentRss/201812.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/201812.htmlXML里是无法直接正常输出&{特D字W的Q可?amp;amp;转义表示Q?/span>

Dong 2008-05-21 09:03 发表评论
]]>
Fmt标签的?/title><link>http://www.aygfsteel.com/dong/archive/2008/05/20/201568.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Tue, 20 May 2008 01:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/dong/archive/2008/05/20/201568.html</guid><wfw:comment>http://www.aygfsteel.com/dong/comments/201568.html</wfw:comment><comments>http://www.aygfsteel.com/dong/archive/2008/05/20/201568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/dong/comments/commentRss/201568.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/dong/services/trackbacks/201568.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">1、数字格式化<br /> <fmt:formatNumber value="33.33333" pattern="#.0"></fmt:formatNumber>-->输出33.3<br /> <div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid">pattern中符LU束规定<br /> 0                     一个数?br /> #                     一个数位,前导零和q尾零不昄<br /> .                      数点分割位|?br /> Q?nbsp;                    l分隔符的位|?br /> -                      负数前缀<br /> %                    ?00乘,q显C百分号<br /> 其他MW号    在输出字W串中包括指定符?/div> 2、日期格式化<br /> <fmt:formatDate value="${vo.lateCompleteDate}" type="both" pattern="yy-MM-dd"/></span> <img src ="http://www.aygfsteel.com/dong/aggbug/201568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/dong/" target="_blank">Dong</a> 2008-05-20 09:29 <a href="http://www.aygfsteel.com/dong/archive/2008/05/20/201568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HashMap标准遍历Ҏhttp://www.aygfsteel.com/dong/archive/2008/05/19/201440.htmlDongDongMon, 19 May 2008 09:09:00 GMThttp://www.aygfsteel.com/dong/archive/2008/05/19/201440.htmlhttp://www.aygfsteel.com/dong/comments/201440.htmlhttp://www.aygfsteel.com/dong/archive/2008/05/19/201440.html#Feedback0http://www.aygfsteel.com/dong/comments/commentRss/201440.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/201440.htmlHashMap<String,String> testMap = new HashMap<String,String>();
for (Map.Entry<String, String> entry : testMap .entrySet()) {
entry.getKey();
entry.getValue();
}

Dong 2008-05-19 17:09 发表评论
]]>
在java环境中访问spring中配|的对象http://www.aygfsteel.com/dong/archive/2008/05/19/201430.htmlDongDongMon, 19 May 2008 08:45:00 GMThttp://www.aygfsteel.com/dong/archive/2008/05/19/201430.htmlhttp://www.aygfsteel.com/dong/comments/201430.htmlhttp://www.aygfsteel.com/dong/archive/2008/05/19/201430.html#Feedback0http://www.aygfsteel.com/dong/comments/commentRss/201430.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/201430.htmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml");
Map<String,String> bureauMap = ((DictionaryService)ctx.getBean("dictionaryService")).getBureauMap();

Dong 2008-05-19 16:45 发表评论
]]>
关于request.request.getRequestDispatcher().forward()Ҏ的一点看?/title><link>http://www.aygfsteel.com/dong/archive/2008/04/17/193658.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Thu, 17 Apr 2008 02:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/dong/archive/2008/04/17/193658.html</guid><wfw:comment>http://www.aygfsteel.com/dong/comments/193658.html</wfw:comment><comments>http://www.aygfsteel.com/dong/archive/2008/04/17/193658.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/dong/comments/commentRss/193658.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/dong/services/trackbacks/193658.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Arial">今天在调试一个ServletE序的时候,报了以下错误Q?br style="font-family: " /> <span style="color: red">java.lang.IllegalStateException: Cannot forward after response has been committed<br /> </span>Ҏ字面理解的话Q意识是在response已经提交后程序不能再一ơ的跌{Q?br /> <br /> 研究代码以后发现Q是因ؓ前面已经执行q一?font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font><br /> 但是后面?font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font>依然被执行到了!<br /> <br /> 那么很有理由怿<font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font>跌{本n是不会返回什么,也不会终止程序体的执行!<br /> E序体后面该执行的还是会执行Q?/span> <img src ="http://www.aygfsteel.com/dong/aggbug/193658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/dong/" target="_blank">Dong</a> 2008-04-17 10:28 <a href="http://www.aygfsteel.com/dong/archive/2008/04/17/193658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat配置JNDI数据?报错解决http://www.aygfsteel.com/dong/archive/2008/02/24/181755.htmlDongDongSun, 24 Feb 2008 05:47:00 GMThttp://www.aygfsteel.com/dong/archive/2008/02/24/181755.htmlhttp://www.aygfsteel.com/dong/comments/181755.htmlhttp://www.aygfsteel.com/dong/archive/2008/02/24/181755.html#Feedback1http://www.aygfsteel.com/dong/comments/commentRss/181755.htmlhttp://www.aygfsteel.com/dong/services/trackbacks/181755.html
<Resource name="jdbc/dong"  auth="Container" type="javax.sql.DataSource"/>
 
 
<ResourceParams name="jdbc/dong">
  
<parameter>
   
<name>factory</name>
   
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  
</parameter>
  
<parameter>
   
<name>maxActive</name>
   
<value>100</value>
  
</parameter>
  
<parameter>
   
<name>maxIdle</name>
   
<value>30</value>
  
</parameter>
  
<parameter>
   
<name>maxWait</name>
   
<value>5000</value>
  
</parameter>
  
<parameter>
   
<name>username</name>
   
<value>root</value>
  
</parameter>
  
<parameter>
   
<name>password</name>
   
<value>colorful</value>
  
</parameter>
  
<parameter>
   
<name>driverClassName</name>
   
<value>org.gjt.mm.mysql.Driver</value>
  
</parameter>
  
<parameter>
   
<name>url</name>
   
<value>jdbc:mysql://localhost:3306/dong</value>
  
</parameter>
   
</ResourceParams>
使用如上配置的时候一直报q个
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'错误

在网l上寻觅后发现是因ؓTomcat版本引v的,Ҏ如下问题消׃

<Resource
    
name="jdbc/dong"
    type
="javax.sql.DataSource"
    password
="colorful"
    driverClassName
="org.gjt.mm.mysql.Driver"
    maxIdle
="2"
    maxWait
="5000"
    username
="root"
    url
="jdbc:mysql://localhost:3306/dong"
    maxActive
="4"/>


Dong 2008-02-24 13:47 发表评论
]]>
վ֩ģ壺 ɽ| | | ˳| | | | | ƽ| ·| ͤ| | ʯ| ɽ| ľ| Ͽ| ֶ| | ˹| | | | | | Ҷ| ̩| γ| ϰ| ֶ| | | | | ͭϿ| | | հ| ˮ| | | ̰|