Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在服务器内部调用web服务_Java_Web Services_Rest - Fatal编程技术网

Java 在服务器内部调用web服务

Java 在服务器内部调用web服务,java,web-services,rest,Java,Web Services,Rest,我有一个web服务getEmployee(),它在传递id时获取单个员工的员工详细信息 同一服务器上的另一个web服务getEmployeeList(),它在传递部门时获取整个员工列表。这将获取部门的id,然后调用getEmployee()服务以获取所有详细信息 web服务getEmployeeList()的响应基本上是getEmployee()响应的集合 我这里的问题是如何最好地实施它?从getEmployeeList()内部多次调用getEmployee()更好,还是每次只调用getEmpl

我有一个web服务getEmployee(),它在传递id时获取单个员工的员工详细信息

同一服务器上的另一个web服务getEmployeeList(),它在传递部门时获取整个员工列表。这将获取部门的id,然后调用getEmployee()服务以获取所有详细信息

web服务getEmployeeList()的响应基本上是getEmployee()响应的集合


我这里的问题是如何最好地实施它?从getEmployeeList()内部多次调用getEmployee()更好,还是每次只调用getEmployee()的process方法更好(getEmployee()中有一个process方法,它接受xml作为输入并返回响应xml)

确切的答案取决于应用程序的内部结构,但通常我不会调用运行在同一服务器上的另一个web服务API来服务请求。这将是低效的,并将一个实现与另一个实现联系起来

如果需要返回员工列表,前端REST层应该调用业务层或中间层的方法来检索相关信息,通常是以一组域对象的形式。这个中间层将负责从持久层或某种类型的数据库中获取实际数据,即从某种类型的数据库中获取适当的员工列表,尽管确切的实现细节不应该相关


然后可以将它们转换为适当的格式,以构建对客户端的响应,即用于XML的JAXB对象。(您的中间层也可以直接返回这些JAXB对象,但这种方法有优点/缺点)

确切的答案将取决于应用程序的内部结构,但通常我不会调用运行在同一服务器上的另一个web服务API来服务请求。这将是低效的,并将一个实现与另一个实现联系起来

如果需要返回员工列表,前端REST层应该调用业务层或中间层的方法来检索相关信息,通常是以一组域对象的形式。这个中间层将负责从持久层或某种类型的数据库中获取实际数据,即从某种类型的数据库中获取适当的员工列表,尽管确切的实现细节不应该相关


然后可以将它们转换为适当的格式,以构建对客户端的响应,即用于XML的JAXB对象。(您的中间层也可以直接返回这些JAXB对象,但这种方法有其优点/缺点)

如果存在可以在多个web服务中重用的功能,那么该功能很适合作为可由另一个功能调用的独立功能,而不仅仅是在端点代码本身中拥有该功能

当我谈到需要创建这些类型的函数时,问题通常会变成它是
模型
功能还是
助手
功能的问题


在一天结束时,如果您要从一个API向同一API中的另一个端点发出curl请求,那么您只是在浪费不必要的时间来处理网络带宽。。。这通常是一个本地到本地的场景,但有时不是,在这种情况下,您会立即注意到这不是一个好主意。

如果有可以在多个web服务中重用的功能,那么该功能很可能是可以由另一个功能调用的独立功能,而不仅仅是在端点代码本身中拥有该功能

当我谈到需要创建这些类型的函数时,问题通常会变成它是
模型
功能还是
助手
功能的问题


在一天结束时,如果您要从一个API向同一API中的另一个端点发出curl请求,那么您只是在浪费不必要的时间来处理网络带宽。。。这通常是一个本地到本地的场景,但有时不是,在这种情况下,您会立即注意到这不是一个好主意。

整个员工数据集是如何存储的?您提到了针对单个员工的xml文件。它们是独立的xml文件吗?它是数据库中的xml数据吗?它是一个大型xml文件,您在getEmployee()中查找要解析的特定元素吗?@Chill它存储在数据库中。xml文件只是web服务的输入,传递id。它必须查询数据库,获取详细信息,并使用详细信息构建响应xml。显示存储的员工数据的总体集合是什么?您提到了针对单个员工的xml文件。它们是独立的xml文件吗?它是数据库中的xml数据吗?它是一个大型xml文件,您在getEmployee()中查找要解析的特定元素吗?@Chill它存储在数据库中。xml文件只是web服务的输入,传递id。它必须查询数据库,获取详细信息,并使用详细信息构建响应xml