javaweb调用python算法_请教怎么用java远程调用python? 多谢
请问如何用java远程调用python? 谢谢!
本帖最后由 blackkettle 于 2015-05-07 13:00:41 编辑
比如有一台机器 A上安装了python, 另一台机器B要用java 调用A 上的python的某个函数,输入数据在B机器上,所有的计算在A机器完成,结果返回给B机器。
请问这个怎么实现?
希望大侠能给一个简单的demo, 非常感谢!
------解决思路----------------------
在A机器上搭建一个服务,可以采用socket、webservice、httppost等方式提供服务,在服务中接收到请求后调用python,并将结果返回
在B机器上开发一个终端调用A机器上的服务即可。
------解决思路----------------------
我也是新人
不过远程的话,可以用服务器+同步\异步交互,建议是Apache+JSON
------解决思路----------------------
socket: 直接用socket. 自己定义协议: 函数名, 参数值会怎么传递, 返回值要怎么传递等.
http: 用http协议, 函数名, 参数值等可以用GET/POST的参数传递. 但你要自己把复杂些的值(字典, 列表等)序列化(pickle, json等)
python有很多web framework, 也可以用自带的httpserver
rpc: 把上面的东西都包装起来, 用起来很像直接的函数调用.
文档(https://docs.python.org/2/library/xmlrpclib.html), 里面有例子, 也可以自己搜python+模块名.
例子, 服务器端:
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
def is_even(n):
return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))
print "Listening on port 8000..."
server.register_function(is_even, "is_even")
server.serve_forever()
客户端代码: (但你得换成java的版本, 搜java+rpc)
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))
print "100 is even: %s" % str(proxy.is_even(100))
------解决思路----------------------
客户端没法强迫服务器端做什么(恶意入侵除外), 所以必须server主动提供一些函数, client才能调用.
server提供的函数不一定要是自己实现的, 也可以是从其他模块import来的. 参见下面的例子(sqrt, date.today).
下面的例子里还包括了一种情况, 需要传输的值(这儿是date object)rpc模块不知道怎么序列化, 这时需要你自己把它转变成能序列化的类型, 在另一端再转回来.
服务器:
# encoding: utf-8
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
from datetime import date
from math import sqrt
def is_even(n):
return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))
print "Listening on port 8000..."
server.register_function(is_even, "is_even")
server.register_function(sqrt, 'kaipingfang')
# next one will not work since xmlrpclib don't know how to marshal date object
server.register_function(date.today, 'today')
def today_in_string():
return str(date.today())
server.register_function(today_in_string, 'mytoday')
server.serve_forever()
客户端:
# encoding: utf-8
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))
print "100 is even: %s" % str(proxy.is_even(100))
print "sqrt of 10: %s" % str(proxy.kaipingfang(10))
try: # the bad function
print "today is: %s" % str(proxy.today())
except Exception as e:
print e
print "today in string is: %s" % proxy.mytoday()
javaweb调用python算法_请教怎么用java远程调用python? 多谢相关推荐
- java 调用其他构造函数_我如何在Java中调用另一个构造函数?
是的,这是可能的: public class Foo { private int x; public Foo() { this(1); } public Foo(int x) { this.x = x ...
- java 调用服务器文档,JAVA远程调用服务器端方法
JAVA远程调用服务器端方法 内容精选 换一换 Windows Server 2012 R2操作系统弹性云服务器,本地使用远程桌面连接功能连接云服务器并启用redirected drive功能时,云服 ...
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- java python算法_用Java,Python和C ++示例解释的搜索算法
java python算法 什么是搜索算法? (What is a Search Algorithm?) This kind of algorithm looks at the problem of ...
- python图像融合算法_图像融合质量评价方法的python代码实现——MS-SSIM
图像融合质量评价方法的python代码实现--MS-SSIM 图像融合质量评价方法的python代码实现--MS-SSIM 文章目录 1 前言 2 MS-SSIM介绍 2 MS-SSIM的代码 2.1 ...
- python调用jsonrpc接口_微信小程序通过jsonrpc调用python服务端接口
与python后端进行联调,后端协议为jsonrpc ,这里简单记录下jsonrpc的通用请求函数,并附带几个栗子. jsonrpc 这里以2.0进行记录 JSON-RPC是一个无状态且轻量级的RPC ...
- python人物抠图算法_比PS还好用!Python 20行代码批量抠图
抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...
- python算法打包成接口供其他语言调用
这里写目录标题 1 普通python程序单机版: 1.1 pyinstaller进行打包 1.2 测试exe文件能不能用 2 python算法打包成网页版: 3 tensorflow打包 3.1 重新 ...
- python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...
前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...
最新文章
- 关于vue 框架与后台框架的混合使用的尝试
- 软件开发的核心问题是什么
- CentOS首次安装,网络环境配置
- 55. Yii import class 与 对象创建
- 【Hibernate教程】框架体系介绍
- 黑客都怎么制作外挂?C++黑客编程收集的源码集合
- 惠普打印机换硒鼓(墨盒)
- 酒店计算机系统管理实训,酒店管理信息系统实训课实践
- 全志 起家产品 A31S四核:昂达V819mini平板试玩
- 串口_波特率计算字节
- 制作符合期刊审图号标准的中国地图(含九段线)
- 数据库容灾技术之–数据容灾技术比较
- (Matlab)复现《改进NSGA_II算法求解考虑运输约束的柔性作业车间节能调度问题》中的交叉操作
- 一个VC编写的虚拟桌面软件
- simulink方框_simulink模型引用
- 网络版的知乎点赞问题~
- 旺店助手v1.0.30 独立版
- 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!
- c语言 ll1文法实验报告,C语言文法 LL(1)文法
- AutoDL云服务器使用(2)-虚拟环境搭建
热门文章
- Codeforces Round #706 (Div. 2) E. Garden of the Sun 思维构造
- 【BJOI2017】树的难题【点分治】【线段树】
- CF785E Anton and Permutation
- 牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案
- 520 钻石争霸赛 题解
- 树的同构模板题(法1.最小表示法+法2.树哈希)
- P4640-[BJWC2008]王之财宝【OGF,Lucas定理】
- YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】
- P5952-[POI2018]水箱【最小生成树】
- jzoj2908,P1527-[集训队互测 2012]矩阵乘法【整体二分,二维树状数组】