Jsf 无法启动图形环境类+;ServletException

Jsf 无法启动图形环境类+;ServletException,jsf,primefaces,Jsf,Primefaces,当在Tomcat7上的固定IP应用服务器上部署my.war文件时,在初始化下面的类之前,一切都正常工作。服务器能否检测不到客户端浏览器的分辨率,或者仅仅是一个简单的原因 @SessionScoped @ManagedBean(name = "Resolution") public class Resolution implements Serializable { private static final long serialVersionUID = -384311593331503

当在Tomcat7上的固定IP应用服务器上部署my.war文件时,在初始化下面的类之前,一切都正常工作。服务器能否检测不到客户端浏览器的分辨率,或者仅仅是一个简单的原因

@SessionScoped
@ManagedBean(name = "Resolution")
public class Resolution implements Serializable {

    private static final long serialVersionUID = -3843115933315030209L;
    GraphicsDevice gd;

    double screenWidth;
    double screenHeight;

    {
        gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        setScreenWidth(gd.getDisplayMode().getWidth() * .85);
        setScreenHeight(gd.getDisplayMode().getHeight() * .85);
        System.out.println(screenHeight);
        System.out.println(screenWidth);
    }
}
抛出该异常时:

javax.servlet.ServletException: Klasse de.kp.screen.Resolution kann nicht instanziiert werden.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

否。servlet在服务器计算机上运行,浏览器在客户端计算机上运行。它们是两台独立的计算机

浏览器通过HTTP连接发送请求来与servlet通信,然后servlet可以通过发送回HTML或其他数据来响应这些请求

要检测窗口大小之类的内容,您需要向用户提供一个包含Javascript代码的HTML。Javascript在客户端计算机上运行,在浏览器内部。然后,Javascript代码可以将服务器所需的信息回调

要更改窗口大小,还需要使用将在客户端运行的Javascript


所有JavaGUI组件都是为直接在用户桌面(或Android小工具)上运行的程序设计的。它们通常根本不能在服务器机器中使用,因为服务器并不总是有图形用户界面(您通过文本控制台连接到它)。

这是一个web应用程序?在这种情况下,你不能做与图形/显示相关的事情。谢谢你。我没有想到那件事。你有这样一个例子吗?有一个古老但相当简单的例子。