gpt4 book ai didi

java - 对自定义 Java 类使用 createObject 后页面停止处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:37 25 4
gpt4 key购买 nike

我正在尝试将一些 Java 类合并到 ColdFusion 应用程序中。我正在使用 ColdFusion 10 中的新功能,我可以在我的 Application.cfc 中指定 ColdFusion 应该在何处查找 .class 文件。当我尝试使用 createObject 创建这些对象之一时该页面似乎停止处理。我想强调的是页面上没有错误,就好像 <cfabort>而是包含在内。

我的应用程序.cfc

<cfcomponent accessors="true" output="false" persistent="false">
<cfscript>
THIS.javaSettings = {LoadPaths = ["C:\ColdFusion11\cfusion\wwwroot\JavaTest\Hybrid\java\bin"], loadColdFusionClassPath = true, watchInterval = 10, reloadOnChanges = true};
</cfscript>
</cfcomponent>

我的 Java 文件

public class TestRT {
public static String sayHello(){
return "hello";
}
public static String echo(String e){
return "hello";
}
}

我的 friend 圈

<html>
<head><title>Hello World</title></head>
<body>
<h2>Echo example</h2>

<cfset hello = createObject("java","TestRT").init()>
<cfoutput>Hi #hello.echo("marc")#</cfoutput>

<h2>End - I NEVER SHOW</h2>
</body>
</html>

我的项目结构:

My Project structure

输出:

Code output

我的日志文件:

虽然我在页面上没有发现任何错误,但多亏了 Leigh,我的日志文件中有几个错误:

在异常日志中:

"Error","http-bio-8500-exec-2","02/09/15","06:18:35",,"TestRT : Unsupported major.minor version 52.0 The specific sequence of files included or processed is: C:\ColdFusion11\cfusion\wwwroot\JavaTest\Hybrid\index.cfm, line: 8 "
java.lang.UnsupportedClassVersionError: TestRT : Unsupported major.minor version 52.0

在 coldfusion-error.log 中:

Feb 09, 2015 6:18:36 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [CfmServlet] in context with path [/] threw exception [Servlet execution threw an exception] with root cause
java.lang.UnsupportedClassVersionError: TestRT : Unsupported major.minor version 52.0

如果我更改为编造的类(class),我会收到预期的错误,因此它确实找到了我的类(class),只是不喜欢它。出了什么问题以及如何在 ColdFusion 中使用我的 java 类?

最佳答案

正如 exception.log 中的消息所建议的那样 [感谢 Leigh建议去那里],它可以在你的 ColdFusion 安装目录下的 cfusion\logs 下找到,问题确实是我在 Java 8 下编译我的 Java 源代码但是我的 ColdFusion 版本中捆绑的 JRE 只支持 Java 7 . 通过将我的“Compile Compliance level”更改为 1.7(又名 Java 7),我能够让上面的示例完美运行。

更改在eclipse中编译的Java版本:

File>Properties>Java Compiler Change "Compile Compliance level"remembering than 1.N 通常被称为 Java 版本 N

enter image description here

关于java - 对自定义 Java 类使用 createObject 后页面停止处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com