iteye_11669 2008-09-07 20:39
浏览 208
已采纳

請教一個觀念問題關於共同變數

小弟初學webservice
想知道 如果client傳來數個request
希望server端的記憶体內有共同的變數,可供每
request傳來時,經過運算之後,Response回去。
類似的情況,比如DtatBase裏有一萬筆紀錄,希望在
Server啟動時或第一次收到request時,將這一萬筆紀錄
載入到記憶体內,可供第2,3....個request來使用。
不希望一直重複的read db
這有點類似 網站的session的性質。
請各位先進指導一下嘿。謝謝

  • 写回答

1条回答 默认 最新

  • xuxiaolei 2008-09-08 17:14
    关注

    可以通过两个方法来解决:
    (1)把你的数据放在类的静态变量中,在启动时候加载数据,然后让服务端方法访问这个静态变量。
    (2)如果你用的是axis1作为webservice实现可以,将deploy.wsdd文件中service节点中添加,这样你这个服务,不管有多少请求过来,启动的只是一个实例,但这样的话,要对这个服务的方法做同步处理。[code="xml"]
    xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

    <!-- Services from CounterService WSDL service -->














    [/code]
    [code="java"]
    public class CounterServiceSOAPImpl implements com.ttdev.counterservice.CounterService_PortType{

    private List data;

    public synchronized List get() throws java.rmi.RemoteException {
    if(date == null) {
        //在这里装载数据
    } 
    
        return data;
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?