我有一个Java应用程序,其中包含一行代码:
String myString="Some Text";
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(myString, null);
当我使用Java 5在Eclipse中运行我的应用程序时,这非常有用。当我创建一个.ear文件并将其部署在websphere上时,我得到一个如下所示的异常:
Caused by: java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:306)
at something.something.something.package$MyButtonListener.buttonClick(View.java:271)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:512)
我似乎无法解决这个问题,有没有人有任何想法?我知道它正在尝试在服务器上设置剪贴板,但是如何在webapplications计算机的用户上设置它呢?
答案 0 :(得分:3)
您的WebSphere环境没有基于监视器的GUI(“head”)。
您在服务器上设置剪贴板的意图是什么?
编辑:所有Toolkit
方法都适用于运行Java代码的计算机。如果要操作客户端,则需要部署客户端代码。请参阅Set clipboard content in any browser。
答案 1 :(得分:1)
在客户端上运行gui-application时,只能使用AWT方法。
对于服务器端应用程序,您没有那个gui,因为您只是在渲染页面。服务器实际上是无头运行的(没有连接屏幕)所以你得到一个HeadLessException。
您需要在页面中渲染一些导致复制到剪贴板的javascript或flash:How to Copy to Clipboard in JavaScript?