【问题标题】:Consuming Java RESTFul web service with PHP client使用 PHP 客户端使用 Java RESTFul Web 服务
【发布时间】:2012-05-10 02:48:21
【问题描述】:

我在开发一个使用 Java RESTful 服务的 PHP 客户端时遇到了一些问题,该服务是在 NetBeans 7.1.1 中创建的。

对于那些不知道的人:当您创建基于 MySQL 数据库(实体)的 Java RESTful Web 服务时,NetBeans 将自动创建实体类和每个实体“外观”,可以称为服务提供商。

我使用 Java RESTful Web 服务服务器和 Java RESTful 客户端开发了一个 Web 应用程序,该客户端通过 Jersey 和 Servlets 使用 Web 服务。

现在到一个计划好的 PHP 客户端:我已经搜索了很多,我看到的是:没有互操作性(或者我是“菜鸟”),这是 Web 服务的目的之一。我知道如何在 PHP 中创建 RESTful Web 服务,并与 PHP 客户端通信,Java 也是如此,但我想要的是创建 Java RESTful Web 服务服务器和 php 客户端。

对不起,如果我在这个问题上说错了,请随时纠正我。

如果有人可以帮助我,给我一些想法,代码示例,解释“诀窍”,我将不胜感激。

【问题讨论】:

  • RESTful Web 服务是可互操作的,那么您面临的具体问题是什么?您将如何为 PHP RESTful WS 编写 PHP 客户端,为什么不能对 Java 端点做同样的事情?
  • @hugh - 最后我编辑了你的第二个问题。这确实是一个单独的问题。随意提出一个新的 SO 问题。对于那些愿意在这里阅读它的人:“PS:如果,顺便说一句,有人可以向我解释,如何手动将 java restful webservice 服务器 (.war) 部署到 apache tomcat 文件夹,使用数据库连接,太棒了。”

标签: java php web-services rest tomcat


【解决方案1】:

这是一个相当容易解决的问题。对于企业应用程序,我已经为这个相同的解决方案建模。 Java 层将 CXF RESTful Web 服务映射到 SOAP 端点(外部系统)以及实体对象(通过 Hibernate/IBatis 映射)的混合。使用 CXF 休息层相当简单。在 PHP 中,我绝对推荐使用 Guzzle 客户端。

/** 使用 REST 服务 **/

$client = new Client("http://example.com/);

$locationRequest = $client->get('/someservice/rest/location/findstatebyzip.json?zip=12345');
$locationResponse = $locationRequest->send();

$locationResults = json_decode($locationResponse->getBody());

Guzzle Client 的优点在于您不需要启用/安装 CURL,它可以使用其他传输机制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多