问题描述
最近,我一直在研究使用Django rest_framework制作RESTapi的项目。该框架需要一些处理和对象,这些处理和对象需要用Java完成。
我遇到了一个名为Py4J的库,该库允许我们从python环境访问Java对象,集合等,据我了解,为了使JVM可被python访问,我必须与另一台服务器localhost:25333.
上的套接字进行交互
我编写了一个非常基本的代码进行测试:
Views.py
from py4j.java_gateway import JavaGateway
class TestClass(APIView):
permission_classes = [AllowAny]
authentication_classes = []
@staticmethod
def post(request):
gateway = JavaGateway()
fn = gateway.entry_point.getFunc()
response = Response()
response.data = {"res": fn.print()}
return response
Func.java
public class Func{
public String print() {
return "Hello from java";
}
}
TestGateway.java
import py4j.GatewayServer;
public class TestGateway {
private Func func;
public TestGateway() {
func = new Func();
}
public Stack getFunc() {
return func;
}
public static void main(String[] args) {
GatewayServer gatewayServer = new GatewayServer(new TestGateway());
gatewayServer.start();
System.out.println("Gateway Server Started");
}
}
由于每次交互都在localhost上进行,因此此代码可以按预期工作。 但是我需要在Google AppEngine上部署Java应用程序和django rest api。在生产阶段这两个代码将如何交互?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)