Вызвать функцию 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, а затем просто заставить сайт на вашем веб-узле потреблять эту веб-службу.