问题标签 [lucee]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
313 浏览

apache - 通过 API/Rest 请求在 Lucee(部署在 Tomcat)上上传 >50mb 文件失败且没有错误

我目前正在Lucee中进行文件上传(部署在Tomcat上)。

我正在向API发送一个 html 表单,以保持文件临时。然后通过http post请求(带有有效负载+文件的表单字段)将其发送到我们的后端,以使用适当的方法调用cfc

该请求转到onRequestStart然后onCFCRequest使用我们的参数调用我们的 CFC。一个响应返回到我们的 API。

问题是文件<50 mb 它可以完美运行,但是对于更大的文件,我们收到的响应是调用组件的转储(不通过 onCFCRequest),我们的文件在我们的临时文件夹中,表单结构不是空的,但是我们的HTTPRequest 内容为空

已经尝试向 Tomcat 和 Lucee 添加参数,例如

maxHttpHeaderSizemaxPostSize在 server.xml中

<max-file-size><max-request-size>

我没有收到 Tomcat 和 Lucee 关于大小限制的任何错误。

你知道发生了什么吗?

编辑:

我发现了这个问题: http ://www.rupeshk.org/blog/index.php/2007/08/coldfusion-8-changes-with-file-upload/

你知道我怎样才能将内容保留在我的 http 请求中吗?因为它是空的(没有负载,没有文件)所以它不会触发 onCFCRequest 处理程序。谢谢

0 投票
1 回答
882 浏览

amazon-web-services - 从 Lucee/Railo/Coldfusion 内置函数访问 S3

我无法访问 S3 存储桶以仅使用 Lucee 列出文件。我已经按照这里这里的指示没有运气。我不断收到目录不存在的错误消息。

这是在我的 Application.cfc 中:

这是我正在测试的代码:

我还尝试使用格式s3://accessKeyID:awsSecretKey@coldlucee/blah作为资源将其映射到 Web 界面内,但它始终显示为红色,这意味着找不到它。

我希望有人能帮我解决这个问题,在我读过的文章中看起来很简单,所以我可能在亚马逊方面有配置错误。不过,我试图将存储桶公开,但无济于事。

0 投票
0 回答
277 浏览

jquery - 通过 ColdFusion(Lucee)使用大型 JSON 数据集填充 SELECT 非常慢

如果我提供的信息超出此问题所需的信息,请原谅我。:D

我正在构建一个从远程机器中提取大型 JSON 数据集的应用程序。但是,我在一个安全的环境中工作,该环境将应用程序服务器与防火墙等分开。因此,我不得不做一些捏造(使用 SSH)来获取我需要的数据。我已请求打开其他端口,以便我可以绕过使用 SSH,但被拒绝了。

这是通过 SSH 获取数据的物理路径: My Application Server -> Secure Server with Curl -> Multiple unique application servers with JSON data

遵守安全规则;我在我的应用服务器上编写了下面的 CFML 代码。(服务器运行 Linux、Lucee 4.5、MySQL 和 Apache)

上面的代码只是简单地通过 SSH 连接到安全服务器并运行一个名为 server_list.sh 的脚本。脚本的重要部分如下:

该 curl 脚本返回一个 JSON 字符串,看起来与此类似(但包含更多数据):

此时发送的 JSON 数据量约为 3MB。然而,随着时间的推移,这些数据将呈指数增长。

一旦我将 JSON 返回到我的应用程序服务器;我使用 CF 的 deserializeJSON 函数然后抓取我需要的字段。在这种情况下,它的 FQDN 字段。由于来自 JSON 的数据是一个完整的域,因此我只需要选择主机名。“new_label”代码会处理这个问题。可能有比我正在使用的更好的 REGEX 或更好的方法,但这有效。

上面的代码使用来自 JSON 的服务器的主机名填充该字段。OPTION 字段看起来像这样:

一些可能(或可能不会)有帮助的注意事项。我正在使用 jQuery 和 multi-select.js 将 SELECT 转换为并排字段。多选来自这里: http: //loudev.com/

其次,路径中的所有服务器都相当强大,并且都连接了超过 10GB 的容量。所以除了防火墙之间,不应该有任何瓶颈。

无论我使用哪种浏览器,上面的代码都可以工作,但是在填充主机名字段时会相当慢。因为我每分钟都在提取更新的 JSON 数据,所以我无法将它长期存储在我的应用程序服务器上的数据库中。

知道了这一切,我的问题是:如何加快表单字段的速度,以便用户不必等待页面加载 2500 多个服务器名称?

我可以利用 jQuery 或 MySQL 数据库来加快处理速度而不会遇到过时的数据吗?这可能只是我从 FQDN 获取主机名的方法吗?我应该放弃这种方法并尝试其他方法吗?我是否在 Stack 上忽略了一些有我答案的东西?(我在这里花了很多时间搜索 Q/A,但一无所获。也许我还不够努力。)

各位好心人还需要什么其他信息吗?谢谢!:D

更新 -

@亚历克斯。我现在就做这个测试。代码如下。不过建议很好!

至于缓存数据,这是我的问题的一部分。如何缓存?使用什么方法?如何在不显示陈旧数据的情况下缓存 JSON?这是 AJAX 有用的实例吗?

更新 2——

我会以错误的方式解决这个问题吗?我知道有时您需要向用户显示大量数据。简单地添加一个 BlockUI 和一个进度条说明请稍候是一个好的解决方案吗?我更愿意诚实地找出更好的解决方案,但我肯定愿意接受建议!想法?

0 投票
1 回答
423 浏览

coldfusion - Lucee/Coldfusion 中的全局函数

我正在尝试在 Lucee 中创建全局函数。我已经按照这里的指示并让它“有点”工作。在 Application.cfc 中,我放置了以下代码:

这在某些情况下似乎可以正常工作,但如果我们需要在包含未重新定义函数的 Application.cfc 的子目录中访问此函数,则会错误提示该函数不存在。

我试图实现的最终目标是拥有一个cfc包含多个用户定义函数的文件,然后让它们在整个应用程序中都可以访问,而无需一遍又一遍地重新定义。

有没有更好的方法来完成我们想要的?我问这个是因为在我之前在评论部分引用的页面上有一句话:

我同意。将来在其他地方看到它不会让我感到惊讶。

我喜欢Railo方法的地方在于它是完全沙盒化的。主机 A 的标签和函数库永远不会与主机 B 的库交叉/冲突,除非它们被放入全局服务器文件夹。虚拟文件系统和其他几乎所有东西(数据源等)也是如此。

它特别提到 Railo 有一种创建 UDF 的方法,但我在任何地方都找不到任何文档。由于我们使用的是 Railo 的一个分支 Lucee,我认为它必须具有 Railo 用于创建 UDF 的功能。希望读到这篇文章的人可以帮助我并为我指明正确的方向。

0 投票
1 回答
1038 浏览

arrays - 使用 ColdFusion 附加到 JSON 数组,考虑 Null 值?

我已经在 Stack 上挖掘了一段时间,但我不相信我的大脑得到了如何做到这一点的提示。

我需要这个 JSON:

看起来像这样的 JSON:

有一些警告。

  1. 我从中提取的 JSON 应用程序需要返回这些字段,无论是否为空:loginHosts、sudoHosts、CPG、mail、loginShell。如果他们没有被退回,应用程序会抱怨。

  2. JSON 应用程序期望 loginHosts、sudoHosts 和 CPG 作为数组 [] 返回,即使为 null。即:'{"loginHosts":[],"sudoHosts":[]}'

  3. 原始 loginHosts 和 sudoHosts 数据(例如:server1.example.com、server2.example.com)必须保留在发送回应用程序的 JSON 字符串中。所以我所有的新数据都必须附加。

  4. 很多时候 loginHosts 和 sudoHosts 作为 Null 数组发送到我的应用程序。即:'{"loginHosts":[],"sudoHosts":[]}'

我正在使用 Linux 操作系统运行 Lucee 4.5 的服务器上开发它。获取/设置 JSON 字符串;我使用 CFEXECUTE ssh 到远程 Linux 服务器来拉/推我的 JSON 字符串。您可以在这里看到原因:Populating SELECT with large JSON data set via ColdFusion (Lucee) very slow

我到目前为止的代码:

然后使用我前面提到的 CFEXECUTE 方法对 myStruct 进行序列化并发送回远程服务器。

该代码有点作用,但有两件事不起作用。首先,每个 cfset loginHosts 和 cfset sudoHosts 只返回 JSON 中的第二个服务器 (server2.example.com)。我知道我在那个 CFLOOP 中覆盖了我自己的 loginHosts,但我不确定如何更正它并检查 loginHosts 数组是否为 Null。

我也有保留双引号的问题,以便它们保留在 JSON 中。在我的测试中,我得到了这个:

注意到 newserver1 和 newserver2 之间缺少“,”了吗?

我尝试将转义引号添加到我的 listAppend() 中,如下所示:“”“#my_servers”“”。在我在 JSON 字符串中返回 Null 值之前,它似乎工作正常。

任何朝着正确方向的轻推将不胜感激!

编辑 - -

一些澄清:

原因:我只是想将其他服务器名称添加到数据库中。要使用该数据库,我需要使用发送 JSON 并期望返回 JSON 的 API。这必须通过使用 curl 的 BASH shell 脚本来完成。正如我在上面发布的,这就是原因:Populating SELECT with large JSON data set via ColdFusion (Lucee) very slow

我在我的应用程序中经常使用 serializeJSON() 和 deserializeJSON()。我的代码顶部的“user_list”只是为了向您展示我可以使用哪些数据。它不是手写的。

编辑2——

我很抱歉没有将此行添加到我上面的代码中。

底部的“myStruct”由“arrayOfStructs”中的数据填充,然后序列化。

然后,“myJsonvar”作为字符串通过 SSH 使用 CFEXECUTE 发送到 BASH 脚本,然后使用 curl 提交数据。是的,令人费解,但由于安全原因,这是我所拥有的。

0 投票
1 回答
1069 浏览

arrays - 追加到 JSON 数组 ColdFusion 中的 JSON 数组

这是一个后续问题:使用 ColdFusion 附加到 JSON 数组,考虑 Null 值?

这个问题昨天得到了回答,而且效果很好(谢谢 Kevin B. 和 Leigh!)。然而,今天早上我从中提取 JSON 数据的应用程序给了我一个曲线球。 有时,根据我请求的数据,它会将整个 JSON 作为数组返回,如下所示:

我不知道为什么该应用程序会这样做。如果我知道这是一种可能性,我会将该信息添加到我之前的问题中,我很抱歉。

我试图找到解决方案的尝试首先把我带到了这里:Using JSON Data with Coldfusion。将 JSON 数组作为集合循环似乎可行,但前提是所有数组值都不是 Null。我认为如果我将它用于所有 JSON 字段,则使用此代码(如上一个问题)会起作用:

此情况并非如此。我不断得到:

错误:无法将复杂对象类型数组转换为字符串

查看调试输出,Lucee 确实抛出了这个:string Use Built-In-Function "serialize(Array):String" to create a String from Array. 我做了更多的挖掘,发现了这篇文章:Railo 提示:使用 serialize(data) 存储复杂数据。可悲的是,空值再次出现。另外,我的理解serialize()与 类似evaluate(),不推荐。

我将继续寻找解决方案,但一如既往地非常感谢任何帮助!

- 编辑 -

我遇到了这个线程:ColdFusion JSON object vs array of objects。我注意到问题中的 JSON 是一个 ARRAY [],我将答案应用于我的代码,但仍然遇到 Null 问题。我想我不知道如何检查嵌套的 Null 值。:(

0 投票
2 回答
150 浏览

list - ListRemoveDuplicates 结果末尾有逗号

在 Lucee 中使用listRemoveDuplicates时,它会删除重复的值,但仍将分隔符留在值的末尾。

前任:

这将产生输出:

但是,当使用 Adob​​e ColdFusion 检查相同的函数时,它会产生正确的值(末尾没有逗号):

如何在 Lucee 中省略逗号分隔符?

0 投票
2 回答
1618 浏览

excel - 格式化 lucee 电子表格时出错:超出了最大单元格样式数

我正在使用lucee-spreadsheet,这是一个很棒的工具。我正在制作一个非常大的电子表格(工作簿中有多个工作表,每张工作表有数千行)。一切都按预期工作。我已经用数据填充了工作表,并在客户想要的组之间创建了空白行。我现在要回去尝试应用一些格式,但我遇到了错误:

已超出单元格样式的最大数量。您可以在 .xls 工作簿中定义多达 4000 种样式

问题是我只尝试应用一种样式:

spreadsheet.formatColumns(workbook=workbook, format={dataformat="$##,####0.00"},range='5-20');

我需要应用许多其他样式。我猜测,由于有超过 500 行并且这种样式被应用于 16 列,因此该样式实际上是在格式化每个单元格而不是列。

我可以或应该以不同的方式应用这种风格吗?

0 投票
1 回答
479 浏览

java - OSX El Cap、Apache2、Tomcat 8、Lucee 5

我已在 Lucee 谷歌小组中发帖,但四天后,我只是没有得到我需要的支持。我有一种 Tomcat 专家能够很快为我指出正确方向的感觉,所以我在这里发帖。

OSX El Cap、Apache2、Tomcat 8、Lucee 5。

http://localhost,我得到了 Apache “它有效!” 页。

on http://localhost:8080,我得到默认的 Lucee 页面,从

http://localhost:8080/manager/html和上http://localhost:8080/host-manager/html,我得到了 Tomcat 管理页面。

我有一个目录,/Volumes/Storage/{companyname}/sites/www-test-app/www其中包含 index.cfm 和 index.htm

我已经www-test-app在我的 HOSTS 文件中进行了设置。

我有一个主机httpd-vhosts.conf条目www-test-app

我在 tomcat 的 server.xml 文件中有一个条目:

当我打电话时http://www-test-app/index.htm,我得到了我的静态测试页面。

当我打电话时,http://www-test-app/index.cfm我得到这个错误:

我已停止并重新启动 apache 和 tomcat 以确保读取配置文件。

最大的线索:我没有看到 WEB-INF 正在创建 /Volumes/Storage/{companyname}/sites/www-test-app/www

我的目录权限是 777 这个目录和所有子目录:

不过,我不确定是否需要更改所有权。

Apache2 包含在 El Cap 中。Apachetestconfig产生“语法 OK”。

Tomcat 是通过 Homebrew 安装的。

Lucee 是通过此页面的 WAR 文件安装的:http: //brianflove.com/2015/03/05/lucee-on-mac-os-x-yosemite-quick-start/

我从这里被困住了......但是哦,如此接近,因为默认的 Lucee 页面看起来很棒,包括任何 cfoutput/变量。

这是来自 catalina.{date}.log 的示例:

找不到断开连接...我从这里去哪里?

0 投票
1 回答
295 浏览

lucee - 在哪里放置 Lucee cfm 文件

我刚刚安装了 Lucee,并进入了欢迎页面。我无法在任何地方找到将 .cfm 文件放入哪个目录的说明,以便我可以从 Lucee 运行它们。有人能告诉我把它们放在哪里,或者指导我看一些文件吗?

没关系——我设法找到了它。在我的例子中 opt/lucee/tomcat/webapps/ROOT,作为标准安装的结果。那么为什么有人不能在某个地方这么说呢?