0
ColdFusion8 애플리케이션에서 실행되는 javaLoader를 얻으려고하고 있으며 결승점을 통과하기 위해 도움이 필요합니다.ColdFusion8에서 javaloader로 Java 라이브러리를 설정하는 방법은 무엇입니까?
이것은 내가 지금까지 무엇을 가지고 :
application.cfc 내부의
...
THIS.mappings["/javaloader"] = GetDirectoryFromPath(GetCurrentTemplatePath()) & "tools/javaloader";
...
<cffunction name="onApplicationStart" returnType="boolean" output="false" hint="application initalizer">
<cfscript>
Application.str = structNew();
Application.str.myJavaLoaderKey = "someUUID_javaloader";
Application.str.jarPaths = arrayNew(1);
</cfscript>
<cfif (NOT structKeyExists(server, Application.str.myJavaLoaderKey))>
<!--- add path to class files to jarPath Array --->
<cfset Application.str.jarPaths[1] = expandPath("/classes/BCrypt.class")>
<!--- this will map out to: ...htdocs/classes/BCrypt.class --->
<cfif (NOT structKeyExists(server, Application.str.myJavaLoaderKey))>
<cflock name="#Hash(Application.str.myJavaLoaderKey)#" type="exclusive" timeout="10">
<cfset server[Application.str.myJavaLoaderKey] = createObject("component", "javaloader.JavaLoader")>
<!--- tried .init(Application.str.jarPaths) here, but didn't do anything --->
</cflock>
</cfif>
</cfif>
<cfreturn true />
</cffunction>
이 here 및 here의 지시에 따라 이루어졌다. 내가의 인스턴스를 만들려고 할 때
이<cfsript>
pass = "some_password";
<!--- this is accessible --->
cryptonite = server[Application.str.myJavaLoaderKey];
<!--- now trying to call init() with respective path to create an instance --->
<!--- BREAKS HERE --->
bCrypt = cryptonite.init(Application.str.jarPaths[1]);
hashed = bCrypt.hashpw(pass, bcrypt.gensalt());
</cfscript>
나는 cryptonite 변수 무사를 덤프 수 있지만, 내 handler.cfc에서
, 정말 같은 javaloader과 BCrypt 클래스에 액세스하려고 해요 BCrypt, 스크립트가 실패합니다.
질문 :
은 내가 여기까지 만든 행복 해요,하지만 난 내가 잘못 무엇을 단서로 지금 몇 시간 동안이에 앉아 있었어요. 더 많은 통찰력을 가진 누군가가 나에게 방향을 제시 할 수 있기를 바랍니다.
도움 주셔서 감사합니다.
당신이 그것을 해결했다. 하지만 다음 번에는 "스크립트 실패"가 모호합니다 : 어떻게 실패합니까 : 빈 페이지, 오류, ...? 항상 전체 오류 메시지를 포함하십시오 (Java 객체를 사용할 때는 전체 스택 추적도 포함하십시오). – Leigh