免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4217 | 回复: 2
打印 上一主题 下一主题

JDBC连接AS400的问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-09 09:24 |只看该作者 |倒序浏览
代码如下:

try {
                        java.sql.DriverManager
                                        .registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
                       
                        Connection c = DriverManager.getConnection(
                                        "jdbc:as400://192.168.1.3;naming=sql;errors=full", "TESTUS01",
                                        "TESTUS01");
                } catch (Exception e) {

                        System.out.println(e);
                }

错误如下:
出错的地方在生成Connection 类的地方


Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/Wrapper
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at com.ibm.as400.access.AS400.loadImpl(AS400.java:2010)
        at com.ibm.as400.access.AS400.loadImpl2(AS400.java:2070)
        at com.ibm.as400.access.AS400JDBCDriver.prepareConnection(AS400JDBCDriver.java:1225)
        at com.ibm.as400.access.AS400JDBCDriver.initializeConnection(AS400JDBCDriver.java:1105)
        at com.ibm.as400.access.AS400JDBCDriver.connect(AS400JDBCDriver.java:355)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at TestCase.main(TestCase.java:57)

1,这是什么错误?请各位高手帮我解决......
2,AS400的TELNET的端口不是23,是7777 和这个有关系吗?
3,使用这种JDBC连接AS400,AS400那边需要启动或者安装什么服务吗?

论坛徽章:
0
2 [报告]
发表于 2008-09-09 13:47 |只看该作者
IBM提供了jt400.jar 其放置位置均在AS400上随着PTF(400的修正程序)而更新,请特别注意,AS400各个OS(例:V4R5,V5R1)虽然JDBC driver?名相同,但并不代表可以混用(例: 使用V4R5的JDBC去找V5R1的400数据库).IBM提供了jt400.jar包 其放置位置均在AS400上随着PTF(400的修正程序)而更新,请特别注意,AS400各个OS(例:V4R5,V5R1)虽然JDBC driver?名相同,但并不代表可以混用(例: 使用V4R5的JDBC去找V5R1的400数据库).将jt400.jar包设置道CLASSPATH中


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class DatabaseConnection {

   
   
   
    public static Connection getConnection()
    {
        try{
            DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
            }
        catch (Exception e) {
            System.out.println("There was an error...");
            e.printStackTrace();
            return null;
            }

        try {
                        Class.forName("com.ibm.as400.access.AS400JDBCConnection");
                        return DriverManager.getConnection( "jdbc:as400://x.x.x.x/liba", "XXX", "YYY" );
            }
        catch (Exception e) {
            System.out.println("There was an error...");
            e.printStackTrace();
            return null;
            }
        
        
        
        
   
    }
   
   
    public static void releaseConnection( Connection conn, Statement st, ResultSet rs )
    {
        if( rs!=null )
        {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if( st!=null )
        {
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if( conn!=null )
        {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

论坛徽章:
0
3 [报告]
发表于 2008-09-10 11:45 |只看该作者
谢谢 问题已经解决了

使用AS400的类初试化然后操作DQ/MQ没有问题

但是还是这包使用JDBC连接就出了问题 长见识了 谢谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP