我用eclipse开发了一个程序在本机上可以运行,但打包后部署在resin上面就不能执行,报错:
java.lang.NoClassDefFoundError: javax/sql/rowset/Joinable
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
。。。。。。
部分代码如下:
public OracleCachedRowSet getRowSet() throws SQLException,
NamingException {
PreparedStatement ps = null;
ResultSet resultSet = null;
Connection conn = null;
try {
conn = CommonTool.getConnection(this.dbName);
this.setParamList();
//this.handleWildcard();
ps = conn.prepareStatement(sqlString);
this.assignParamValue(ps);
ps.setQueryTimeout(60 * 10);
resultSet = ps.executeQuery();
rowSet = new OracleCachedRowSet(); rowSet.populate(resultSet);
}
catch (SQLException ex) {
log.error("SQLException while query: " + ex);
throw ex;
}
finally {
if (ps != null) {
ps.close();
}
if (resultSet != null) {
resultSet.close();
}
if (conn != null) {
conn.close();
}
}
return rowSet;
}
我检查过所有的jar包都已经包含进去了的,但不知道为什么就用不了。请大家指教下~~
------解决方案--------------------
------解决方案--------------------
出现这种问题
1,一般是classloader的问题,一般重启下服务,就可避免该问题。
2,也有可能是别的关联的包的缺失,也会照成这问题
3,如果是jdbc之类的包没有引用的话,会报ClassNotFount的错
你可以看看是不是 有个rowset.jar没有引用,我记得用oracle的cacherowset的话,貌似有个这个包。