2014-10-21 8 views
1

Я получаю следующую ошибку при попытке подключения в java с помощью DriverManager. Я обыскал всю сеть и не нашел решения. Может ли кто-нибудь сказать мне причину следующей ошибки или объяснить, как ее решить.NetSuite java.lang.NoClassDefFoundError: sun/io/MalformedInputException on getConnection

conn = DriverManager.getConnection(connectionString, login, password); 

"C:\Program Files\Java\jdk1.8.0_20\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:54111,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "Z:\scripts\Local\NetSuite\bin;Z:\scripts\Local\NetSuite\lib\c3p0-0.9.5-pre8.jar;Z:\scripts\Local\NetSuite\lib\mchange-commons-java-0.2.7.jar;Z:\scripts\Local\NetSuite\lib\mysql-connector-java-5.1.23-bin.jar;Z:\scripts\Local\NetSuite\lib\NQjc.jar;Z:\scripts\Local\NetSuite\netsuite.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_20\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.1.5\lib\idea_rt.jar" connection.Main 
Connected to the target VM, address: '127.0.0.1:54111', transport: 'socket' 
Using connection string: jdbc:ns://odbcserver.na1.netsuite.com:1708;ServerDataSource=NetSuite.com;encrypted=1;CustomProperties=(AccountID=3650326;RoleID=3) 
Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/MalformedInputException 
    at com.netsuite.oautil.UtilTransliterator.OptimizeNewTransliteratorUsingSunIO(Unknown Source) 
    at com.netsuite.oautil.UtilTransliterator.OptimizeNewTransliteratorUsingVM(Unknown Source) 
    at com.netsuite.oautil.UtilTransliterator.GetNewTransliterator(Unknown Source) 
    at com.netsuite.oautil.UtilTransliterator.GetNewTransliterator(Unknown Source) 
    at com.netsuite.openaccess.ssp.Ssp7.<init>(Unknown Source) 
    at com.netsuite.openaccess.ssp.Ssp8.<init>(Unknown Source) 
    at com.netsuite.openaccess.ssp.Ssp9.<init>(Unknown Source) 
    at com.netsuite.openaccess.ssp.SspFactory.ProcessReply(Unknown Source) 
    at com.netsuite.openaccess.ssp.SspFactory.GetSsp(Unknown Source) 
    at com.netsuite.openaccess.ctxt.conn.ConnectionContext.doConnect(Unknown Source) 
    at com.netsuite.openaccess.ctxt.conn.ConnectionContext.connect(Unknown Source) 
    at com.netsuite.jdbc.openaccess.OpenAccessImplConnection.open(Unknown Source) 
    at com.netsuite.jdbc.oabase.BaseConnection.connect(Unknown Source) 
    at com.netsuite.jdbc.oabase.BaseConnection.setupImplConnection(Unknown Source) 
    at com.netsuite.jdbc.oabase.BaseConnection.open(Unknown Source) 
    at com.netsuite.jdbc.oabase.BaseDriver.connect(Unknown Source) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at connection.DBNetSuite.<init>(DBNetSuite.java:59) 
    at connection.DBNetSuite.getInstance(DBNetSuite.java:85) 
    at connection.DBNetSuite.getTableName(DBNetSuite.java:110) 
    at connection.Main.main(Main.java:12) 
Caused by: java.lang.ClassNotFoundException: sun.io.MalformedInputException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 22 more 
Disconnected from the target VM, address: '127.0.0.1:54111', transport: 'socket' 

Process finished with exit code 1 
+0

Проверьте, пожалуйста, jdk, используете ли вы jdk ниже jdk6? –

+0

@NaveenRamawat В его командной строке показано, что он использует Java 1.8 –

+0

@NaveenRamawat, no. как указано, я использую jdk8 – rrawat

ответ

1

Этой библиотека NetSuite использует исключение, которое не является частью API Java, но когда-то была частью внутренних классов в рамках реализации Sun/Oracle Java. Поскольку этот класс не является частью API, Oracle (и до этого Sun) может свободно его удалять; которые они сделали. Он не включен в Java 8 Update 25; Я не знаю, когда он был удален.

Это одна из причин, почему не следует использовать классы в пакетах sun.*, com.sun.* и com.oracle.* включены с Java в вашем приложении, так как они могут быть изменены и могут быть удалены в любое время.

Вы должны спросить NetSuite, есть ли у них новый драйвер, который не использует этот класс.

+2

спасибо. Я изменил свой jdk на jdk7, и код прошел успешно. – rrawat

Смежные вопросы