如何确认我的JAR文件已加载到Coldfusion中?我在CF10上。
我目前得到这个错误:
Could not find the ColdFusion component or interface org.apache.batik.transcoder.image.PNGTranscoder.
我的网站结构如下:
/root
/root/application.cfc
/root/jar/batik-1.7/
在我的申请中。cfc,我有以下代码:
<cfset This.javaSettings = {loadPaths: ["jar/"],loadColdFusionClassPath: true,reloadOnChange: true,watchInterval: 2}>
这是我调用一切的代码:
<cffunction name="getPng" access="public" output="true">
<cfsavecontent variable="out">
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve">
<path fill="##006838" stroke="##414042" stroke-miterlimit="10" d="M416.413,388.223c0,6.627-5.373,12-12,12H140.317
c-6.627,0-12-5.373-12-12V272.54c0-6.627,5.373-12,12-12h264.096c6.627,0,12,5.373,12,12V388.223z"/>
<text id="HomeScore" transform="matrix(1 0 0 1 358.5391 361.333)" fill="##F1F2F2" font-family="'ArialMT'" font-size="24">3</text>
<text id="Home" transform="matrix(1 0 0 1 155.3018 361.333)" fill="##F1F2F2" font-family="'ArialMT'" font-size="24">TEAM B</text>
<text id="VisitorScore" transform="matrix(1 0 0 1 358.5391 301.8096)" fill="##F1F2F2" font-family="'ArialMT'" font-size="24">2</text>
<text id="Visitor" transform="matrix(1 0 0 1 155.3018 301.8096)" fill="##F1F2F2" font-family="'ArialMT'" font-size="24">TEAM A</text>
</svg>
</cfsavecontent>
<cfreturn out>
</cffunction>
<cffunction name="renderPng" access="public" output="false">
<cfscript>
/*http://cfsearching.blogspot.ca/2008/02/cool-text-effects-with-svg-and-batik.html*/
pngPath = "test.png";
pngFile = expandPath(pngPath);
transcoder = createObject("java", "org.apache.batik.transcoder.image.PNGTranscoder").init();
inputStream = createObject("java", "java.io.StringBufferInputStream").init(getPng());
input = createObject("java", "org.apache.batik.transcoder.TranscoderInput").init(inputStream);
outputStream = createObject("java", "java.io.FileOutputStream").init(ExpandPath(pngFile));
output = createObject("java", "org.apache.batik.transcoder.TranscoderOutput").init(outputStream);
transcoder.transcode(input, output);
outputStream.close();
return pngFile;
</cfscript>
</cffunction>
<cfscript>
// CREATE OBJECT
obj = createObject("component", "#request.cfcPath#.utils");
// CALL THE FUNCTION
png = obj.renderPng();
</cfscript>
更新#1
我在检查administor时发现了设置摘要,其中列出了服务器Java类路径。我添加了jar文件的位置并重新启动了服务器。即使路径存在于Administrator中的类路径中,我仍然会遇到相同的错误。
更新2
添加了缺少的属性“type”,并出现以下错误:
<代码>java。lang.NoClassDefFoundError:org/apache/batik/dom/util/DocumentFactory
第554行:transcoder=createObject(“java”,“org.apache.batik.transcoder.image.PNGTranscoder”)。init()
完整堆栈跟踪
更新3
我application.cfc有这个
<代码>
我调用了onApplication ationStart()
,但仍然收到同样的错误。
此时,我已经删除了ColdFusion类路径中的条目,现在它又回到了默认值空。
我希望它可以在我使用共享主机时使用javaSetings
变量加载jar文件。
我们有一个类似的问题,类路径的顺序导致了CF2021中的问题。我首先包含了一个jar文件,但是应该在加载所有主库后再做。所以,根据我的经验,意识到当向类路径添加新jar时,总是在末尾添加。
更新:
(聊天摘要)Batik 1.7包括两个已与CF 10捆绑在一起的xml解析库的更新版本。加载这两个版本将导致ClassCastException
组织。阿帕奇。xerces。jaxp。不能将SAXParserFactoryImpl转换为javax。xml。解析器。SAXParserFactory
为了避免该错误,请从batik-1.7/lib目录中删除这两个xml JAR,以便不加载它们:
/batik-1.7/lib/xerces_2_5_0.jar
/batik-1.7/lib/xml-apis.jar
此外,loadPaths
不是递归的。因此,如果子文件夹中包含任何jar,则必须同时包含这些子文件夹的路径。即
This.javaSettings = {loadPaths: ["/jar/batik-1.7","/jar/batik-1.7/lib"]};
如果您对this.java设置
进行了更改,请务必重新启动应用程序以确保应用了更改。
找不到ColdFusion组件或接口
使用createObject时,需要包含对象“type”。否则,它使用默认类型“component”。这意味着CF正在使用您提供的路径搜索组件/cfc,即“org.apache.batik.transcoder.image.PNGTranscoder”。由于您的应用程序可能不包含具有该路径的cfc,因此您会收到上面的错误消息。
将类型"java"
添加到您的所有createObject
调用中,它应该可以工作:
createObject("java", "org.apache.batik.transcoder.image.PNGTranscoder").init();
问题内容: 问题说明了一切。 在我的情况下,特殊之处在于当前工作目录不是jar文件的位置,而是(我的jar文件由Windows使用右键菜单启动,我想将文件夹的路径作为参数传递给jar) 。 现在,我想加载一个与jar相同的文件夹中的配置文件。该文件的目的当然是为jar提供设置。对我来说重要的是,xml文件 位于 jar文件 之外 ,以便于编辑。 我很难加载该文件。Windows执行该行 调用整个过
我正在尝试从可执行JAR文件加载图像。 我跟踪了这里的信息,然后是这里的信息。 这是检索图像的函数: 这就是它的名称: 这是一个简单的对象。我也不会得到NullPointerException,除非它被UI屏蔽。 我检查了JAR文件,图像位于: /图片/标识1。巴布亚新几内亚 当前代码在eclipse中以及导出到JAR并在终端中运行时都有效,但在双击JAR时不起作用,在这种情况下,图标是默认的JF
本文向大家介绍在WordPress中加载模板文件的正确方法,包括了在WordPress中加载模板文件的正确方法的使用技巧和注意事项,需要的朋友参考一下 从WordPress 3.0开始,有一个名为的函数get_template_part(),该函数已在新的二十零默认WordPress主题中使用了很多。这是通过使用诸如get_header()包含header.php文件之类的功能来包含部分主题的通常
问题内容: 我正在尝试将CSV文件加载到AngularJS中,以便可以对内容进行一些操作。它不是我想要的那样工作。为了测试它是否正确加载,我将其加载到文本区域中以查看内容。 当我加载文件时,它说它已正确加载,但在加载第二个CSV文件之前似乎没有触发onload()事件,在这种情况下,FIRST文件显示在文本区域中。 HTML: JS: 当我将其放入JSFiddle时,该文件根本不会出现在tex
我应该有一个正常的贴图如下: 但当我加载场景时,或者从inspector中的另一个场景切换(例如,单击“场景/菜单”,然后单击此场景),或者在游戏中转移到此场景(),精灵会随机不可见。 每次都有一些精灵隐形,下一次隐形的可能就不一样了。我怀疑这是Unity编辑器的问题,因为即使我不在播放模式下也会发生这种情况。 在中,我肯定会找到这些sprite(不是null)。他们就是不出现。我必须重新加载精灵
我已经用Gradle 4.0.1安装了Android Studio 2.3.3,它工作得很好,但有一天它似乎没有正确加载。我构建了Gradle,清理并重建了我的项目,它表明构建是正确的,我甚至可以编译,但IDE中的所有内容都是红色的,就像它没有加载库一样。会是什么?很抱歉解释得太短,但这是我的全部。