星期二, 三月 01, 2005

JSR-144 JDBC RowSet Reader give NPE(java.lang.NullPointerException),解决方法.

JSR-144 JDBC RowSet 在 JDK 1.4.2_06及以后出现错误:
代码:
com.sun.rowset.CachedRowSetImpl cacherset = new com.sun.rowset.CachedRowSetImpl();
出现以下错误

java.lang.NullPointerException
at java.io.Reader.(Reader.java:61)
at java.io.InputStreamReader.(InputStreamReader.java:80)
at java.util.Properties.load(Properties.java:266)
at java.util.PropertyResourceBundle.(PropertyResourceBundle.java:96)
at com.sun.rowset.JdbcRowSetResourceBundle.(Unknown Source)
at com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.(Unknown Source)


解决方法:
1.使用J2SE 5.0
2.改变用户国家.这是实现代码,绑定出错信息资源文件的时候,找不到对应语言的ResourceBundler出现的错误.
目录下:com.sun.rowset.RowSetResourceBundle.properties

这是代码没有考虑其他语言资源文件不存在的时候,应该使用en语言的资源文件.

手工改变当前语言可以解决这个问题,如下:

java -Duser.language="en" -Duser.region="US" javaProgram