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

时间:2015-05-18 14:34:14

标签: tomcat timeout wolfram-mathematica

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

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

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

是否有人知道如何解决此问题或其他方式来增加超时限制?

谢谢!

示例代码:

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 - >无,轮廓 - >范围[.2,1,.2],ContourLabels - > All,ContourShading - >无,FrameLabel - > {" SP。 PRESSURE" HoldForm [下标[" [CapitalDelta] p"," +"]]," REYNOLDS NUMBER RE"},FrameTicksStyle - >指令[黑色,16],LabelStyle - >指令[黑色,22,斜体],

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

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

更多代码:

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,...等)。根据可以通过复选框和下拉菜单选择的其他首选项,在绘图之前执行不同的计算 - 所以这只是其中一种情况。

1 个答案:

答案 0 :(得分:0)

我会用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>