Xpages 在rest控件中设置响应代码

Xpages 在rest控件中设置响应代码,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我不知道如何在REST控件元素中设置响应代码 这是REST控件的代码 <xe:restService id="restProfile" pathInfo="profile"> <xe:this.service> <xe:customRestService doGet="#{javascript:REST_PROFILE.doGet()}" contentType="applicatio

我不知道如何在REST控件元素中设置响应代码

这是REST控件的代码

    <xe:restService id="restProfile" pathInfo="profile">
    <xe:this.service>
        <xe:customRestService
            doGet="#{javascript:REST_PROFILE.doGet()}"
            contentType="application/json"
            doPost="#{javascript:REST_PROFILE.doPost(reqVar)}"
            requestContentType="application/json" requestVar="reqVar">
        </xe:customRestService>
    </xe:this.service>
</xe:restService>

在某些情况下,要求返回代码404,但我不知道如何执行

有人知道如何使用SSJS吗


Domino的版本是9.0.1

您不能返回带有doGet和doPost的状态404。响应属性状态由customRestService管理。SSJS代码只能返回JSON数据。
您可以定义自己的JSON内容,如

{
“状态”:“错误”,
“错误消息”:“未找到某些内容”
} 
尽管如此,还是可以这样处理错误

您也可以使用customRestService的serviceBean


并使用
响应设置返回代码。设置状态(status)
在那里:

公共类RestService扩展了CustomServiceBean{
@凌驾
public void renderService(CustomService服务、RestServiceEngine引擎)引发ServiceException{
试一试{
HttpServletRequest=engine.getHttpRequest();
HttpServletResponse=engine.getHttpResponse();
setHeader(“内容类型”,“应用程序/json;字符集=UTF-8”);
setContentType(“应用程序/json”);
setHeader(“缓存控制”、“无缓存”);
响应。setCharacterEncoding(“utf-8”);
String方法=request.getMethod();
int状态=200;
if(method.equals(“GET”)){
状态=。。。
}否则{
...
}
响应。设置状态(状态);
}捕获(例外e){
e、 printStackTrace();
抛出新的运行时异常(e);
}
}

无法使用doGet和doPost返回状态404。响应属性状态由customRestService管理。SSJS代码只能返回JSON数据。
您可以定义自己的JSON内容,如

{
“状态”:“错误”,
“错误消息”:“未找到某些内容”
} 
尽管如此,还是可以这样处理错误

您也可以使用customRestService的serviceBean


并使用
响应设置返回代码。设置状态(status)
在那里:

公共类RestService扩展了CustomServiceBean{
@凌驾
public void renderService(CustomService服务、RestServiceEngine引擎)引发ServiceException{
试一试{
HttpServletRequest=engine.getHttpRequest();
HttpServletResponse=engine.getHttpResponse();
setHeader(“内容类型”,“应用程序/json;字符集=UTF-8”);
setContentType(“应用程序/json”);
setHeader(“缓存控制”、“无缓存”);
响应。setCharacterEncoding(“utf-8”);
String方法=request.getMethod();
int状态=200;
if(method.equals(“GET”)){
状态=。。。
}否则{
...
}
响应。设置状态(状态);
}捕获(例外e){
e、 printStackTrace();
抛出新的运行时异常(e);
}
}

谢谢@Knut。我会接受答案,因为这是我怀疑的“一对一”。谢谢@Knut。我会接受答案,因为这是我怀疑的“一对一”。