文档章节

restful webService 方法跳转错误的解决方案

Rocky_chi
 Rocky_chi
发布于 2015/08/18 10:16
字数 381
阅读 153
收藏 2

最近在call restful webService的时候遇到问题,并没有跳转到我想调用的方法里面去。比如我明明call的是add()方法,结果它跳到了delete()方法里面去。还有就是在同一次session里面,我无论call什么方法,它调用的都是同一个方法(而且我测试下来这个方法是随机的-_-#).

主程序是这样:

try{
    ClientRequestFactory crf = new ClientRequestFactory();
    Test test =  = crf.createProxy(InvokerService.class, url);
    restfulService.add();//call service方法
}
catch(Exception e){
    e.printStackTrace();
}

InvokerService里是这样:

    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    public void add();
    
    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    public void delete();

restfulService里面是这样:

    @Inject
    Utils utils;

    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    public void add() {      
        try {
            utils.add();
        }  catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    public void delete() {
        try {
            utils.delete();
        }  catch (Exception e) {
            e.printStackTrace();
        }
    }

我的解决方案有两个方面。第一,在两个service里面的方法上,都加上path这个annotation:

    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/add")//增加annotation
    public void add();
    
    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/delete")//增加annotation
    public void delete();
    
    
        @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/add")//增加annotation
    public void add() {
        
        try {
            utils.add();
        }  catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    
    @POST
    @Consumes()
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/delete")//增加annotation
    public void delete() {
        
        try {
            utils.delete();
        }  catch (Exception e) {
            e.printStackTrace();
        }
    }

这样在call service方法的时候它就不会乱跳了。

第二,每次call完都关掉代理:

ClientRequestFactory crf = null;
Test test = null;
try{
    crf = new ClientRequestFactory();
    test = crf.createProxy(InvokerService.class, url);
    restfulService.add();//call service方法
}
catch(Exception e){
    e.printStackTrace();
}
finally{
    test = null;//关掉代理类
    crf = null;//关掉工厂
}

供参考。

© 著作权归作者所有

Rocky_chi
粉丝 0
博文 20
码字总数 17947
作品 0
私信 提问
jfinal中ajax操作session超时后重新登录后想进入上次的操作页面

@JFinal 你好,想跟你请教个问题: 呵呵,其实这个问题也不是jfinal相关的啦,呵呵,就是以最佳的用户体验为前提,ajax操作如果session超时后,用户重新登录成功后应该进入上次的ajax操作所在...

错觉
2016/04/25
466
1
UIWebView加载时报错:H5中一个按钮点击跳转另一个网页(NSURLErrorCancelled = -999)

问题情境:嵌入金融相关的H5时,可能会有这样的操作:从接口请求得到一个JSON字符串,取出其中html字符串,由UIWebView的loadHTMLString方法渲染该html字符串。当一个按钮点击跳转另一个网页...

陈满iOS
2018/03/19
0
0
企业级JavaEE开发框架bbossgroups

bbossgroups是国内首款集AOP、MVC、持久化、JSP标签库、分布式RPC服务、分布式事件框架于一身的企业级JavaEE开发框架,在Apache License Version 2.0 许可协议下开源。 官网地址:http://ww...

xiahuawuyu
2012/10/24
342
1
了解restful webservice概念

了解REST REST 描述了一个架构样式的互联系统(如 Web 应用程序)。REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。由于它简便、轻量级以及通过 HTTP 直...

mckee
2013/07/16
480
0
android2.2项目转移到android4.0平台上错误????????????

android2.2平台上的项目可以访问webservice,而转移到android4.0上就不能访问了。看了网上的答案,说加如下代码: StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .dete...

mwy2012
2013/01/27
371
0

没有更多内容

加载失败,请刷新页面

加载更多

006-Docker中导出单个或多个tar包

docker中导出单个镜像和多个镜像的tar包 docker save [images] > [name.tar] docker save [images] [images] > [name.tar]...

伟大源于勇敢的开始
今天
6
0
Kotlin基础语法学习

安装好安卓studio,以及插件支持Kotlin 就可以在创建项目的时候选择 Kotlin语言了。 https://www.jianshu.com/p/4ab13691d681 参考手册: https://www.runoob.com/kotlin/otlin-android-setu...

T型人才追梦者
今天
4
0
java实现简单计算器

1.概述 之前作者写过一篇文章,也是关于计算器的,用的是C++与Qt,链接在这里 这次用java的swing写的(这差距好像有点大,好吧是qt太强了). 先上图: 2.UI 总体布局使用流布局. (1)文本框 文本框就...

Blueeeeeee
今天
4
0
纯CSS实现DIV悬浮(固定位置)

纯CSS实现的DIV悬浮效果(固定位置),兼容常用的浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗等。效果如下: 实现代码: <!DOCTYPE html> <html> <head> <meta ...

独钓渔
今天
6
0
OSChina 周二乱弹 —— 给我来个女菩萨

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐#分享XXXTENTACION/Travis Barker的单曲《Pain = BESTFRIEND》: 《Pain = BESTFRIEND》- XXXTENTACION/...

小小编辑
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部