我有一个运行在Weblogic 12c和Apache 2.2上的Java Spring Web应用程序,前面有一个weblogic模块。在我们的应用程序的两个不同的页面上,我们有一个表单,根据我们的要求有54个输入字段。在我们的服务器环境中,每次提交此表单时,Apache服务器都会重定向到错误页面302和304.当我将其减少到50时,它可以工作,我们从Apache获得200。我已经尝试删除不同的输入字段,只要它是50或以下它工作正常。
我尝试直接点击Weblogic,这看起来确实有效,这让我相信它在Apache或Apache Weblogic模块中。
我想也许是Apache中的这个设置:http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestfields
但这不在我们的任何.conf文件中。我甚至通过以下方式确认了服务器信息:
<Location /server-info>
SetHandler server-info
Order Allow,Deny
Allow from 10.80
Allow from 127.0.0.1
Deny from 10.80.192.24
</Location>
它不在/ server-info /下列出的设置中,但即使我将其添加为LimitRequestFields 100
,它似乎也不会对100或0产生任何影响。它确实出现在服务器信息页面之后,但我觉得它不是我想要的设置。
有没有人知道Apache的设置会发挥作用?
更新:它似乎实际上可能基于提交的字段的长度。当我删除两个名字较长的字段时,它似乎成功了。
更新2:似乎正是2048内容长度导致其失败。表单是否以某种方式从POST转换为GET?
答案 0 :(得分:0)
事实证明,Apache的Weblogic模块有一个功能,允许它缓存大于2048字节的任何POST。事实证明,如果您指定和的WLTempDir该目录不存在,则会出现这种情况。
进一步阅读:http://docs.oracle.com/middleware/1212/webtier/PLGWL/plugin_params.htm#sthref71