文档章节

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

Rocky_chi
 Rocky_chi
发布于 2015/08/18 10:16
字数 381
阅读 149
收藏 2
点赞 0
评论 0

最近在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
博文 12
码字总数 6459
作品 0
jfinal中ajax操作session超时后重新登录后想进入上次的操作页面

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

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

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

陈满iOS
03/19
0
0
了解restful webservice概念

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

mckee
2013/07/16
0
0
企业级JavaEE开发框架bbossgroups

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

xiahuawuyu
2012/10/24
0
1
使用CXF开发RestFul WebService问题解决方案

最近在项目中,因为几个系统自己需要数据交换,所以采用进来都比较流行的RestFul风格WebService,实现框架采用apache的cxf,apache的东西一直以来都是比较的好用,回话少说,进入正题。 首先...

xdev
2013/05/18
0
3
『阅读源代码的姿势:以 go-restful 为例』

大家好,我叫谢伟,是一名程序员。 下面结合我的经历和见闻,讲述下一名非科班程序员的成长过程: 学习一门编程语言 写尽量多的代码 补尽量多的基础知识 一定阶段后(有开发任务,能按时完成)...

谢小路
05/21
0
0
wpf的TabControl的跳转问题

求高手指教!!!!? TabControl的SelectedIndex、Focus的冲突吗? 我在不同的构造方法中通过设置tabControl1的selectedIndex来跳转到不同的TabItem页, 因为每次在不同页中跳转时焦点会出现...

xiongmiao
2012/10/25
8.1K
9
spring+restful service

Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述...

游宵
2014/04/25
0
1
android2.2项目转移到android4.0平台上错误????????????

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

mwy2012
2013/01/27
359
0
iOS开发总结-Xcode常见错误

iOS开发总结-Xcode常见错误 这篇文章中收录了Xcode出现的各种错误,并对错误给出了正确的解决方案,以便帮助遇到困难的朋友。 文章由作者刘小壮维护并持续更新,有新的问题并且文章中没有收...

法斗斗
2016/07/15
316
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 基础 - 远程仓库的使用

远程仓库的使用 要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某...

谢思华
10分钟前
0
0
面试宝典-悲观锁和乐观锁

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。 乐观锁(Optimistic...

suyain
12分钟前
0
0
崛起于Springboot2.X之集成MongoDb使用mongoTemplate CRUD(27)

1、pom依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version></dependency><dependency> <groupId>log4j</......

木九天
22分钟前
0
0
切分log日志

新建logback.xml放到resource里面 <?xml version="1.0" encoding="utf-8"?><configuration> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <......

talen
27分钟前
0
0
spring @Resource 和 @Autowired 的使用区别

这两个 注解 @Resource 和 @Autowired , 常识都知道 @Resource 是 JAVAEE 自带的,@Autowired 是 spring 的自定义注解。 一般情况下, 使用 bean的时候, 这两个注解 随便使用一个即可。 但...

之渊
32分钟前
0
0
springboot集成elasticsearch客户端问题记录

1背景说明 服务端ES版本为5.5.2,springboot版本为1.5.6。 工程中添加如下依赖 2问题记录 2.1 NetworkPlugin类找不到 报错java.lang.ClassNotFoundException: org.elasticsearch.plugins.Net...

zjg23
34分钟前
1
0
快速构建ceph可视化监控系统

前言 ceph的可视化方案很多,本篇介绍的是比较简单的一种方式,并且对包都进行了二次封装,所以能够在极短的时间内构建出一个可视化的监控系统 本系统组件如下: ceph-jewel版本 ceph_expor...

万建宁
34分钟前
0
0
Java构造器使用注意

public class 父类A {int age = 10;protected void say() {System.out.println("父类A");}public 父类A() {override();}public void override() {Syst...

咸鱼AI
35分钟前
0
0
TensorFlow 线性分类

构造直线 z = 2 * x - 3 * y + 4 x0*w0+x1*w1+b=0 x1=-x0* w0/w1-b/w1 斜率 k= -w0/w1 截距 -b/w1 随机生成数据,加入一定的偏差,用直线将二维平面分为两部分 使用线性模型拟合参数 损失函数...

阿豪boy
38分钟前
0
0
翻译冒泡排序测试

翻译一个冒泡排序: var a = [1,3,2,4,6,5];var f = 0;var n = a.length ;for( var i =1; i<= n; i++) { for( var j = n-1 ; j >= i; j --) { if(a[j] < a[j+1]) { ......

钟元OSS
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部