我正在使用java 1.7在Mac OS X 10.8上使用Jetty 8在Railo 4.0.2.002 Express中运行传统的CF Fusebox 5.5应用程序。 我也在使用jetty urlrewrite http://tuckey.org/urlrewrite/(如果那是相关的)
为什么FORM
范围在提交表单时始终为空?但是,如果我使用URL
范围,它可以正常工作。
该应用程序在所有其他版本的CF中都运行良好,并且在这里也可以正常工作。
更新1:
此外,当我在onRequestStart
内Application.cfc
并且我转储FORM
范围时,它也是空的。
有人有这个问题吗?我认为它不一定是“fusebox”所以我想知道它是否是一个Railo 4兼容性问题?
更新2:
当表单发布到/admin/index.cfm?event=Main.Login
时
表格范围工作正常。但是当它发布到/admin/event/Main.Login时,表单范围就消失了。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<from>^/admin/event/(.*)</from>
<to last="false">/admin/index.cfm?event=$1</to>
</rule>
<rule>
<from>^/lms/event/(.*)</from>
<to last="false">/lms/index.cfm?event=$1</to>
</rule>
</urlrewrite>
更新3:
还应该注意的是,Charles(代理)正确检测到'POST'请求包含电子邮件/密码和其他正确发送到服务器的表单元素。
Jetty服务器根本没有看到它们或没有正确地将它们转发到Railo引擎或什么东西?
更新4:
以下是他们告诉您放置在web.xml
中的tuckey配置。我实际把它放在Railo Express的webdefault.xml
目录中,我想这可能只是Jetty文件。
etc/
答案 0 :(得分:0)
我与Tuckey有很多问题,并最终使用Apache和modrewrite来实现Tuckey不支持的功能。据说Railo + Tomcat / Jetty与Jrun不是ColdFusion,配置很难确保mod_rewrite拥有所有请求信息,甚至根本没有请求。甚至Adobe也不得不在发布后修补CF10,因为它们缺少CF9- + JRUN连接器的原始功能。
但是,对于您的解决方案,您需要进入和退出。请参阅此处的主题。
https://groups.google.com/forum/#!msg/railo/uw-U9hCFu5k/bEmr_I2Kl8sJ
其他人遇到同样的问题,并通过将其置于onRequestStart中来解决这个问题:
<cfscript>
if(gethTTPRequestData().method eq "POST") {
if(NOT structKeyExists(form,"fieldnames")) {
var paramMap = getPageContext().getRequest().getParameterMap();
var paramMapKeys = structKeyList(paramMap);
form.fieldnames = paramMapKeys;
for(x =1; x lte listLen(paramMapKeys); x++) {
param = listGetAt(paramMapKeys,x);
form[param] = paramMap[param][1];
}
}
}
</cfscript>
目前尚不清楚这是否是Jetty,Railo或Tuckey中的错误。