Как исправить ошибку "java.lang.ClassNotFoundException: sun.io.ByteToCharConverter" - PullRequest
0 голосов
/ 18 июня 2019

У меня есть проект, который был на WebSphere 7.0.В настоящее время я несу это к EAP 6.4.Версия Java - 1.6.

DB2 - база данных, которую я использую.И тот же драйвер, который я использовал ранее в websphere, установлен под модулями jboss.Подключение к базе данных в порядке.Но после запуска метода Executequery я получаю сообщение об ошибке

  JBWEB000289: Servlet InitServlet threw load() exception: 
  java.lang.ClassNotFoundException: sun.io.ByteToCharConverter from 

Я много гуглил, и единственное решение, которое я нашел, что я попробовал, это установить

  -Ddb2.jcc.charsetDecoderEncoder=3

Я установил это под аргументами VM:время выполнения, jboss eap 6.4.

Я также попытался установить для этого свойства свойства, которые я установил перед выполнением базы данных.

   props.setProperty("db2.jcc.charsetDecoderEncoder", "3");

Но проблема все еще существует.

Это сообщение об ошибке, которое я получаю.И это все еще существует.

  JBWEB000289: Servlet InitServlet threw load() exception: 
  java.lang.ClassNotFoundException: sun.io.ByteToCharConverter from

Вот полный журнал:

    14:41:38,389 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/cantekWeb]] (ServerService Thread Pool -- 62) 
    JBWEB000289: Servlet InitServlet threw load() exception: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter from 
    [Module "deployment.cantek.ear.cantekWeb.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.6.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1]
        at com.ibm.db2.jcc.b.r.a(r.java:157) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.d.a(d.java:986) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.fb.a(fb.java:1723) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.fb.a(fb.java:1651) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.fb.n(fb.java:570) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.fb.j(fb.java:257) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.fb.c(fb.java:57) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.s.c(s.java:42) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.c.wb.h(wb.java:169) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.b.id.p(id.java:1246) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.b.jd.a(jd.java:2275) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.b.jd.V(jd.java:505) [db2jcc-0.0.1.jar:]
        at com.ibm.db2.jcc.b.jd.executeQuery(jd.java:488) [db2jcc-0.0.1.jar:]
        at com.cimmy.service.data.Talep.loadSikayetKonular(Talep.java:138) [classes:]
        at com.cimmy.service.servlet.InitServlet.sikayetKonulari(InitServlet.java:472) [classes:]
        at com.cimmy.service.servlet.InitServlet.load(InitServlet.java:412) [classes:]
        at com.cimmy.service.servlet.InitServlet.init(InitServlet.java:220) [classes:]
        at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3593) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3802) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:163) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:61) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:96) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [rt.jar:1.8.0_211]
        at java.util.concurrent.FutureTask.run(Unknown Source) [rt.jar:1.8.0_211]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.8.0_211]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.8.0_211]
        at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_211]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Я внес все вышеперечисленные изменения, которые также необходимы. Но настоящая проблема, с которой я столкнулся, была связана с настройками JBoss EAP 6.4 JRE. Он использовал 1.8 и, поскольку в этой версии нет классов, он выдавал эту ошибку. Поэтому я внес изменения в этот параметр и сделал так, чтобы он смотрел на 1.7 После этого эта проблема решена.

Спасибо за помощь.

0 голосов
/ 18 июня 2019

Никогда не используйте пакеты sun.* в своем коде.Мало того, что они не гарантированно будут перенесены с новыми версиями Java, но, как вы заметили, некоторые веб-контейнеры даже вообще не допустят к ним доступа.

Я понимаю, что в этом случае проблема может быть связана с самим драйвером, а не с кодом, который вы сами написали.Однако вышесказанное все еще применяется.Если драйвер с открытым исходным кодом, вы можете настроить код, однако вы также можете перейти на более новую версию драйвера.Вы можете найти более подробную информацию здесь:

NoClassDefFoundError sun / io / ByteToCharConverter с драйвером InterBase JDBC

или здесь:

https://www-01.ibm.com/support/docview.wss?uid=swg1IC74895

(в резолюции предлагается «Исправлено в драйверах JDBC DB2 V9.7 FP5.»)

...