7

Railo 4.0.2.002 Express 内でレガシー CF Fusebox 5.5 アプリを実行しており、Java 1.7 を搭載した Mac OS X 10.8 で Jetty 8 を使用しています。jetty urlrewrite http://tuckey.org/urlrewrite/も使用しています (関連する場合)

FORMフォームの送信時にスコープが常に空白になるのはなぜですか? しかし、URLスコープを使用すると、正常に動作します。

このアプリは、CF の他のすべてのバージョンで正常に動作しており、ここでも正常に動作するはずです。

更新 1:
また、スコープをダンプすると、onRequestStartスコープも空になります。Application.cfcFORM

誰でもこれで問題がありますか?必ずしも「ヒューズボックス」ではないと思うので、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:
チャールズ (プロキシ) が、サーバーに適切に送信された電子メール/パスワードおよびその他のフォーム要素を含む「POST」リクエストを適切に検出していることにも注意してください。
Jetty サーバーは単にそれらを認識していないか、Railo エンジンなどに適切に転送していませんか?

更新 4:
これは、web.xml. 私は実際にこれをRailo Expressのディレクトリに配置しましたが、これwebdefault.xmletc/単なるJettyファイルである可能性があります。

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
4

1 に答える 1

0

Tuckey には多くの問題があり、Tuckey がサポートしていない機能に Apache と modrewrite を使用することになりました。Railo + Tomcat/Jetty は Jrun を使用した ColdFusion ではなく、mod_rewrite にすべてのリクエスト情報が含まれていること、さらにはリクエストがまったく含まれていないことを確認するための構成が困難でした。Adobe でさえ、CF9-+JRUN コネクタの元の機能が欠落していたため、リリース後に CF10 にパッチを適用する必要がありました。

ただし、ソリューションを実現するには、手を差し伸べる必要があります。ここのスレッドを参照してください。

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 のバグであるかどうかは明らかではありません。

于 2012-12-19T17:48:07.150 に答える