在apigee api代理中从javascript创建java对象:类不是函数,而是对象
从Apigee API代理中的javascript中,以下功能可以正常工作:在apigee api代理中从javascript创建java对象:类不是函数,而是对象,java,javascript,apigee,Java,Javascript,Apigee,从Apigee API代理中的javascript中,以下功能可以正常工作: var javaString = new java.lang.String("FooBar"); throw "javaString: "+javaString; 但这并不是: var date = new java.util.Date(); throw "date: "+date; 并在创建对象时引发以下异常 TypeError: [JavaPackage java.util.Date] is not a
var javaString = new java.lang.String("FooBar");
throw "javaString: "+javaString;
但这并不是:
var date = new java.util.Date();
throw "date: "+date;
并在创建对象时引发以下异常
TypeError: [JavaPackage java.util.Date] is not a function, it is object
我已经尝试了Mozilla Rhino Scripting_Java页面上的很多东西,但没有成功
请有人解释一下我怎么会愚蠢你没有愚蠢。由于边缘环境的要求,JavaScript调用中不允许所有标准类类型 目前,应允许:
java.lang.Object
java.lang.String
java.lang.Integer
java.lang.Boolean
java.lang.Long
java.lang.Double
java.lang.Float
java.lang.Short
java.lang.Byte
java.lang.Number
java.util.HashMap
当前不允许使用java.util.Date。若要解决有关创建日期类型对象的原始问题,可以使用普通的旧JavaScript,例如:
new Date() // current date and time
new Date(milliseconds) // milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
我猜它威胁的是一个
字符串
而不是对象,尽管它是Java语言。啊,谢谢你指出这一点。我希望使用一些javax.crypto的东西——可能需要部署一个引用这些东西的jar,或者它仍然可以通过JS来完成(或者根本不需要)?我不相信您可以部署jar。由于代理可以在单个VM上运行大量流量,特别是在Apigee Edge cloud中(如果您使用的是自由组织,则为多租户),因此存在大量限制以避免潜在的内存/性能问题。所有Java类都需要列入白名单。如果您是付费客户,您应该能够创建Java标注(不过,您需要做的工作要多得多)。