我似乎无法将json传递给serviceBean中的GET调用。
<xe:restService id="restService1" pathInfo="getaccount">
<xe:this.service>
<xe:customRestService requestContentType="application/json" serviceBean="web.service.GetAccount" contentType="application/json"/>
</xe:this.service>
</xe:restService>
对于pathInfo,我尝试过pathInfo =“getaccount”,pathInfo =“getaccount / {id}”,pathInfo =“getaccount {id}”
serviceBean:
public class GetAccount extends CustomServiceBean {
@Override
public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException {
XspOpenLogUtil.logEvent(null, "getAccount()", Level.INFO, null);
Map parameters = engine.getHttpRequest().getParameterMap();
XspOpenLogUtil.logEvent(null, "getAccount() - getHttpRequest().getParameterMap(): " + parameters.toString(), Level.INFO, null);
String json_string = IOUtils.toString(engine.getHttpRequest().getInputStream(), "UTF-8");
XspOpenLogUtil.logEvent(null, "getAccount() - jsonReaderString: " + json_string, Level.INFO, null); }
如果我改为POST,我可以获得json_string,但我应该能够执行GET并发送一些json,即{“id”:“1234”}
将SoapUI与资源一起使用为api.xsp / getaccount {id},参数Name = id和Value = 1234
谢谢, 斯科特。
答案 0 :(得分:0)
我明白了。您可以使用engine.getHttpRequest().getRequestURI()
,它会为您提供输入的URI,例如api.nsf/api.xsp/getaccount/Bob.Smith%40mail.com
。运行URLDecode以清除编码。
希望这有助于其他人试图解决这个问题。
斯科特。