Как вызвать односторонний апплет, который возвращает значение из GWT при нажатии кнопки - PullRequest
0 голосов
/ 14 июля 2011

Я пытаюсь вызвать вздохнувший апплет нажатием кнопки GWT.Я попытался пройти через метод gwtai, создав интерфейс на стороне клиента, затем написав апплет, который реализует интерфейс. Однако я получаю исключение TargetInvokationException при вызове метода для события onClick ().

Вот кодЯ написал:

screenCap.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
String filePath = counterApplet.captureScreenShot(); (Throws exception here)
TextField filePathT = new TextField();

Мой интерфейс апплета:

import com.google.gwt.gwtai.applet.client.*;

@ImplementingClass(com.jpmorgan.rd.querymanager.applet.imageCaptureAppletImpl.class)
@Height("10")
@Width("10")
@Archive("GwtAI-Client.jar,GwtAI-Demo.jar")
public interface imageCaptureApplet extends Applet {
String captureScreenShot();
}

Мой класс реализации апплета:

import java.awt.*;
import javax.swing.JApplet;

public class imageCaptureAppletImpl extends JApplet implements imageCaptureApplet{

    private static final long serialVersionUID = -511774647966368672L;

   public String captureScreenShot() {

String file;
// do something

return file;
}

И трассировка полного стека:

load: class com.amol.test.imageCaptureAppletImpl.class not found.
java.lang.ClassNotFoundException: com.jpmorgan.rd.querymanager.server.imageCaptureAppletImpl.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://127.0.0.1:8888/com/amol/test/imageCaptureAppletImpl/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: com.amol.test.imageCaptureAppletImpl.class

Любая помощь по этому поводу приветствуется.

Я также создал подписанную банку моего апплета. Не могли бы вы подсказать, есть ли лучший способ вызова этого метода captureScreenShot () со страницы моего GWT на кнопке?щелкните и получите результат обратно.

Также JSNI - лучший способ сделать это.Если да, то можете ли вы показать пример, где апплет, который передает значение обратно, вызывается.

Большое спасибо за продвинутый уровень.

PS: я использовал эту страницу для основы своего кода на gwtai:

http://code.google.com/p/gwtai/wiki/GettingStarted

Спасибо,

Amol

1 Ответ

0 голосов
/ 15 июля 2011

GwtAI использует JSNI для связи с апплетом. Таким образом, независимо от того, пишете ли вы код JSNI самостоятельно или используете эту библиотеку, все будет одинаково. Можете ли вы опубликовать полную трассировку стека вашей ошибки?

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