在CentOS上,Servlet出现java.lang.NoClassDefFoundError

(1)先给出解决方法:

在本地Window服务器上发布项目,没有问题。但是,迁移到Linux上就错误了,java.lang.NoClassDefFoundError: Could not initialize class javax.swing.RepaintManager。

操作如下:

[root@server lib]# cp rt.jar /usr/java/jdk1.8.0_181/lib
[root@server lib]#
把rt.jar包拷贝到jdk安装目录下的lib

rt.jar可以从jre目录下的lib拷贝。

然后重启tomcat服务,就可以解决问题了。

(2)出现这个问题,因为,我在项目中的JSP需要输出条码

Root Cause

java.lang.NoClassDefFoundError: Could not initialize class javax.swing.RepaintManager
	javax.swing.JComponent.repaint(JComponent.java:4792)
	java.awt.Component.repaint(Component.java:3311)
	javax.swing.JComponent.setForeground(JComponent.java:2706)
	net.sourceforge.jbarcodebean.JBarcodeBean.setForeground(JBarcodeBean.java:305)
	net.sourceforge.jbarcodebean.JBarcodeBean.<init>(JBarcodeBean.java:197)
	net.sourceforge.jbarcodebean.JBarcodeBean.<init>(JBarcodeBean.java:232)
	com.servlet.order.BarCodeServlet.init(BarCodeServlet.java:42)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)

 

posted on 2019-01-07 15:24  jmuccx  阅读(998)  评论(0编辑  收藏  举报