【发布时间】:2015-01-16 19:34:18
【问题描述】:
如果调用 WebServer,我会尝试使用 URL 打开浏览器。 WebServer 在 Tomcat7 上运行良好,我使用 Eclipse 创建了它。我在 Eclipse 服务器上测试了这段代码,一切正常,带有 URL 的新浏览器已打开。
public java.lang.String register(java.lang.String username, java.lang.String password) throws java.rmi.RemoteException {
try{
Desktop.getDesktop().browse(new URI("http://google.de"));
}catch(Exception e){
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String exceptionAsString = sw.toString();
username = exceptionAsString;
}
return "NEW TOKEN:"+password + username;
}
但是,如果我将代码作为战争文件部署到“真实”TomcatServer,我会收到此错误:(网络服务正常,我成为返回值,但新的浏览器未打开)
抛出错误,因为“真实”服务器上不支持桌面Desktop.isDesktopSupported() == false
java.awt.HeadlessException at java.awt.Desktop.getDesktop(Desktop.java:124)
....
我现在的问题是,为什么在测试系统上一切正常时我会收到这个错误,我该如何解决这个问题?
【问题讨论】:
-
你的目标运行时系统是什么?是 Windows 还是 Linux 还是别的什么?
-
我已经更新了我的答案,提供了一种替代解决方案来支持多个目标环境并删除 HeadlessException。 看看它。
-
它是 WindowsServer 2008 R2;我会尝试你的替代解决方案
-
我还添加了另一个链接,可以解决 windows server 2008 R2 + RDP 的问题。也来看看吧。我希望它可以帮助您解决您的问题。
-
感谢您的帮助,但我没有解决我的问题。我找到了另一种方法,我将 URL 返回给客户端,然后他打开它。问题在于服务器没有 UI 环境。
标签: java web-services