можем ли мы использовать код Java в коде приложения web2py?

Мне нужно реализовать одно приложение web2py, которое должно получить доступ к java-коду (у которого есть код для подключения к удаленному компьютеру), но не уверен, сможем ли мы сделать это в web2py или нет. На моем ПК есть Java 1.6, Python2.7, web2py, eclipse установлен.

Вариант использования:

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

Сомнения:

  1. Можем ли мы развернуть этот конкретный класс Java на сервере web2py, чтобы приложение web2py могло легко получить к нему доступ?

  2. Можно ли импортировать этот класс из кода Python?

  3. Как создать объект Java из кода Python?

  4. И как вызвать метод java из кода python?

С уважением, Пикс.


person piks    schedule 09.04.2012    source источник


Ответы (2)


Я бы рассмотрел возможность изучения веб-сервисов. Если бы вы могли указать URL-адрес из java, он будет перенаправляться к методу/функции java, где выполняется логика, и он возвращает объект json. В то время как в web2py urllib2 вы можете сделать запрос и декодировать этот json в собственный словарь python. Подсказка заключается в том, что вам придется выставлять все методы объектов и передавать объект туда и обратно как json. Не пугайтесь, в большинстве языков программирования объекты — это просто хеш-массивы/словари с некоторыми особыми свойствами. Поэтому, если вы можете сериализовать и десериализовать объект и выставить априорные URL-адреса, все будет в порядке.

Также есть реализация web2py на jython. Но тогда весь стек будет в JVM и работать с ним будет сложнее.

person mAm    schedule 10.04.2012
comment
Хорошо, я понял, о чем вы говорите, похоже, мне нужно проделать так много дополнительной работы, чтобы добиться этого. Итак, если я перейду к реализации веб-сервиса и код JAVA не требуется, то как это сделать? Я снова представил свой вариант использования по-другому: 1. наше приложение web2py находится на одном компьютере, где также будет работать веб-клиент, и там также будет БД. - person piks; 12.04.2012
comment
Если я перехожу к реализации веб-сервиса и код JAVA не требуется, то как этого добиться? Я снова представил свой вариант использования по-другому: 1. наше приложение web2py находится на одном компьютере, где также будет работать веб-клиент, и там также будет БД. 2. Пользователь может получить доступ к приложению web2py, используя URL-адрес с удаленного компьютера, и получить доступ к содержимому, сохраненному в БД, и отобразить его для пользователя. 3. Сервер может общаться с одной удаленной системой, где установлен сервер веб-сервиса, и получать оттуда необходимые данные и сохранять их в БД. Поскольку я новичок в веб-сервисе, не могли бы вы дать мне базовое представление о том, как этого достичь. - person piks; 12.04.2012
comment
В книге есть глава, в основном объясняющая, как открыть веб-сервис из web2py, но это не так. Я не так хорошо знаком с java, но могу поспорить, что есть некоторые микрофреймворки, которые просто предоставляют определенные функции в виде URL-адресов и предоставляют базовые функции post&get. Что вам нужно сделать, так это заставить эти функции возвращать jsons, а затем вы можете сделать запрос через urllib. Я бы ответил себе, стоит ли оно того... если это для некоторых простых классов, держу пари, вы бы переписали его быстрее, чем бороться со стеком Java. - person mAm; 14.04.2012
comment
Если вам действительно нужна эта функциональность, я бы посмотрел здесь: stackoverflow.com/questions/3290522/urllib2-and-json узнайте больше о urllib и узнайте о сервлетах в java + jsons в java. Это не должно быть безумно сложно, но, как я уже говорил, если это мелочь, я сомневаюсь, что оно того стоит. - person mAm; 14.04.2012
comment
Просто комментарий о Jython: хотя в документации указано, что web2py работает на Jython без изменений, я не смог заставить его работать ни с одной из последних версий. Поиск в Интернете показывает низкий интерес к запуску web2py на Jython. Так что этот вариант я бы не советовал... - person brdlph; 24.04.2013

Если все, что делает java, — это подключение к удаленному компьютеру, то я настоятельно рекомендую вам переопределить его на python.

Если он делает что-то существенное, рассмотрите возможность размещения перед ним веб-интерфейса (мне нравится микрофреймворк spark для this), и вы можете поговорить с ним, используя модуль requests (получить его через pip).

person Marcin    schedule 10.04.2012