HeadLessException при использовании getSystemClipboard (). SetContents (..) - PullRequest
2 голосов
/ 22 ноября 2011

У меня есть Java-приложение, в котором есть строка кода:

String myString="Some Text";
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(myString, null);

И это прекрасно работает, когда я запускаю свое приложение в Eclipse с Java 5. Когда я создаю файл .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)

Я не могу решить это, у кого-нибудь есть идеи? Я понимаю, что он пытается установить буфер обмена на сервере, но как мне установить его на компьютере пользователя веб-приложений?

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

В вашей среде WebSphere нет графического интерфейса на основе монитора ("голова").

Каково ваше намерение установить буфер обмена на сервере?

РЕДАКТИРОВАТЬ: Все Toolkit методы применяются к компьютеру, на котором выполняется код Java.Если вы хотите манипулировать клиентом, вам необходимо развернуть код на стороне клиента.См. Установка содержимого буфера обмена в любом браузере .

1 голос
/ 23 ноября 2011

Вы можете использовать метод AWT только при запуске приложения на клиентском компьютере.

Для серверного приложения у вас нет этого графического интерфейса, потому что вы просто визуализируете страницы. На самом деле сервер работает без заголовка (экран не прикреплен), поэтому вы получаете исключение HeadLessException.

Вам необходимо сделать на своих страницах какой-нибудь javascript или flash, который вызывает копирование в буфер обмена: Как скопировать в буфер обмена в JavaScript?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...