Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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
Java 为什么这个URL不能从游戏中打开!框架1.2.4?_Java_Playframework_Email Attachments_Playframework 1.x_Apache Commons Email - Fatal编程技术网

Java 为什么这个URL不能从游戏中打开!框架1.2.4?

Java 为什么这个URL不能从游戏中打开!框架1.2.4?,java,playframework,email-attachments,playframework-1.x,apache-commons-email,Java,Playframework,Email Attachments,Playframework 1.x,Apache Commons Email,我的游戏中有一个URL!根据URL中传递的扩展名路由到HTML或XLSX的应用程序,路由行如下:- # Calls GET /calls.{format} Call.index 因此calls.html呈现页面,calls.xlsx下载Excel文件(使用Play Excel模块)。通过浏览器、卷曲请求等都可以正常工作 我现在希望能够创建电子邮件并将Excel附加到其中,但我无法提取附件。以下是我第一次尝试的基本版本:- public s

我的游戏中有一个URL!根据URL中传递的扩展名路由到HTML或XLSX的应用程序,路由行如下:-

# Calls
GET     /calls.{format}                         Call.index
因此calls.html呈现页面,calls.xlsx下载Excel文件(使用Play Excel模块)。通过浏览器、卷曲请求等都可以正常工作

我现在希望能够创建电子邮件并将Excel附加到其中,但我无法提取附件。以下是我第一次尝试的基本版本:-

public static void sendReport(List<Object[]> invoicelines, String emailaddress) throws MalformedURLException, URISyntaxException
    {
        setFrom("Telco Analysis <test@test.com>");
        addRecipient(emailaddress);
        setSubject("Telco Analysis report");
        EmailAttachment emailAttachment = new EmailAttachment();
        URL url = new URL("http://localhost:9001/calls.xlsx");

        emailAttachment.setURL(url);
        emailAttachment.setName(url.getFile());
        emailAttachment.setDescription("Test file");
        addAttachment(emailAttachment);
        send(invoicelines);
    }
public static void sendReport(列表invoicelines、字符串emailaddress)引发畸形的DurException、URISyntaxException
{
setFrom(“电信分析”);
addRecipient(电子邮件地址);
setSubject(“电信分析报告”);
EmailAttachment EmailAttachment=新的EmailAttachment();
URL=新URL(“http://localhost:9001/calls.xlsx");
emailAttachment.setURL(url);
emailAttachment.setName(url.getFile());
emailAttachment.setDescription(“测试文件”);
添加附件(电子邮件附件);
发送(发票行);
}
但它只是不拉URL内容,它只是坐在那里,没有任何错误消息,Chrome的页面微调器启动并连接web服务器(以至于来自另一个浏览器/机器的请求似乎无法得到服务)。如果我发送的电子邮件没有附件,一切都很好,所以这只是拉的文件,似乎是问题

到目前为止,我已经尝试了上述方法,我已经尝试了Play的WS-webservice库,我已经尝试了手工制作的HttpRequests,等等。如果我指定了另一个URL(例如),它就可以正常工作


有人能提供帮助吗?

我假设您正在开发模式下运行

在开发模式下,您可能会有一个单一的请求执行池,但在发送电子邮件的控制器中,您正在发送第二个请求,该请求将被阻止,直到您的前一个请求完成(因为它正在等待第二个请求响应),所以…死锁! 关于为什么外部请求工作正常的原因,是因为您没有造成播放请求池上的死锁

问题的简单答案是增加application.conf中
play.pool
的值。确保它未注释,并选择一个大于1的值

# Execution pool
# ~~~~~
# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode.
# Try to keep a low as possible. 1 thread will serialize all requests (very useful for debugging purpose)
play.pool=3
好的假设;-)我怀疑这是正确的答案,当我回到我的办公桌时,我会核实一下