java scripting API – 如何停止评估

我编写了一个servlet,它收集了一个java脚本代码并处理它并返回答案。 因为我使用了java脚本API 在下面的代码中,如果script =“print(’Hello,World’)”; 代码将正确打印“hello world”。 但如果script =“while(true);” 脚本将无休止地循环。 import javax.script.*; public class EvalScript { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a JavaScript engine ScriptEngine engine = factory.getEngineByName(“JavaScript”); // evaluate JavaScript code from String engine.eval(script); } } 我的问题是,如果它需要太长时间(比如15秒),我如何杀死eval过程? 谢谢

如何将带有斜杠的URL重定向到没有它的相应的URL?

Spring MVC(3.0)将带有和不带尾部斜杠的URL视为相同的URL。 例如: http://www.example.org/data/something = http://www.example.org/data/something/ 我需要使用尾部斜杠重定向URL http://www.example.org/data/something/ 到没有它的URL: http://www.example.org/data/something 我需要在应用程序内部执行此操作(因此不要通过Apache重写规则等)。 一种方法是: @ResponseStatus(value=HttpStatus.MOVED_PERMANENTLY) @RequestMapping(value = “/data/something/”) public String dataSomethingRedirect(…) { return “redirect:/data/something”; } 但这通常有两个问题: 控制器太多了 参数问题:喜欢错误的编码 题 有没有办法拦截所有的URL,如果他们有一个尾部斜杠,将它们重定向到没有斜线的相对URL?

如何使用spring @Lookup注释?

我需要从singleton获得原型类。 我发现方法注入是可行的方法,但我真的不知道如何使用spring @Lookup注释。 我是dependency injection的新手,我选择使用注释配置,所以我想继续这个方向。 我发现@Lookup注释最近才添加( https://spring.io/blog/2014/09/04/spring-framework-4-1-ga-is-here ),但我找不到任何地方如何用它。 所以,这是简化的例子 配置类: @Configuration @Lazy public class ApplicationConfiguration implements ApplicationConfigurationInterface { @Bean public MyClass1 myClass1() { return new ContentHolderTabPaneController(); } @Bean @Scope(“prototype”) public MyClass2 myClass2() { return new SidebarQuickMenuController(); } } 以下是类示例: public class MyClass1 { doSomething() { myClass2(); } //I want this method to return MyClass2 prototype […]

ANTLR的Java Tree解析器输出

我在ANTLR网站上找到了一个样本模板,它的Javatreeparser.g,该网站说它可以生成我需要的AST,但由于我是ANTLR的新手,我该如何让它显示? 到目前为止我所做的是将语法文件与我现有的java语法放在一起。 但我不知道如何使用和输出我需要的文件AST。 我该怎么做?

如何使date.getTime()返回UTC时间?

我有一个表示UTC时间的Date对象。 当我使用方法getTime()来获取此对象的long值时,返回的值对应于我们的本地时间(美国中部)。 获取与原始UTC时间相对应的值的正确方法是什么? 谢谢

NetBeans 8.1激活失败

我正在尝试在我的Ubuntu 14.04.3 LTS上安装NetBeans 8.1。 当我尝试创建一个新项目时,它显示一个错误,说“并非所有请求的模块都可以启用”。 我尝试从插件中激活它,但无济于事。 为什么会发生这种情况,我该怎么做才能解决它?

删除ThreadPoolExecutor的所有排队任务

我有关于ThreadPoolExecutor的这个相当简单的问题。 我有以下情况:我必须从队列中使用对象,为它们创建适当的工作任务并将它们提交给ThreadPoolExecutor。 这很简单。 但在关闭情况下, 许多工作人员可能会排队等待执行。 由于其中一个任务可能运行了一个小时,并且我想要相对快速地正常关闭应用程序,我想从ThreadPoolExecutor中丢弃所有排队的任务,而已经处理的任务应该正常完成。 ThreadPoolExecutor文档有一个remove()方法,但只允许删除特定的任务。 purge()仅适用于已取消的Future任务。 我的想法是清除队列中包含所有排队的任务。 ThreadPoolExecutor提供对此内部队列的访问,但文档指出: 方法getQueue()允许访问工作队列以进行监视和调试。 强烈建议不要将此方法用于任何其他目的。 所以抓住这个队列并清除它不是一个选择。 此外,该文档的片段说: 当大量排队的任务被取消时,两个提供的方法remove(java.lang.Runnable)和purge()可用于协助存储回收。 怎么样? 当然,我可以维护我提交给执行程序的所有任务的列表,在关闭的情况下,我遍历所有条目并使用remove()方法从ThreadPoolExecutor中删除它们……但是…来吧,这是一个浪费记忆力和维护这份清单的麻烦。 (例如删除已执行的任务) 我感谢任何提示或解决方案!

Java物理机怎么样?

Java是移动设备最重要的语言,因为它允许通过在字节代码和机器之间插入JVM的虚拟层来在每台机器上执行相同的二进制/字节代码。 我们可以构建Java物理机器,它将采用字节代码而不是X86 / arm的传统操作码和操作数吗? 所以可以使用Java构建实际操作系统,它比在我们当前的操作系统上安装JVM高效/快速 我的猜测是它会限制安装新版本的JVM,但许多移动设备确实支持有限版本的JVM,这可能不是问题吗? 为什么有人没有尝试将相同的概念实现到硬件?

Spring安全性OAuth2接受JSON

我从Spring OAuth2开始。 我想以app / json格式将用户名和密码发送到POST主体中的/ oauth / token端点。 curl -X POST -H “Authorization: Basic YWNtZTphY21lc2VjcmV0” -H “Content-Type: application/json” -d ‘{ “username”: “user”, “password”: “password”, “grant_type”: “password” }’ “http://localhost:9999/api/oauth/token” 那可能吗? 你能给我一个建议吗?

Spring Boot 1.2.5.RELEASE – 通过Gmail SMTP发送电子邮件

首先,我需要说发送1.2.0.RELEASE的电子邮件工作正常 application.properties: spring.mail.host = smtp.gmail.com spring.mail.username = *****@gmail.com spring.mail.password = **** spring.mail.properties.mail.smtp.auth = true spring.mail.properties.mail.smtp.socketFactory.port = 465 spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.socketFactory.fallback = false pox.xml org.springframework.boot spring-boot-starter-parent 1.2.0.RELEASE ……. org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-mail 将父版本更改为1.2.5.RELEASE电子邮件发送无效 文档说: 如果spring.mail.host和相关库(由spring-boot-starter-mail定义)可用,则创建默认JavaMailSender(如果不存在)。 所以我补充说 javax.mail mail 1.4.7 它没有帮助,然后我已经取而代之 com.sun.mail javax.mail 1.5.4 我也试过了 spring.mail.host = smtp.gmail.com spring.mail.username = *****@gmail.com spring.mail.password = **** spring.mail.port = […]