2012-06-14 2 views
0

Я пытаюсь разработать расширение для firebug. Я хочу вызвать java-метод в этом расширении, но в нем нет html, поэтому я не могу использовать решение applet-html.Вызов java-метода в javascript без расширения html firebug

Вот мой Java Applet:

import java.applet.Applet; 
import javax.swing.JOptionPane; 

public class MyApplet extends Applet { 

    public void init() { 
     super.init(); 
     System.out.println("init something"); 
    } 

    public String jsCall(String hello) { 
     System.out.println("this method is called by a js function and say :" 
       + hello); 
     Thread t = new Thread(new Runnable(){ 
      public void run(){ 
       JOptionPane jop1 = new JOptionPane(); 
       jop1.showMessageDialog(null, "Message informatif", "Information", JOptionPane.INFORMATION_MESSAGE);  
      } 
     }); 
     t.start(); 

     return "lala"; 
    } 

} 

Я стараюсь это:

var applet = document.createElement("applet"); 
applet.setAttribute("code","file:///home/dacostam/z_test/firebug-extension-examples-0bdcf15/[email protected]/chrome/content/MyApplet.class"); 
applet.setAttribute("id","javaToJavascriptApplet"); 
applet.setAttribute("mayscript","true"); 
applet.jsCall("HelloWorld"); //jsCall not a function 

И это:

var dom = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null); 
dom.appendChild(applet); 
dom.javaToJavascriptApplet.jsCall("HelloWorld"); //jsCall not a function 

Документ не как обычно нет тела или HTML в этом.

Есть ли другой способ вызвать java в javascript вместо решения applet-html? Или есть способ сделать это с помощью этого метода, но иначе?

Если вам нужна дополнительная информация, я здесь.

Спасибо.

Edit:

Было бы много времени, чтобы объяснить вам, что программа действительно, только имейте в виду, что это неизбежно в Java, мне просто нужно вызвать метод, который принять строку параметров и возвращает строку или в конечном итоге недействителен.

Edit2:

К сожалению, я не думал о том, что Java должен работать на клиенте.

+2

Если нет апплета, какие Java вы собираетесь называть в? – maksimov

+0

Не могли бы вы дать описание того, что вы пытаетесь достичь в конечном счете? – thatidiotguy

+0

@thatidiotguy Я редактирую свой пост. – AnthonyMaia

ответ

1

Если ваше требование - сделать звонок из JavaScript в ваше Java-приложение, вам нужно выяснить, где должно выполняться ваше Java-приложение.

Если Java необходимо запустить на клиенте (тот же компьютер, что и Firebug), похоже, что вы либо застряли в апплете, либо вам нужно создать крошечный веб-сервис в своей Java, чтобы вы могли поговорить с ним через веб-API на localhost.

Если ваша Java может находиться где-то на сервере, вы можете поговорить с вашим Java-приложением через веб-API (аналогично второму варианту выше).

+0

Я редактирую свой пост. – AnthonyMaia

+0

Так, как я уже сказал, я вижу два варианта клиентской стороны: апплет и автономное приложение с крошечным веб-интерфейсом, поэтому вы можете отправлять ему HTTP-запросы localhost. – maksimov

+0

Второй вариант возможен, он уверен, что он будет работать, но он довольно требовательный. – AnthonyMaia

1

Я считаю, что вы можете найти свой ответ here

+0

Спасибо, это действительно хороший способ. Но я не могу загрузить deployJava.js из-за формы документа. – AnthonyMaia

Смежные вопросы