从另一个Java进程调用方法

从另一个Java进程调用方法,java,Java,我有两个在同一台机器上运行的web应用程序。同一台机器上的两个web应用都需要相互调用,但不需要进入HTTP 一个web应用程序是RESTservlet,另一个是数据库Servlet 运行的数据库servlet在其代码库中具有以下方法: <T> Map<String, Comparable> getFirstEntity( String instance, String namespace, final String kind,

我有两个在同一台机器上运行的web应用程序。同一台机器上的两个web应用都需要相互调用,但不需要进入HTTP

一个web应用程序是RESTservlet,另一个是数据库Servlet

运行的数据库servlet在其代码库中具有以下方法:

 <T> Map<String, Comparable> getFirstEntity(
      String instance,
      String namespace,
      final String kind,
      final String propertyKey,
      final Comparable<T> propertyVal,
      Class<T> clazz);
映射getFirstEntity(
字符串实例,
字符串名称空间,
最后一种弦,
最终字符串属性key,
最终可比房地产价值,
课堂教学;

boolean创建实体(
字符串实例,
字符串名称空间,
字符串entityType,
字符串entityId,
地图地图,
最后一个字符串[]读取,
最后一个字符串[]写入,
最后一读,
最后一次写,
最终实体元数据);
显然,“restservlet”可以在作为HTTP端点公开时调用这些方法,但是如上所述,这两个Servlet必须能够通信,而不必将这些方法公开为HTTP端点

“RESTservlet”能够“调用”这些方法的最佳方式是什么

例如,像这样称呼它:

Map<String, Comparable> comparableMap = buildEntity();
databaseAppProxy.createEntity(instance, DEFAULT, entityType, "1-0", comparableMap, null, null, false, false, metadata);
Map compariablemap=buildEntity();
databaseAppProxy.createEntity(实例、默认值、entityType、“1-0”、comparableMap、null、null、false、false、元数据);
以及

Map<String, Comparable> result = databaseAppProxy.getFirstEntity(instance, DEFAULT, entityType, "age", 40, Integer.class);
Map result=databaseAppProxy.getFirstEntity(实例,默认值,entityType,“年龄”,40,整数.class);

这些调用将被“代理”,然后从运行它的数据库servlet执行。

通常您将REST servlet和数据库servlet放在同一个应用程序中。试图把这些放在不同的应用程序中听起来很奇怪。尽管JEE支持库,也许你应该将你的数据库实用程序放在库中,并为服务器上的所有应用程序安装它?@markspace是的,这听起来很奇怪,但我的带有标记的[xodus]的SO帖子解释了这一点背后的原因,例如,通常你会将其余servlet和数据库servlet放在同一个应用程序中。试图把这些放在不同的应用程序中听起来很奇怪。尽管JEE支持库,也许您应该将数据库实用程序放在库中,并为服务器上的所有应用程序安装它?@markspace是的,这听起来很奇怪,但我的带有标记的[xodus]的SO帖子解释了背后的原因,例如
Map<String, Comparable> result = databaseAppProxy.getFirstEntity(instance, DEFAULT, entityType, "age", 40, Integer.class);