gpt4 book ai didi

java - 使用HttpClient在war文件之间通信

转载 作者:行者123 更新时间:2023-12-01 18:16:57 24 4
gpt4 key购买 nike

我有两个 war 文件,它们都位于同一服务器上。我想在war2中使用war1中提供的一些API。我被告知要使用 Apache 的 HttpClient,但我不确定如何使用,我希望朝着正确的方向插入。

假设war1是api.common-1.53​​.46.20150305-1042.war,我想调用DateFormatter类中的方法getFormatedDate() code> 包下 com.bo.api.common.utilities

如果您有使用 ReSTLet 的解决方案,也足够了。目前我的项目正处于开始阶段。

最佳答案

你不能直接调用方法,但你需要使用 HTTP 从 war 中导出一些东西,然后从另一个 war 中调用它。

我不知道你在第一次 war 中使用哪种技术(直接servlet,上面的框架,如ReSTLet,Spring MVC,JAX-RS框架,...),但你需要通过HTTP方法公开你的方法专用 URI。

然后可以使用如下代码从第二次 war 中调用它:

ClientResource cr = new ClientResource("http://<same-domain>/war2-rootpath/dateformatter");
Representation repr = cr.put(new StringRepresentation(...));
StringRepresentation sRepr = new StringRepresentation(repr);
String returnedText = sRepr.getText();

我的代码有点通用,因为你的问题有点模糊;-)

已编辑

我认为您可以使用 POST 方法创建像 /dates 这样的路径。后者将接受包含 long(时间值)数据的有效负载,并将格式化日期作为字符串返回。相应的服务器资源将是这样的:

public class DateFormatterServerResource extends ServerResource {
@Post
public String formatDate(long time) {
return DateFormatter.getFormatedDate(new Date(time));
}
}

此服务器资源将附加到您的应用程序的路由器,如下所述:

Router router = (...)
router.attach("/dates", DateFormatterServerResource.class);

希望对你有帮助。蒂埃里

关于java - 使用HttpClient在war文件之间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28967883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com