Вызвать метод веб-службы внутри Java-апплета - PullRequest
1 голос
/ 31 января 2011

Я успешно построил простой веб-сервис Java (например, вы можете обратиться к «Создание простого веб-сервиса» )

В Eclipse легко создать клиент веб-сервиса с помощью«Техника прокси Java Web Service», указанная в руководстве.

Я хочу запустить Java-апплет, который выполняет те же функции, что и клиентское приложение Java: доступ к веб-службе, вызов методов и возврат результатов.

Когда я запускаю код с помощью 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++);
 }
}

Очевидно, что мой веб-сервис называется "SimpleWS", а методто, что я вызываю, называется «getMessage», оно не принимает аргументов и возвращает строку.

Пожалуйста, помогите мне ..

1 Ответ

3 голосов
/ 31 января 2011

Как вы знаете, Java-апплеты выполняются в песочнице. По умолчанию апплеты не имеют доступа к каким-либо веб-ресурсам, кроме как с их исходных серверов. Только подписанные апплеты могут получить доступ к таким ресурсам. Поэтому вы должны подписать свой апплет.

...