【问题标题】:Call a web service in java application from main method从 main 方法调用 java 应用程序中的 Web 服务
【发布时间】:2018-02-03 10:32:43
【问题描述】:

我正在使用 Tom Cat 服务器和 Jersey 框架来实现 RESTful Web 服务。我有一个 main 方法,我想在 main 中调用它,然后运行 ​​Tomcat。我该怎么做?

@GET
    @Path("/{parameterPk}/{parameterData}")
    public Response getJSONObj(@PathParam("parameterPk") String parameterPk,

            @PathParam("parameterData") String parameterData) {
        System.out.println("Starting...");

        JSONObject jsonObj = new JSONObject();
        jsonObj.put(IDENTIFIER_JSON_ID, parameterPk);
        jsonObj.put(IDENTIFIER_JSON_DATA, parameterData);

        JSONArray jsonarray = new JSONArray();
        jsonarray.add(jsonObj);
        System.out.println(jsonarray);

        JSONObject jsonMain = new JSONObject();
        jsonMain.put("Employee", jsonarray);
        System.out.println(jsonMain.toString());

        return Response.status(200).entity(jsonMain.toString()).build();
    }

【问题讨论】:

  • 您的服务是否正在运行和测试?据我了解 - 你想创建一个客户?我相信你会丢失在你喜欢的搜索引擎中搜索“java restful client”的例子(例如alvinalexander.com/java/…)

标签: java rest web-services web jersey


【解决方案1】:

您需要开发一个 REST 客户端来调用 REST 服务。

在你的 main() 方法中定义一个这样的 URL:

http://localhost:9080/"Context-root name"/"url-pattern"/"Path"/

localhost 可以替换为运行应用程序的服务器的 IP 地址。 提供运行应用程序的服务器的正确端口号。 找到上下文根名称并将其放在适当的位置。 然后检查 web.xml 中定义的 URL 模式,例如“/rest/*”

<servlet-mapping> 
  <servlet-name>javax.ws.rs.core.Application</servlet-name> 
  <url-pattern>/rest/*</url-pattern> 
</servlet-mapping>

然后给出写REST服务的类中定义的X-Path。

通过这种方式,可以从 main() 调用 REST 服务:

String inputForRest = "Test Message for REST";
RestClient client = new RestClient();
Resource resource = client.resource(restURL);
String responseStr = resource.contentType(MediaType.APPLICATION_XML).accept("*/*").post(String.class, inputForRest);

媒体类型可能因 JSON、XML 等其他消费者而异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-13
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多