2011-07-14 5 views
0

GWTボタンクリックで一声のアプレットを呼び出そうとしています。クライアント側でインターフェイスを作成し、次にインターフェイスを実装するアプレットを作成するgwtaiメソッドを試してみました。私のonClick()イベントでメソッドを呼び出すと、TargetInvokationExceptionが発生します。ボタンクリック時にGWTから値を返す一口のアプレットを呼び出す方法

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 

これに関するお手伝いがあります。

また、私のアプレットの署名付きのjarファイルを作成しました。あなたのボタンをクリックして結果を戻すGWTページからこのcaptureScreenShot()メソッドを呼び出すより良い方法があれば教えてください。

JSNIもこれを行う良い方法です。可能であれば、値を返すアプレットが呼び出される例を表示できます。

多くの方に感謝します。

PS:私はgwtaiの私のコードに基づいために、このページを使用:

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

おかげで、

て、Amol

答えて

0

GwtAIは、アプレットとの通信にJSNIを使用しています。したがって、JSNIコードを自分で書くか、このライブラリを使うかは同じです。エラーの完全なスタックトレースを投稿できますか?

+0

こんにちはアドリアン、まずはお返事ありがとうございます。私はsomemoreを調査し、クラスが私のJavaコンソールで例外であることが判明していないことが分かりました。これは理由です。ここにエラートレースがあります。 –

+0

アプレットインタフェースでは、@Archive( "GwtAI-Client.jar、GwtAI-Demo.jar")というアノテーションを使用しています。したがって、アプレットのランタイムは、これらの2つのjarファイルを探していて、そこからimageCaptureAppletImplクラスをロードしたいとします。クラスがこれらのjarファイルの1つにあり、アクセス可能であることを確認してください。 –

+0

こんにちはAdrian私はそれを試しました、私はここにJarLinkerによって作成された瓶を含めた。しかし、問題は、com/amol/test/imageCaptureAppletImpl.classではなく、com/amol/test/imageCaptureAppletImpl/class.classを探して見つけられないということです。 –