Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在apigee api代理中从javascript创建java对象:类不是函数,而是对象_Java_Javascript_Apigee - Fatal编程技术网

在apigee api代理中从javascript创建java对象:类不是函数,而是对象

在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

从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 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标注(不过,您需要做的工作要多得多)。