簡體   English   中英

java.awt.Color錯誤

[英]java.awt.Color error

我有這個簡單的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上運行它。

知道是什么原因造成的嗎?

過去,我在servlet容器中使用過AWT類。 需要解決的問題是,在服務器系統上,可能沒有正在運行的圖形顯示可以連接到AWT,這在默認情況下會導致其失敗。

解決方案是傳遞一個告訴AWT它在“無頭”系統上運行的系統屬性。 通常,這是通過將“ -Djava.awt.headless = true”傳遞給Java命令行來完成的。

這是有關為Resin實現此目的的參考: http : //www.caucho.com/support/resin-interest/0209/0062.html 該線程中的OP還報告了NoClassDefFound錯誤。

我在Linux上的Tomcat上也遇到了同樣的問題。 我會間歇性地收到此消息。 這是由於最大化了OS上打開的文件描述符的數量。

我不確定Java如何根據需要加載類,但是我認為此限制使它無法從運行時加載所需的類。

我遵循此處概述的這些說明:

如何更改Linux中打開文件的數量限制?

即:

在/etc/security/limits.conf中設置硬限制

* hard nofile 64000

注銷並再次登錄,然后運行:

ulimit -n 64000

在啟動Tomcat之前,在我的shell會話中。 我將上述命令添加到我的.bashrc文件中,以確保每次登錄時都設置了限制。

不確定這個問題。 我可以在Tomcat中成功運行您的代碼。 可能是樹脂特有的問題。 或者,正如戴夫(Dave)所說的那樣,這可能是一個沒有意義的問題。

最好的選擇是將圖像轉換成某種POJO,然后將其吐到瀏覽器中,或者將其保存在磁盤上的某個位置,然后將其鏈接到JSP中。 如果問題仍然存在,請嘗試以無頭模式運行,如Dave指出的那樣。

此外,了解JSP是Web的一種視圖技術非常重要,並且一定不能進行這種圖形處理。

帶有-server選項的某些VM不會加載java.awt。 完全打包(也沒有javax.swing等)

這是為了避免加載不需要的類。

順便說一句

java.awt.Color

在jsp頁面中沒有任何用處。 它用於在Java桌面應用程序中顯示顏色。

你想做什么? 也許有更好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM