簡體   English   中英

如何在啟動Apache tomcat服務器而不是使用ScheduledExecutorService的Java類時定期運行javascript函數?

[英]How to run javascript function periodically when the Apache tomcat server is starts instead of java class using ScheduledExecutorService?

我需要在服務器啟動時定期運行我的javascript函數。 我不知道如何編寫等效的Java代碼,因為我的javaScript函數包含多個ajax調用和數學方程式。

以下是我的JavaScript代碼,我需要在服務器啟動時定期運行。

<script type="text/javascript">




$(document).ready(function(){


var polyLat = new Array();
polyLat[0] = 10.194027;
polyLat[1] = 10.226975;
polyLat[2] = 10.059987;
polyLat[3] = 10.002248;
polyLat[4] = 9.854925;
polyLat[5] = 9.835443;
polyLat[6] = 9.899107;
polyLat[7] = 9.993088;
polyLat[8] = 10.081425;
polyLat[9] = 9.992266;
polyLat[10] = 10.194027;//First point repeated to close polygon
var polySides = (polyLat.length)-1;//number of points in polygon
//vertical Longitude coordinates of polygon 
var polyLng =  new Array();
polyLng[0] = 76.201205;
polyLng[1] = 76.375022;
polyLng[2] = 76.775730;
polyLng[3] = 76.778940;
polyLng[4] = 76.584336;
polyLng[5] = 76.411473;
polyLng[6] = 76.368070;
polyLng[7] = 76.397007;
polyLng[8] = 76.317492;
polyLng[9] = 76.267905;
polyLng[10] = 76.201205;//First point repeated to close polygon
//Coordinates for bounding box
var maxLat = Math.max.apply(null,polyLat);  
var minLat = Math.min.apply(null,polyLat);
var maxLng = Math.max.apply(null,polyLng);
var minLng = Math.min.apply(null,polyLng);


$.post('outboundupd.jsp',
        {
    mx_lat:maxLat,
    mn_lat:minLat,
    mx_lng:maxLng,
    mn_lng:minLng,
    ply_sds:polySides
        },
        function(response,status,xhr)
        {
//          alert(response.trim());
            plotdata(response);


});

    function plotdata(response)
    {
        var x;
        var y;
        var mob;
        var jsonArray=JSON.parse(response.trim());
        var jalen= jsonArray.length; 
        for(i=0;i<jalen;i++)
        {
            var obj=jsonArray[i];
            pcode= obj.Pcode;
            nplate= obj.N_plate;
            driver= obj.Driver;
            mob= obj.MobileNu;
            x= obj.Latitude;
            y= obj.Longitude;
            time= obj.Time;

        }


        var j = polySides-1 ;
          oddNodes = 0;
          for (i=0; i<polySides; i++) {
            if (polyLng[i]<y && polyLng[j]>=y  ||  polyLng[j]<y && polyLng[i]>=y) {
                if (polyLat[i]+(y-polyLng[i])/(polyLng[j]-polyLng[i])*(polyLat[j]-polyLat[i])<x)  {
                    oddNodes=!oddNodes; 
                }
            }
           j=i; }




            if(oddNodes!=true)
            {
//              alert("ob mobile:"+mob);

                $.post('obsouth.jsp',
                        {

                    pcd:pcode,
                    npt:nplate,
                    drv:driver,
                    mobl:mob,
                    lat:x,
                    lon:y,
                    tm:time

                        },
                        function(response,status,xhr)
                        {
                            alert(response.trim());


                });

            }

          return oddNodes;


        }

});

</script> 

我的問題:-

  1. 有什么技術可以從通過runnables擴展的Java類中調用javascript函數,或者直接在java類中實現確切的javascript嗎?
  2. 如果1的答案為否,您能否指導我將整個JavaScript轉換為Java代碼?

任何代碼都將受到高度贊賞,並在此先感謝。

使用node.js並使用Runtime.exec()執行腳本。 您可以在此節點上運行節點,也可以使用Rhino腳本引擎從Java類中的.js文件中調用方法。 希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM