Веб-сервис Python для Java-приложения? - PullRequest
0 голосов
/ 01 апреля 2011

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

Ответы [ 4 ]

1 голос
/ 01 апреля 2011

Это зависит от того, как вы это имеете в виду. Вы хотите использовать сервис в качестве библиотеки в приложении? Если это так, вы можете посмотреть на Jython и превратить его в плагин.

Если, однако, вы хотите запустить службу как отдельное приложение, используйте веб-интерфейс для вызова его из Java, это не должно быть проблемой. Теоретически, конечный пользователь веб-службы (в данном случае пользователь является вашим приложением) никогда не должен беспокоиться о том, на каком языке написана служба; Пока стандарты соблюдаются (JSON, XML и т. д.), большинство языков будут иметь возможность работать вместе.

1 голос
/ 01 апреля 2011

Я думаю, что это возможно. Предположим, что ваш метод веб-сервиса возвращает строку json. Вы можете использовать эту строку, конвертировать ее в HashMap в Java и работать с данными.

Я лично предпочитаю cherrypy , для простоты создания веб-сервиса. Он также имеет встроенный сервер.

Вы можете использовать FlexJSON для преобразования строки json в HashMap. Метод десериализации поможет в этом. Вот как я это сделал.

public Map<String, Object> JsonToMap(String data) {
        Map<String, Object> dataMap;
        dataMap = new JSONDeserializer<Map>().deserialize(data);
        return dataMap;
    }

Здесь String data - это строка json, которую должен вернуть ваш метод веб-сервиса python.

0 голосов
/ 06 апреля 2011

Существует множество веб-фреймворков для Java, некоторые из которых лучше других. Для достаточно полной справки рассмотрите консультацию http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java.

Python действительно довольно интуитивный язык, и поскольку он часто используется как язык сценариев на стороне сервера, появилось много респектабельных веб-фреймворков (таких как webpy и django).

Это зависит от того, какие задачи вы пытаетесь реализовать. Если вашему проекту требуется Java-апплет, вы можете встроить его в веб-страницу, которую вы динамически создаете, используя среду Python. Однако, если вы ищете совместимость между Java и Python, вы захотите прочитать больше о Jython (и его ограничениях), как предложил Лакки.

Лично я фанат webpy, а не cherrypy для быстрой, легкой, практичной и простой веб-разработки и шаблонов, однако, если скорость является серьезной проблемой, вы можете рассмотреть это, прежде чем переходить к интерпретируемому языку с динамической типизацией. Python 3 в среднем примерно в 50 раз медленнее, чем Java 6 по сравнению с JVM (http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=python3&lang2=java)

Для получения дополнительной информации о сравнении Java и Python, посмотрите на http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/.

0 голосов
/ 01 апреля 2011

При разработке в фреймворке, как правило, проще разрабатывать на языке фреймворка, чем на другом языке.

Сервлеты являются компонентами веб-сервера (который также называетсяКонтейнер сервлетов).Контейнер Servlet и необходимый Servlet API - это все Java.В то время как вы могли бы написать Франкенштейна в каком-то коде Python, есть вероятность, что в результате интеграции эта «простота» в конечном итоге станет гораздо более сложной, чем вы особенно желаете.

Если вы хотите веб-приложение Python, используйте Pythonвеб-фреймворк.Если вы хотите веб-приложение на Java, используйте инфраструктуру Java.Не пытайтесь сделать эти два кросс-совместимых, так как точки интеграции (и используемые / предлагаемые удобства) даже не гарантированно присутствуют на «другой стороне» забора.

...