簡體   English   中英

調用Java Applet中的Web服務方法

[英]Invoke web service method inside Java Applet

我成功構建了一個簡單的Java Web Service(例如,您可以參考“構建簡單的Web服務”

在Eclipse中,可以通過使用本教程中指出的“ Java Web Service代理技術”輕松創建Web Service客戶端。

我想運行一個與Java客戶端應用程序具有相同功能的Java Applet:訪問Web服務,調用方法並返回結果。

當我通過Eclipse運行代碼(右鍵單擊>“以Java小程序運行..”)時,一切正常。.當我在簡單的html頁面中運行小程序時,小程序啟動但進入死鎖狀態:沒有引發異常,並且無需調用創建默認構造函數的MyWebServiceProxy類的任何操作即可阻止該進程。

有人可以幫我嗎?

我在這里粘貼一些代碼,以使您更好地了解我在applet中正在做什么:

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 applet在沙箱中執行。 默認情況下,小應用程序除了從其原始服務器之外,無權訪問任何Web資源。 只有簽名的小程序才能訪問此類資源。 因此,您應該在小程序上簽名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM