Java 如何使用liferay service builder的web服务从curl URL获取JSON字符串
我已经使用ServiceBuilder创建了服务,并将示例实体放在liferayservice.xml文件中 My service.xml 我构建了服务,并能够通过localhost:8080/api/jsonws和管理员凭证访问它 现在,当我使用下面的curl命令调用此服务时 卷曲 -utest@liferay.com:测试 -d动作class='temp' 我能够在我的实现方法中获得动作参数值。 现在我想得到curl发布的值以下 卷曲 -utest@liferay.com:测试 -d'{操作:验证}' 我无法在我的web服务中获取此json 我尝试添加以下内容 curl-H内容类型:application/json-H Accept:application/json -XPOST 将参数类型从string更改为jsonObject,但运气不好Java 如何使用liferay service builder的web服务从curl URL获取JSON字符串,java,json,web-services,curl,liferay,Java,Json,Web Services,Curl,Liferay,我已经使用ServiceBuilder创建了服务,并将示例实体放在liferayservice.xml文件中 My service.xml 我构建了服务,并能够通过localhost:8080/api/jsonws和管理员凭证访问它 现在,当我使用下面的curl命令调用此服务时 卷曲 -utest@liferay.com:测试 -d动作class='temp' 我能够在我的实现方法中获得动作参数值。 现在我想得到curl发布的值以下 卷曲 -utest@liferay.com:测试 -d'{操作
这里有我遗漏的注释吗?您想要的是将JSON对象作为参数传递给远程服务,对吗?我可以通过下面的URL curl \-u获得它test@liferay.com:test \-d action='{action:verify}'。但如果我像描述中所示的第二个CURL命令一样点击,那么我就无法获得this{action:verify}。URL参数是键值对。所以,您需要像action={action:verify}一样传递它,其中左侧的action是param的名称。只需像action=verify那样传递它
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.2.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_2_0.dtd">
<service-builder package-path="com.temp">
<namespace></namespace>
<entity name="Student" local-service="true" remote-service="true">
</entity>
<entity name="Foo" uuid="true" local-service="true" remote-service="true">
<!-- PK fields -->
<column name="fooId" type="long" primary="true" />
<!-- Group instance -->
<column name="groupId" type="long" />
<!-- Audit fields -->
<column name="companyId" type="long" />
<column name="userId" type="long" />
<column name="userName" type="String" />
<column name="createDate" type="Date" />
<column name="modifiedDate" type="Date" />
<!-- Other fields -->
<column name="field1" type="String" />
<column name="field2" type="boolean" />
<column name="field3" type="int" />
<column name="field4" type="Date" />
<column name="field5" type="String" />
<!-- Order -->
<order by="asc">
<order-column name="field1" />
</order>
<!-- Finder methods -->
<finder name="Field2" return-type="Collection">
<finder-column name="field2" />
</finder>
<!-- References -->
<reference package-path="com.liferay.portlet.asset" entity="AssetEntry" />
<reference package-path="com.liferay.portlet.asset" entity="AssetTag" />
</entity>
</service-builder>
@JSON
public JSONObject verifyService (String action){
System.out.println("action----->"+action);
JSONObject actionData=JSONFactoryUtil.createJSONObject();
actionData.put("success", true);
return actionData;
}