java中的脚本编写 – 来自Java 1.5中服务器端类文件的javascript

我有三种类型的get请求从移动设备传递到Web应用程序上的文件。 由于移动设备不提供cookie,因此只有日志文件命中

in.ter.nal.ip ser.ver.ip:port 2009-06-05 09:14:44 GET /applicationname/mobiledevicexml reqtype=login&userid=xx### 200 87 - MercuryMobile/1.0 CFNetwork/342.1 Darwin/9.4.1 cookieArrayLength=0; 

如果我可以在我的类文件中实例化javascript,并从类文件中生成一个javascript函数调用urchinTracker(),我可以替换那个无用的cookieArrayLength = 0; 有了一些有用的数据,urchin可以从日志文件中读取到分析报告中。 我们一直在研究使用Rhino编写Java脚本 ; Safari Bookshelf有:

JavaTM中的脚本:语言,框架和模式

这帮助我们立即演示我们可以在类文件中运行javascript – 这在Java 6上开箱即用。

任何人都知道在Java 1.5或1.4上使用Rhino编写脚本的资源吗?

或者,任何从java 1.5运行javascript的建议都将不胜感激。

[我在答案中发帖,因为我没有足够的分数来发表对问题本身的评论。]

您确定urchinTracker()函数将在Web浏览器之外运行吗? 如果函数依赖于各种浏览器对象(如文档对象模型(DOM)或XmlHttpRequest),则运行Rhino JavaScript解释器(这并不太困难)是不够的。

我建议您至少扫描urchinTracker()函数的内部,看看是否是这种情况。

Java Scripting API ( javax.scripting )包是在Java 6中引入的,因此在Java 1.4或5中不可用。作为默认安装,Java SE 6附带了一个精简的Mozilla Rhino版本,它通过javax.scripting

但是, Mozilla Rhino本身不需要Java 6.从需求页面:

最新版本的Rhino仅使用JDK 1.4及更高版本进行了测试。 旧版本早在1.1版本就支持JDK。

因此,使用Rhino,似乎Java 1.4实际上已经足够了。

至于资源, Rhino的文档似乎有很多信息。 特别是, 嵌入Rhino部分可能对查看脚本如何工作很有用。

当然,缺少javax.scripting包意味着与Rhino本身的接口将需要使用Rhino API而不是Java 6本机脚本API,但我猜这个function将非常相似。 我能看到的唯一缺点是,如果将来Java 9将在目标平台上和/或使用其他语言支持,则可能需要重写以使用Java Scripting API而不是直接支持Rhino。

有关在服务器端运行JavaScript的项目列表,请参阅服务器端JavaScript 。

对于您的使用,使用Rhino似乎是要走的路。