2009-02-24 7 views
6

J'ai une classe Java à exécuter, mon hébergeur actuel (partagé) ne permettra pas Java. J'ai besoin de l'héberger sur un autre serveur. On m'a dit que je ne peux pas appeler Java depuis ColdFusion sur un serveur séparé, mais que faire si j'appelle une fonction CF sur le 2ème serveur alors que cette fonction appelle la classe Java, renvoie les données à CF puis cette fonction retourne à l'original ? Désolé si ça sonne kludgy, mais je ne peux pas penser à d'autres solutions.Appelez une fonction ColdFusion sur un autre serveur?

Quelqu'un? Des idées?

Répondre

12

Si vous avez accès à un serveur qui peut exécuter Java, ne pouvez-vous pas tout faire fonctionner de toute façon?

Sinon, comme vous avez trouvé, vous pouvez simplement créer un composant avec une fonction à distance et ont qui font le travail, le long des lignes de:

<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> 


ensuite sur l'autre serveur, vous auriez quelque chose comme ...

<cfset MyWebService = createObject('webservice','https://myotherserver/mycomponent.cfc?wsdl')/> 

<cfset MyString = MyWebService.runMyJava(MyString) /> 


Notez que cet exemple utilise https - puisque vous voudriez probablement protéger les données de survoler Internet en texte brut.

Il peut également être judicieux de restreindre le serveur IP afin que vous puissiez vous y connecter uniquement ou utiliser d'autres méthodes appropriées pour le sécuriser.

4

Je voudrais configurer un service Web en utilisant coldfusion sur votre deuxième serveur pour appeler la classe java et ensuite avoir le site sur votre hôte web consomme ce service Web.

Questions connexes