Как я могу обработать сериализацию объектов Java с помощью JavaScript? - PullRequest
0 голосов
/ 31 марта 2009
public class Person {
  private String firstname;
  private String lastname;
  private PhoneNumber phone;
  private PhoneNumber fax;
  // ... constructors and methods
  private void calculate()
  {
  }
}

Я сериализовал объект Java, расположенный на стороне сервера, и отправил его клиенту

XStream xstream = new XStream(new DomDriver()); 

Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));

String xml = xstream.toXML(joe);

Как я могу десериализовать эту строку XML в объект Java, используя JavaScript и выполнить методы класса person на стороне клиента, используя JavaScript?

Пожалуйста, помогите мне с синтаксисом или какими-либо указаниями.

Ответы [ 4 ]

1 голос
/ 31 марта 2009

Если вы ищете апплет и хотите выполнять вызовы Javascript из Java, извлеките LiveConnect с помощью класса-оболочки JSObject. Таким образом, вы можете выполнять функции javascript внутри апплета (и передавать информацию между ними);

Executor exe = Executors.newSingleThreadExecutor();
final JSObject page = JSObject.getWindow(applet);

if (page == null) {
    /* Break here, no connection could be made */
}

final String javascriptFunction = "yourJavaScriptFunction()";
executor.execute(new Runnable() {
    public void run() {
        page.eval(javascriptFunction);
    }
});

Посмотрите на приложение IRIS, созданное для Flickr, оно с открытым исходным кодом и использует эту технику. Бельгийские JUG Parleys выступили с речью, охватывающей некоторые из них: Вы можете найти ее здесь .

1 голос
/ 31 марта 2009

Вы можете вызывать методы Java на стороне клиента, используя JavaScript, используя SOAP. В этой статье объясняется, как создать веб-службу WSDL, к которой может обращаться любой клиент SOAP, поддерживающий WSDL.

Затем можно вызвать службу WSDL Java с помощью AJAX в JavaScript (если вы можете найти библиотеку JS, которая реализует SOAP и WSDL).

Кроме того, вы можете написать упрощенный внешний интерфейс для службы Java WSDL в PHP, используя встроенную в PHP библиотеку SoapClient. Сделайте так, чтобы он брал несколько простых аргументов GET и возвращал JSON или XML. После этого вы можете легко получить доступ к веб-службе PHP с помощью AJAX через jQuery (или эквивалентную библиотеку, поддерживающую AJAX).

0 голосов
/ 31 марта 2009

Вы не можете запускать методы Java с Javascript. Единственное, что вы можете сделать, это прочитать свойства объекта Java - это единственная информация, которая сериализуется в файле XML. Очень легко читать XML с помощью JavaScript.

Чтобы иметь возможность сериализовать объект Java, отправить его клиенту и выполнить код Java там, где потребуется совершенно другая архитектура. Сначала вам также нужно запустить Java на клиенте. Тогда вам нужно будет использовать метод, подобный RMI.

0 голосов
/ 31 марта 2009

XML представлен в виде дерева DOM для JavaScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...