在Java小程序中调用web服务方法

在Java小程序中调用web服务方法,java,webservice-client,applet,Java,Webservice Client,Applet,我成功地构建了一个简单的JavaWeb服务(作为示例,您可以参考) 在Eclipse中,通过使用教程中指出的“JavaWebServiceProxy技术”,可以很容易地创建web服务客户机 我想运行一个Java小程序,它执行与Java客户端应用程序相同的操作:访问web服务、调用方法并返回结果 当我通过Eclipse运行代码时(右键单击>“作为Java小程序运行…”),一切正常。。当我在一个简单的html页面中运行小程序时,小程序会启动,但会出现死锁: 不会引发任何异常,并且在创建MyWebSe

我成功地构建了一个简单的JavaWeb服务(作为示例,您可以参考)

在Eclipse中,通过使用教程中指出的“JavaWebServiceProxy技术”,可以很容易地创建web服务客户机

我想运行一个Java小程序,它执行与Java客户端应用程序相同的操作:访问web服务、调用方法并返回结果

当我通过Eclipse运行代码时(右键单击>“作为Java小程序运行…”),一切正常。。当我在一个简单的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”,它不接受任何参数,并返回一个字符串


请帮助我。

正如您所知,java小程序是在沙箱中执行的。默认情况下,小程序除了从其原始服务器之外,没有任何访问任何web资源的权限。只有已签名的小程序才能访问此类资源。因此,您应该使用applet

我签署了applet,它现在请求证书,但它说org.apache.axis找不到我的类,而我确信它在我创建的fatjar中。我应该在applet标记的“归档”属性中包含JAR吗?如果是,哪一个?您是否将axis类包括到您的签名jar中?。。看起来,这些类不包括在内。。而且,您可以将jax-ws用于web服务,这样,您就不需要像apacheaxis这样的第三方库。