我有一个简单的Jsp页面:
<%@ page language="java" import="java.awt.Color"%> <%
Color background = Color.white;
%>它会失败,并显示以下错误:
java.lang.NoClassDefFoundError
at _text__jsp._jspService(/text.jsp:3)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:506)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:346)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:534)我在Resin 2.1.13上运行它。
知道这是什么原因吗?
发布于 2009-01-09 09:48:36
不确定这个问题。我可以在我的Tomcat中成功运行你的代码。可能这个问题是Resin所特有的。或者,正如Dave所说,可能是一个无头的问题。
最好的办法是在一些POJO中转换图像,然后将其发送到浏览器,或者将其保存在磁盘上的某个位置,然后将其链接到JSP中。如果问题仍然存在,请尝试在无头模式下运行,正如Dave指出的那样。
此外,重要的是要理解JSP是一种web视图技术,不能进行这种图形操作。
发布于 2009-01-09 20:53:42
在过去,我在servlet容器中使用过AWT类。需要解决的问题是,在服务器系统上,可能没有运行AWT可以连接的图形显示,这在默认情况下会导致AWT失败。
解决方案是传递一个系统属性,告诉AWT它是在“无头”系统上运行的。通常,这是通过将"-Djava.awt.headless=true“传递给java命令行来完成的。
这里有一个关于实现这个目标的参考:http://www.caucho.com/support/resin-interest/0209/0062.html。线程中操作还报告了一个NoClassDefFound错误。
发布于 2013-07-17 15:11:13
我在Linux上的Tomcat上也遇到了同样的问题。我会断断续续地收到这条消息。这是由于操作系统上打开的文件描述符的数量达到了最大值。
我不确定Java如何根据需要加载类,但我认为这个限制阻止了它从运行时加载所需的类。
我遵循了下面的说明:
How do I change the number of open files limit in Linux?
即:
在/etc/security/limits.conf中设置硬限制
* hard nofile 64000注销并再次登录,然后运行:
ulimit -n 64000在启动Tomcat之前,在我的shell会话中。我将上述命令添加到我的.bashrc文件中,以确保每次登录时都设置了限制。
https://stackoverflow.com/questions/427482
复制相似问题