は、「Java Webサービスプロキシを使用して、Webサービスクライアントを作成するのは簡単ですテクニック "を示します。のInvoke Webサービスメソッド
Javaクライアントアプリケーションと同じことをするJavaアプレットを実行します。Webサービスにアクセスし、メソッドを呼び出して結果を返します。
Eclipseでコードを実行すると(右クリック>「Java Applet ..」として実行)、すべて正常に動作します。単純なhtmlページでアプレットを起動すると、アプレットが起動しますがデッドロック状態になります。 例外なしスローされ、MyWebServiceProxyクラスを作成する行で何もせずにプロセスがブロックされ、デフォルトのコンストラクタが呼び出されます。
誰もがこれで私を助けることができますか?
私はここにあなたが私はアプレット内でやっているよりよく理解できるようにいくつかのコードを貼り付けます。
public class SimpleWSApplet extends Applet {
public void paint(Graphics g)
{
String msg = "Applet initialized";
int i = 1;
g.drawString(msg, 20, 20*i++);
msg = "Error in applet";
try {
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress("http://localhost:8080/AppletWSTest/services/SimpleWS");
call.setOperationName(new QName("http://soapinterop.org/", "getMessage"));
msg = (String)call.invoke(new Object[]{});
} catch (Exception e) {
e.printStackTrace();
msg = "Error: "+e.getMessage();
}
g.drawString(msg, 20, 20*i++);
//g.drawString(executeInvocation(msg), 20, 20*i++);
}
}
明らかに自分のWebサービスは、「SimpleWS」と呼ばれ、私が呼び出すメソッドが「のgetMessage」と呼ばれています引数をとらず、Stringを返します。
ご存知のようにJavaアプレットがサンドボックス内で実行されている..
証明書を要求するアプレットに署名しましたが、私が作成したfatjarの内部にあると確信している間に、org.apache.axisが自分のクラスを見つけることができません。アプレットタグの "アーカイブ"の属性にjarを含めるべきですか?はいの場合は、どちらか? – arielten
あなたは署名付きのjarファイルに軸クラスを含めることにしましたか?これらのクラスは含まれていません。また、Webサービスにはjax-wsを使用できます。この方法では、apache軸。 –