Вызвать функцию ColdFusion на другом сервере?
У меня есть класс Java, который я должен запустить, мой текущий веб-хост (общий) не позволит Java. Мне нужно разместить его на другом сервере. Мне сказали, что я не могу вызвать Java из ColdFusion на отдельном сервере, но что, если я вызову функцию CF на 2-м сервере, то эта функция вызовет класс Java, вернет данные в CF, а затем эта функция вернется к оригиналу? Извините, если это звучит клуджи, но я не могу придумать никаких других решений.
кого? Идеи?
2 ответов
Если у вас есть доступ к серверу, который может запускать Java, вы не можете запустить все это там в любом случае?
в противном случае, как вы поняли, вы можете просто создать компонент с удаленной функцией и сделать эту работу, по строкам:
<cfcomponent output="false">
<cffunction name="runMyJava" returntype="String" output="false" access="remote">
<cfargument name="MyArg" type="String" />
<cfset var MyObj = createObject('java','whatever') />
<cfreturn MyObj.doJavaMagic( Arguments.MyArg ) />
</cffunction>
</cfcomponent>
тогда на другом сервере у вас будет что-то вроде...
<cfset MyWebService = createObject('webservice','https://myotherserver/mycomponent.cfc?wsdl')/>
<cfset MyString = MyWebService.runMyJava( MyString ) />
обратите внимание, что в этом примере используется https-так как вы предположительно хотите защитить данные от полетов через интернет в виде обычного текста.
также может быть разумно ограничить IP-сервер, чтобы только вы могли подключиться к нему или использовать другие соответствующие методы для его защиты.
Я бы настроил веб-службу с помощью coldfusion на вашем втором сервере, чтобы вызвать класс java, а затем просто заставить сайт на вашем веб-узле потреблять эту веб-службу.