当前位置:编程学习 > JAVA >>

Web service提供接口如何获取action类session

编写的Webservice接口需要调用user实体里面的几个加密用户名密码之类的.  但是webservice提供的接口如何获取action里面的request.session呢.    或者cookie也行.  --------------------编程问答-------------------- webservice与request没有直接关系。

猜测你的场景应该是页面的参数传递给webservice客户端代码,客户端代码对请求参数进行封装,生成服务端请求对象,然后客户端发送此指令,服务端处理指令,客户端再接收相应,对响应进行解析,最后返回给页面一个结果。 --------------------编程问答-------------------- 是没有直接关系. 所以才问的怎么才能让他们有关系 --------------------编程问答-------------------- 要想在webservice中得到request,apache的webservice功能就可以
首先发布webservice,
package com.zl.webservice;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.mvc.annotation.Webservice;
import org.apache.commons.mvc.annotation.WebserviceMethod;
import org.apache.commons.mvc.thread.HttpThread;
import com.zl.entity.Store;
import com.zl.model.StoreModel;

/**
 * 发布商品的Webservice
 * @version 1.0
 */
@Webservice(name = "store")
public class StoreWebservice {

/**
 * 查询数据
 * @param store
 * @return
 */
@WebserviceMethod
public List<Store> find(Store store) {
HttpServletRequest request = HttpThread.getRequest();
System.out.println("request: " + request);
return new StoreModel().findByExcel(null != store ? store : new Store());
}

}

再测试调用webservice
package com.zl.webservice;

import java.util.List;
import org.apache.commons.mvc.webservice.WebserviceClient;
import com.zl.entity.Store;

/**
 * 测试Webservice
 * @version 1.0
 */
public class TestWebservice {

public static void main(String[] args) {
Store store = new Store();// 准备参数
store.setBrand("多乐士");
// 首先创建一个webservice客户端,参数依次为:webservice的url, webservice的名称, webservice的方法, 参数列表, 返回类型, 泛型的类型(不需要泛型就传入null) 
        WebserviceClient client = new WebserviceClient("http://localhost:8080/test/webservice", "store", "find", new Object[] { store }, List.class, Store.class);
        List<Store> list = client.execute();// 调用webservice  
        System.out.println("从服务器返回" + list.size() + "个商品");// 得到了服务端返回的数据
}

}

最后运行main方法,发布方的控制台输出:
request: org.apache.catalina.connector.RequestFacade@6f558a
2013-08-25 20:03:59,546 [http-8080-2] INFO  [org.apache.commons.mvc.webservice.WebserviceControl] - 路径:/test/webservice   方式:POST   耗时:15ms   IP:127.0.0.1   参数:{"getSoundCode":["0.4661341051949396"],"wsRandom":["7636823720"],"arg0":[{"brand":"多乐士","brandPy":"","description":"","id":0,"model":"","name":"","namePy":"","price":0,"prices":"","searchName":"","searchStatus":0,"specification":"","unit":"","unitPy":""}],"wsMethod":["find"],"wsRandomMd5":["8b3d18cac9f49d0a9767b43e484ac6bc"],"wsName":["store"]}   浏览器:Java 1.6.0_10-rc2   系统:Java 1.6.0_10-rc2    其它:Java/1.6.0_10-rc2


调用方的控制台输出:
从服务器返回17个商品


非常强大的webservice,你想要的功能,这里都有了
这段代码挺简单的,相信你都看得懂
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,