如何在go中使用java

如何在go中使用java,java,go,Java,Go,出于某种原因,我不得不使用go作为我的新web项目的后端语言 然而,我们将使用的一些API是用Java编写的,并打包在.jar文件中 我是新来的go,我如何使用go与Java进行一致的合作,当HTTP请求到来时,go将处理它并将一些功能委托给Java,然后返回响应。您的Java公开了什么样的API 如果它公开了一个您可以利用的RPC API 如果它公开了一个RESTful API,您可以利用它 您还可以生成一个子进程(java代码),并通过stdin和stdout管道与之通信。你会用这个 这不是

出于某种原因,我不得不使用go作为我的新web项目的后端语言

然而,我们将使用的一些API是用Java编写的,并打包在.jar文件中


我是新来的go,我如何使用go与Java进行一致的合作,当HTTP请求到来时,go将处理它并将一些功能委托给Java,然后返回响应。

您的Java公开了什么样的API

如果它公开了一个您可以利用的RPC API

如果它公开了一个RESTful API,您可以利用它

您还可以生成一个子进程(java代码),并通过stdin和stdout管道与之通信。你会用这个

这不是一份详尽的沟通清单,只是我想到的前三个。您还可以使用XMLAPI、共享内存或命名管道

此外,您可能正在寻找类似的消息队列。0mq处理IPC中许多棘手的问题,如在接收方过载时让发送方放弃发送请求、消息帧以及失败后重新连接


您可以通过多种方式在Java代码和Go代码之间进行通信。我认为最终通过HTTP API实现这一点是最常见和最简单的。在Java服务器中公开RESTful或RPC API,将其作为HTTP API服务运行,编写Go以处理传入的HTTP请求,然后从Go连接Java API以帮助创建响应。

我对Go编程语言不是很了解-但是,此信息可能有用。请尝试更好地限定“使用”(在标题和帖子中)。谢谢您的回答。该API是一些带有HTTPS的REST-ful API,但我认为我不能再次使用Go包装整个API,因为API集太大了。但我认为,如果效率满足要求,标准输入和标准输出是一种很好的方法。我试试看。我差点忘了留言队列!