Tomcat HTTP状态403-对…的评估未在允许的时间限制内完成

Tomcat HTTP状态403-对…的评估未在允许的时间限制内完成,tomcat,timeout,wolfram-mathematica,Tomcat,Timeout,Wolfram Mathematica,我正在用webMathematica开发一个web应用程序,并使用ApacheTomcat7.0.57作为服务器。 我在.jsp文件中开发了一个GUI,其中包含文本字段、下拉菜单和单选按钮,用户可以在其中输入特定信息并为计算选择首选项。Mathematica内核正在Tomcat上运行计算。当我点击按钮发送表单并进行计算时,我在等待30秒后出现以下错误: HTTP状态403-评估…(我编写的代码)。。。未在允许的时间限制内完成 计算相当长,甚至需要一段时间才能使用Mathematica完成。我尝试

我正在用webMathematica开发一个web应用程序,并使用ApacheTomcat7.0.57作为服务器。 我在.jsp文件中开发了一个GUI,其中包含文本字段、下拉菜单和单选按钮,用户可以在其中输入特定信息并为计算选择首选项。Mathematica内核正在Tomcat上运行计算。当我点击按钮发送表单并进行计算时,我在等待30秒后出现以下错误:

HTTP状态403-评估…(我编写的代码)。。。未在允许的时间限制内完成

计算相当长,甚至需要一段时间才能使用Mathematica完成。我尝试将server.xml文件中的connectionTimeout从20000增加到600000,以便有更多的时间进行响应,但似乎不起作用。我不确定在这种情况下更改的设置是否正确

有没有人知道如何解决这个问题或以其他方式增加超时限制

谢谢


示例代码:

MSPShow[

轮廓图[(1-(1/(10^y))*(10^x)^0.7*constL)/(1+(2.Pi(10^y)/10^x*constR)),{x,-10,30},{y,-10,20},网格->无,轮廓->范围[.2,1,2],轮廓标签->全部,轮廓着色->无,框架标签->{“SP.压力”保持形式[下标[“[CapitalDelta]p],“+”],“雷诺数RE”},框架标签样式->指令[黑色,16],标签样式->指令[黑色,22,斜体]]

图形[{Hue[deltaeta],PointSize[Large],Point[{{Log[10,PPLUSbp],Log[10,REbp]}]

]

我试图绘制一个等高线图和一个根据同一图形中变量的值改变颜色的点。它在Mathematica中使用Show[]运行良好


更多代码:

n = 800/60;
nu = 0.86/10^6;
deltap = 5*10^5;
roh = 1000;
Vn = 8/1000;
MR0 = 10^-1;
So0 = 10^6;
QL0 = 10^1;
P0 = 10^7.8;
constL = QL0/(P0)^(0.7);
constR = MR0/(So0)^(-1);
 REbp = n*Vn^(2/3)/nu;
PPLUSbp = deltap/(nu^2*roh*Vn^(-2/3));
etagesmodell = (1 - (1/REbp)*PPLUSbp^0.7*constL)/(1 + 
 2*Pi*REbp/PPLUSbp*constR);
Q = 10/3600;
Ps = 70*10^3;
etagesref = Q/(n*Vn)*(deltap*Vn/(Ps/n));
deltaeta = Abs[(1 - (etagesmodell/etagesref))];
Show[
 ContourPlot[(1 - (1/(10^y))*(10^x)^0.7*constL)/(1 + (2.*Pi*(10^y)/10^x*constR)), {x, -10, 30}, {y, -10, 20}, Mesh -> None,   Contours -> Range[.2, 1, .2], ContourLabels -> All,   ContourShading -> None, FrameLabel -> {"SP. PRESSURE" HoldForm[Subscript["\[CapitalDelta]p", "+"]] , "REYNOLDS NUMBER RE"},   FrameTicksStyle -> Directive[Black, 16],LabelStyle -> Directive[Black, 22, Italic]],
 Graphics[{Hue[deltaeta], PointSize[Large],Point[{{Log[10, PPLUSbp], Log[10, REbp]}}]}]
]

这就是我试图在webMathematica中重现的内容。就像我说的,它在Mathematica中起作用。我正在Windows 8.1上使用Mathematica 9.0。开始处的值(n、nu等)由用户通过网页上的文本字段输入。根据可通过复选框和下拉菜单选择的其他首选项,打印前会执行不同的计算-因此这只是其中一种情况

我会用Epilog。然后,这个jsp页面适合我:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://www.wolfram.com/msp" prefix="msp" %>
${msp:initializePage(pageContext)}
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
</head>
<body>
<div class="section">
<h1>test for http://stackoverflow.com/questions/30306027/tomcat-http-status-403-evaluation-of-did-not-complete-within-the-allowe                             d-tim?noredirect=1#comment48931148_30306027 </h1>
</div>
<form action="<%= request.getRequestURI() %> "method="post">
<msp:evaluate> DateString[] </msp:evaluate>
<h2> graphics </h2>
<msp:evaluate>
n = 800/60;
nu = 0.86/10^6;
deltap = 5*10^5;
roh = 1000;
Vn = 8/1000;
MR0 = 10^-1;
So0 = 10^6;
QL0 = 10^1;
P0 = 10^7.8;
constL = QL0/(P0)^(0.7);
constR = MR0/(So0)^(-1);
 REbp = n*Vn^(2/3)/nu;
PPLUSbp = deltap/(nu^2*roh*Vn^(-2/3));
etagesmodell = (1 - (1/REbp)*PPLUSbp^0.7*constL)/(1 +
 2*Pi*REbp/PPLUSbp*constR);
Q = 10/3600;
Ps = 70*10^3;
etagesref = Q/(n*Vn)*(deltap*Vn/(Ps/n));
deltaeta = Abs[(1 - (etagesmodell/etagesref))];
MSPShow[
ContourPlot[(1 - (1/(10^y))*(10^x)^0.7*
      constL)/(1 + (2.*Pi*(10^y)/10^x*constR)), {x, -10, 30}, {y, -10,
    20}, Mesh -> None, Contours -> Range[.2, 1, .2],
  ContourLabels -> All, ContourShading -> None,
  FrameLabel -> {"SP. PRESSURE" HoldForm[
      Subscript["\[CapitalDelta]p", "+"]], "REYNOLDS NUMBER RE"},
  FrameTicksStyle -> Directive[Black, 16],
  LabelStyle -> Directive[Black, 22, Italic],
  Epilog -> {Hue[deltaeta], PointSize[Large],
    Point[{{Log[10, PPLUSbp], Log[10, REbp]}}]}
]
]
</msp:evaluate>
</form> </body> </html>

${msp:initializePage(pageContext)}
测试
测试http://stackoverflow.com/questions/30306027/tomcat-http-status-403-evaluation-of-did-not-complete-within-the-allowe                             d-tim?noredirect=1#注释48931148_30306027
日期字符串[]
绘图
n=800/60;
nu=0.86/10^6;
deltap=5*10^5;
roh=1000;
Vn=8/1000;
MR0=10^-1;
So0=10^6;
QL0=10^1;
P0=10^7.8;
constL=QL0/(P0)^(0.7);
constR=MR0/(So0)^(-1);
REbp=n*Vn^(2/3)/nu;
PPLUSbp=deltap/(nu^2*roh*Vn^(-2/3));
etagesmodell=(1-(1/REbp)*PPLUSbp^0.7*constL)/(1+
2*Pi*REbp/PPLUSbp*constR);
Q=10/3600;
Ps=70*10^3;
etagesref=Q/(n*Vn)*(deltap*Vn/(Ps/n));
deltaeta=Abs[(1-(etagesmodel/etagesref))];
MSPShow[
等值线图[(1-(1/(10^y))*(10^x)^0.7*
常数)/(1+(2.*Pi*(10^y)/10^x*constR)),{x,-10,30},{y,-10,
20} ,网格->无,轮廓->范围[.2,1,2],
轮廓标签->全部,轮廓着色->无,
框架标签->{“SP.压力”保持架形式[
下标[“\[CapitalDelta]p”,“+”],“雷诺数RE”},
FrameTicksStyle->指令[Black,16],
标签样式->指令[黑色,22,斜体],
Epilog->{Hue[deltaeta],PointSize[Large],
点[{{Log[10,PPLUSbp],Log[10,REbp]}}
]
]

为什么不加快计算速度?否则您必须编辑WEB-INF/MSPConfiguration.xml文件,另请参见:我通过更改函数来加速它。现在计算速度真快。但是,我现在在应该加载图形的地方遇到了以下错误:2个空MSPShow[-Graphics-,-Graphics-]请发布一个最小的代码示例,然后我们可以看一看。@RolfMertig我在我的原始帖子中发布了一些示例代码,太长了,无法添加注释。请添加定义,以便我可以运行您的代码。您使用的是哪种Mathematica版本?哪个操作系统?这个jsp也适用于我,谢谢。然而,当我将图形部分实现到我的jsp中并加载它时,我得到了一条消息:reType=image/gif'alt='created by webMathematica'/>我猜这是我的jsp中的一个错误。你知道我可以用什么好的webMathematica例子作为指导吗?有文本字段、单选按钮、下拉菜单、绘图功能以及如何从文本字段传递变量。以及如何正确编写带有传递变量的if语句。Wolfram站点上的示例对我帮助不大。请查看文档并尝试示例。webMathematica编程需要一些时间来学习。