当第三方客户端呼叫我的Web服务时,调用Controller

时间:2015-10-04 06:55:52

标签: java web-services model-view-controller liferay portlet

我的网络服务暴露在我身边,当有人点击网址时,我可以调用它,如

curl http://localhost:8080/api/jsonws/XXXXX-Portlets.foo/verify-service \

-u test@liferay.com:测试\   -d action =''

这里的verifyService(String action)是我在课堂上的方法,当有人用curl命中这个服务时我只是以curl为例。 您也可以像下面一样调用此服务,

http://localhost:8080/api/jsonws/XXXXX-Portlets.foo/verify-service/action/{valueOfparameter}

现在这个服务受到第三方客户端的攻击,我想要实现的是当有人调用这个Web服务时我想用该参数更新我的jsp或者想要调用我的控制器。 我正在使用MVC模式,所以我必须从我的web服务类的方法(verifyService)调用我的控制器类。

1 个答案:

答案 0 :(得分:1)

如果"控制器"意味着" Portlet"在你的情况下(Liferay上下文暗示了这一点)我说你的架构错了。将您需要调用的代码移动到服务中,然后调用它是很自然的。让portlet和服务使用可重用代码调用相同的服务。

将portlet世界视为应用程序的UI。您不会从您的业务(或服务)层调用UI层代码 - 您可以调用其UI,尤其是在可能存在大量并发用户的Web服务器上。

要回答您对此帖的第一条评论,我不确定您对" CMS端点"的含义。 Liferay的API可用,由于历史原因,CMS接口'名称以" Journal"开头,因此您可以通过委派给JournalArticleService等来实际创建或阅读您自己服务中的文章。这使您可以访问内容方面,还有许多不同的API可用于更改/创建页面,向页面添加内容等 - 无需通过portlet。 Liferay的所有功能都可通过API获得。在一个stackoverflow答案中你需要多少以及哪一个可能太多无法回答 - 有关访问Liferay API的一些章节,请查看https://dev.liferay.com。另外,一个好的起点是this blog article (series)