标签: railo

如何在Railo中将Java结果集转换为ColdFusion查询?

以下在CFMX 7和CF8中工作正常,我也假设CF9:

<!--- 'conn' is a JDBC connection --->
<cfset stat = conn.createStatement() />
<cfset rs = stat.executeQuery(trim(arguments.sql)) />

<!--- convert this Java resultset to a CF query recordset --->
<cfset queryTable = CreateObject("java", "coldfusion.sql.QueryTable")>
<cfset queryTable.init(rs) >
<cfset query = queryTable.FirstTable() />
Run Code Online (Sandbox Code Playgroud)

这将使用JDBC驱动程序创建一个语句,对它执行查询,将其放入java结果集,然后实例化coldfusion.sql.QueryTable,传递Java resulset对象,然后调用queryTable.FirstTable(),返回实际的coldfusion结果集(用于cfloop等).

问题在于Railo的实施有所不同.在Railo中运行此代码会返回以下错误:找不到匹配的coldfusion.sql.QueryTable(org.sqlite.RS)构造函数.

我已经转储了Railo java对象,并且在方法中没有看到init().我错过了一些简单的事吗?我也很想在Railo工作.

请注意:我正在与SQLite数据库建立无DSN连接.我了解如何设置CF数据源.我在这一点上唯一的打嗝是从Java结果集转换为Railo查询.

java coldfusion jdbc railo cfml

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

FORM范围总是空的?网址范围很好吗?

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

更新3:
还应该注意到Charles(代理)正确检测到'POST'请求包含电子邮件/密码和其他正确发送到服务器的表单元素.
Jetty服务器根本没有看到它们或没有正确地将它们转发到Railo引擎或其他东西?

更新4:
这是他们告诉你放入你的tuckey配置web.xml.其实我放在这个在webdefault.xmletc/Railo快速的目录,我想可能只是码头的文件.

<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>
Run Code Online (Sandbox Code Playgroud)

forms jetty railo tuckey-urlrewrite-filter cfml

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

如何在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
查看次数

CFML设计模式资源?

与所有开发一样,通过ColdFusion,RailoOpenBD的 CFML 我们遇到了常见的编程问题.对于这些问题,程序员必须转向模式(或反模式).然而,像GOF和现代头版第一本书这样的经典资源都倾向于关注Java.

虽然java本身很漂亮,但是所有三个cfml引擎本质上都是java应用程序,它们表示在编写cfml时,并不是所有甚至许多设计模式都可以或者应该以java方式使用.

我想知道在使用cfml时你发现哪些资源/模式有用?或者您更改了适应java或smalltalk模式以在cfml中使用的内容?

就个人而言,我发现这两个演示文稿都很有趣:

CFMeetup:设计模式和ColdFusion作者:Sean Corfield

设计模式由Cameron Childress 设计

更新:

偶然发现cfdesignpatterns.com,看起来很有希望.

coldfusion design-patterns openbd railo cfml

6
推荐指数
1
解决办法
736
查看次数

可以在Application变量中存储大对象(例如java组件)吗?

我正在开发一个应用程序,它创建并存储与应用程序范围中的本地XMPP服务器的连接.连接方法存储在cfc中,以确保Application.XMPPConnection在每次使用时都已连接并授权,并利用连接向用户发送实时事件.据我所知,这工作正常.但它没有在任何压力下进行测试.

我的问题是:这个设置会在以后引起问题吗?我只是问,因为我找不到其他人以这种方式使用Application变量的证据.如果我不使用railo,我将使用CF的事件网关来完成相同的任务.

coldfusion railo cfwheels cfml

6
推荐指数
1
解决办法
484
查看次数

Railo中的组件映射

我想将我的所有CFC放入/ components文件夹,并能够从应用程序中的不同位置调用它们,例如.来自/forums/index.cfm.

我该如何设置映射?

coldfusion cfc railo

6
推荐指数
1
解决办法
2792
查看次数

如何在H2中创建新数据库?

我有一个在MySQL本地运行的站点我想在H2数据库上运行它.我刚刚在浏览器上运行控制台的h2.jar文件,但每当我登录时,我已经看到了列表,jdbc:h2:/var/www/mysite/data/db; MODE=MySQL, information_schema and users.我可以在其中创建表但不知道如何创建新数据库?

我在嵌入模式下使用Mode = MySQL type = H2 Database Engine.

h2 railo

6
推荐指数
1
解决办法
2万
查看次数

CF中的点和方括号表示法不应该表现相同吗?

使用此代码:

<cfset foo = {}>
<cfset exists1 = !isDefined("foo.foo")>
<cfset exists2 = isNull(foo.foo)>
<cfset exists3 = isNull(foo['foo'])>
Run Code Online (Sandbox Code Playgroud)

Railo传递ok(全部为True),而CF在最后一行抛出异常.

coldfusion.runtime.UndefinedElementException:元素foo在作为表达式一部分引用的CFML结构中未定义.

我一直认为CFML中的点符号和方括号表示法应该在功能上等同,只有方括号可以定义区分大小写的键.

我在这里报告的一个错误最近被标记为"NotABug".

有人可以解释原因吗?

coldfusion railo coldfusion-10 cfml

6
推荐指数
1
解决办法
158
查看次数

server.railo是否存在于Lucee实例上?

我有这个代码:

<cfdump eval=server>
Run Code Online (Sandbox Code Playgroud)

它输出的顶级键coldfusion,java,lucee,os,separator,servlet.请注意,railo那里没有列出.

但是,如果我这样做:

<cfdump eval=server.railo>
Run Code Online (Sandbox Code Playgroud)

然后它输出运行Railo服务器时可能期望的通常结构(而不​​是Lucee服务器).

那是怎么回事?

railo lucee

6
推荐指数
1
解决办法
173
查看次数

在ColdFusion11中使用java类 - CreateObject函数的java对象类型是未知的

我有一些代码可以在Railo下运行,但我正试图让这个特定的应用程序在CF10和CF11上工作

这是一个cfWheels应用程序,我BCrypt.class/miscellaneous/目录中有一个文件.

在我的/events/onapplicationstart.cfm档案中,我有:

application.bCrypt = CreateObject( "java", "BCrypt", "/miscellaneous/" );
Run Code Online (Sandbox Code Playgroud)

这适用于Railo; 但在CF11中我得到了

The java object type is unknown for the CreateObject function.

Verify the type of your object when creating it and try again. 
Valid Types are : component | java | webservice | dotnet | com | corba | .NET


The error occurred in /Volumes/Documents/blah/public/events/onapplicationstart.cfm: line 8
Called from /Volumes/Documents/blah/public/wheels/global/cfml.cfm: line 111
Called from /Volumes/Documents/blah/public/wheels/events/onapplicationstart.cfm: line 388
6 : 
7 :     // BCrypt …
Run Code Online (Sandbox Code Playgroud)

coldfusion railo cfwheels coldfusion-10

6
推荐指数
1
解决办法
516
查看次数