标签: lucee

如何从<CFScript>内部记录信息

我正在学习使用<cfscript>.

有什么办法可以记录< cfscript>?里面的一些消息或值吗?

<cfscript>我可以使用的外部<cflog>,有没有任何方式或标记类似的东西,我可以用来打印日志文件里面的消息>

谢谢

coldfusion cfml lucee

15
推荐指数
2
解决办法
7599
查看次数

素数性能差异ACF vs. Lucee

以下用于查找素数的代码在Adobe ColdFusion(10)和Lucee(4.5)之间的性能差异很大.在同一台机器上测试(6C i7 3930k @ 4 GHz,Windows 10 64 Bit,两个CFML引擎上的JVM内存设置相同:JDK7 -Xms512m -Xmx2048m -XX:MaxPermSize=512m):

<cfscript>
    ticks = getTickCount();
    stopIndex   = 10000;
    primes      = [];
    divisions   = 0;
    primes.add(2);
    primes.add(3);
    n = 5;
    for (n; n < stopIndex; n += 2) {
        isPrime = true;
        d = 3;
        for (d; d < n; d++) {
            divisions++;
            if (n % d == 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            primes.add(n);
        }
    }
    ticks = (getTickCount() - ticks);
</cfscript> …
Run Code Online (Sandbox Code Playgroud)

coldfusion performance lucee

13
推荐指数
1
解决办法
564
查看次数

如何在Railo服务器中查看未送达的邮件?

如何在铁路服务器中查看未交付的邮件?它在服务器管理员中是否有任何未传递的邮件文件夹?

  1. 正确提供smtp服务器名称和密码.
  2. 我的网络连接也很好.

但我无法在ralio服务器端(管理员)看到未送达的邮件.

email railo lucee

11
推荐指数
1
解决办法
2080
查看次数

组件上具有accessors = true的意外行为

我试图在Lucee上的组件上使用合成访问器(虽然这个问题在ColdFusion上似乎也是一样的).

Repro代码:

// Person.cfc
component accessors=true {

    property firstName;
    property lastName;

    function init(firstName, lastName){
        variables.firstName = arguments.firstName;
        variables.lastName = arguments.lastName;
    }

}
Run Code Online (Sandbox Code Playgroud)

和调用代码:

// person.cfm
person = new Person("Abigail", "Bowen");
writeDump(person);
Run Code Online (Sandbox Code Playgroud)

注意我在这里没有使用合成访问器,我纯粹是将参数值设置为同名变量范围的变量.

但是,当我运行此代码时,我看到:

转储输出显示属性

请注意如何填充属性.这没有问题,但我显然不明白accessors旗帜应该如何运作.我认为它只是为了为我(它有)合成一些存取方法,但这就是全部.

另请注意,如果我将CFC定义修改为将访问器设置为true,则转储显示如下:

转储没有属性

因此没有合成访问器(如预期的那样),但现在甚至没有显示属性(使用变量范围值或不具有变量范围值).

我真的不明白"属性"和访问者设置的这种混淆吗?当然,访问者设置应该只影响是否创建了这些访问器方法?

如果我只是在其中一个平台上看到这个,我可能会把它归结为如何writeDump()解释属性定义的变幻莫测.但是ColdFusion 11的行为是一样的,所以看起来我的行为似乎有些不同.

有谁能解释一下?有没有解释它的文档?如果不是......嗯...为什么不呢?

我的基本担忧是,属性值没有"正确"存储,并且一旦我实现了更多的代码,可能会给我带来问题.

更新:至少在ColdFusion上,它似乎只是一个writeDump()行为的改变,因为如果有属性的getter(无论是否accessors设置了标志),那么属性值开始显示在转储中.但是Lucee的情况并非如此,所以那里仍然存在问号.

为了充分披露,这个问题是我在博客上提出的一个问题的摘要(" CFML:试图理解访问者 ").复制是故意的,因为我的博客与本网站的受众不同.

coldfusion cfml lucee

11
推荐指数
1
解决办法
951
查看次数

哪些Web框架可用于CFML?

哪些基于CFML的活动框架可用于ColdFusion/Lucee?

请注意:这是一个社区维基问答,因为这是一个非常多的问题.

coldfusion cfml lucee

10
推荐指数
1
解决办法
788
查看次数

重置Lucee服务器管理员密码

我最近安装了Lucee,不记得我为服务器管理员设置的密码(luceee/admin/server.cfm).

如何重置服务器管理员密码?

lucee

8
推荐指数
1
解决办法
3341
查看次数

当使用JQuery的load()方法时,Lucee会随机生成新的会话

我有一个您登录的网页,然后创建一个会话变量,该变量在所有后续页面访问中检查,如果它不存在或与记录的会话ID不匹配,则会被踢出页面.


代码在这里: Application.cfm会话设置:

<CFAPPLICATION NAME="myAPP" APPLICATIONTIMEOUT="#CREATETIMESPAN(0,0,60,0)#"  sessionTimeout=#CreateTimeSpan(0, 0, 20, 0)# sessionManagement="Yes"> 
Run Code Online (Sandbox Code Playgroud)

检查会话变量集:

<CFLOCK TIMEOUT="30" THROWONTIMEOUT="no" TYPE="Exclusive" Scope="session">
  <CFSET session.started = #ucase(dbGUID)#>
</CFLOCK>
Run Code Online (Sandbox Code Playgroud)

现在,该页面还通过JQuery的load()方法每隔几秒将数据加载到不同的DIV中,来自不同的后端页面.对于一些完全没有问题的人来说这一切都很好,但是有些人可以在几分钟到几个小时内完成任何工作,然后突然Lucee会生成一个新的会话,导致数据加载回主页面强制主页刷新,以便您可以重新登录.然而,发生的情况是页面刷新并且原始会话仍然实际存在,因此然后再次使用,然后该人员能够再次看到页面数据.对于某些人而言,这可能会发生很多次,而对于其他人则不会.

我确信这不是个人的,因为在同一个人的不同PC上尝试它对一些人来说是好的,而对其他人则没有.直接在Web服务器上尝试(带有指向本地的域的hosts文件),它没有问题.它似乎不是负载均衡器,因为它在负载均衡器上下都会发生.为了清楚起见,它不是导致新会话的1个特定页面,它可能是任何正在使用的页面,它也不是由于第一次尝试访问页面而导致的,因为它可能在访问之前被访问了几十次正在生成新会话.它也不是超时,因为会话超时设置为20分钟,但它可能在原始会话设置的一分钟内发生.

问题是为什么Lucee突然决定创建一个新会话(旧的会话仍然存在),我怎么能阻止它和/或让它再次使用原始会话返回.

coldfusion jquery tomcat cfml lucee

8
推荐指数
1
解决办法
275
查看次数

安装Lucee的文件?

我希望使用ColdFusion的替代方案.在研究Railo时,我找到了指向Lucee的指针.似乎没有任何文档解释如何为Lucee设置Linux/Apache/Tomcat/MySQL平台,然后在其上安装Lucee.我已经尝试为Railo设置这样一个平台,但是试图让Railo通过http和https与Apache交谈.

我希望避免使用包含Tomcat的"all in one"安装程序,因为我想使用yum来使Tomcat保持最新的安全补丁.

如果我只是忽略了Lucee文档,有人可以指点我吗?如果它们不存在,怎么能"翻译"Railo文档与Lucee合作,并使Apache-Lucee连接工作?

更新2016-04-06:感谢所有回答的人.看起来你已经帮助了很多人!我从未能让Lucee跑步,但这是因为时间不够,而不是缺乏指示.权力也决定转向外包网站设计和托管解决方案,赢得竞标的公司使用Drupal.

lucee

7
推荐指数
1
解决办法
5275
查看次数

如何在coldFusion应用程序中找到自定义标记实例

我正在将一个非常古老的应用程序(目前在CF8中运行)迁移到Lucee.但是我遇到了一个似乎是某种自定义标签的问题.

我已经尝试确保旧安装和新安装的IIS中的所有虚拟目录都相同.并确保CFIDE和Lucee Admin中的映射和自定义标记路径相同.

但是我收到了这个错误.并且无法弄清楚这cflink是如何被实例化的.

在此输入图像描述

在此输入图像描述

我在utils.cfc文件的第300行找到了错误代码的位置 在此输入图像描述

我很长时间没有使用自定义标签,但认为它们通常用下划线调用,代码应该更像是<cf_link pageid="#LinkPageID#" Init="start">如果它被称为自定义标签.

如果我去运行此应用程序的当前CF服务器,我可以发现已创建cfclass文件 在此输入图像描述 在名为"tags"的目录中名为cflink.cfm的文件中,即使"tags"目录似乎没有映射,也不在管理员的"自定义标记路径"下列出.

这个应用程序是从2003年开始的,你可以想象已经发展成为意大利面条代码的不匹配,从一开始就没有人问这个标签是如何实例化的.

有遗留代码经验的人是否有任何其他想法,我应该尝试让它工作?目前只有一个生产环境,如果我能让它在Lucee上工作,它不仅是一个在10年内不存在的开发环境,而且对我来说能够继续展示Lucee是一个很好的方式一个伟大的CFML引擎

添加附加信息

Leigh曾询问init是否可能是jar引用,但是在cflink.cfm文件中我看到了这段代码:

    <cfif Attributes.Init IS "start">
        <cfset Request.PageID = Attributes.PageID>
        <cfset Request.Page_Width = Variables.qParentInfo.Page_Width>
        <cfset Request.Page_Height = Variables.qParentInfo.Page_Height>
        <cfset Request.Page_TypeID = Variables.qParentInfo.Page_TypeID>
        <cfset Request.AddPath = "">
        <cfif IsDefined("Attributes.Anchor")>
            <cfset Request.Anchor = Attributes.Anchor>
        <cfelse>
            <cfset Request.Anchor = "">
        </cfif>
        <cfset Request.IsInternalLink = false>
        <cfexit method="EXITTAG">
    </cfif>
Run Code Online (Sandbox Code Playgroud)

在tags\cflink.cfm中的代码中也引用了cflink

<cfif Len(Variables.qParentInfo.ParentID) GT 0>
    <!--- Add the page title to the end of the path --->
    <cfset Request.AddPath …
Run Code Online (Sandbox Code Playgroud)

coldfusion railo lucee

7
推荐指数
1
解决办法
365
查看次数

使用Leigh版本的S3Wrapper.cfc无法通过Init

我是S3的新手,需要将它用于图像存储.我找到了半打版本的s2wrapper用于cf,但似乎v4的唯一一套是由Leigh修改的一套

https://gist.github.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29

放在com目录中并创建一个包含以下代码的"测试"页面:

s3 = createObject('component','com.S3Wrapper').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);
Run Code Online (Sandbox Code Playgroud)

但得到以下错误: 在此输入图像描述

所以我改变了第37行

variables.Sv4Util = createObject('component', 'Sv4').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);

variables.Sv4Util = createObject('component', 'Sv4Util').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);

现在我得到:在此输入图像描述

我觉得要通过Leigh代码并开始改变事情是一个坏主意,因为我在这里潜伏了一年,知道Leigh的代码是可靠的.

有没有人知道是否有任何关于如何在任何地方使用它的例子?如果不是我做错了什么.如果它有所作为我使用的是Lucee 5而不是Adobe的CF引擎.

更新:

我按照Leigh的指示,错误现在消失了.我在我的测试页面添加了更多代码,现在看起来像这样:

<cfscript>
    s3 = createObject('component','com.S3v4').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);

    bucket = "imgbkt.domain.com";
    obj = "fake.ping";
    region = "s3-us-west-1"

    test = s3.getObject(bucket,obj,region);
    writeDump(test);
    test2 = s3.getObjectLink(bucket,obj,region);
    writeDump(test2);

    writeDump(s3);
</cfscript>
Run Code Online (Sandbox Code Playgroud)

无论我为桶,obj或地区投入什么,我得到:在此输入图像描述

JIC我确实去了AWS并获得了新的密钥:在此输入图像描述

Leigh如果你还在附近或者有人如何使用s3Wrappers中的任何一个建议或指导?

更新#2: 即使在Alex的帮助下,我也无法让这个工作.我从getObjectLink收到的链接无效,getObject从不下载对象.我以为我会尝试putObject方法

test3 = s3.putObject(bucketName=bucket,regionName=region,keyName="favicon.ico");
writeDump(test3);
Run Code Online (Sandbox Code Playgroud)

为了查看是否有任何其他信息,我收到了:在此输入图像描述

我确实找到了这篇文章https://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html但它很老了,因为S3特别建议在桶名中使用点我不是这样的是相关的.显然我做错了,但我花了好几个小时试图解决这个问题,我似乎无法弄清楚它可能是什么.

coldfusion amazon-s3 lucee

7
推荐指数
1
解决办法
183
查看次数

标签 统计

lucee ×10

coldfusion ×7

cfml ×4

railo ×2

amazon-s3 ×1

email ×1

jquery ×1

performance ×1

tomcat ×1