2009-02-24 23 views
6

Tôi có một lớp Java mà tôi phải chạy, máy chủ lưu trữ web hiện tại của tôi (được chia sẻ) sẽ không cho phép Java. Tôi cần lưu trữ nó trên một máy chủ khác. Tôi đã nói rằng tôi không thể gọi Java từ ColdFusion trên một máy chủ riêng biệt, nhưng nếu tôi gọi một hàm CF trên máy chủ thứ 2 thì có hàm đó gọi là lớp Java, trả về dữ liệu cho CF, sau đó hàm đó quay trở lại bản gốc ? Xin lỗi nếu điều đó nghe kludgy, nhưng tôi không thể nghĩ ra bất kỳ giải pháp nào khác.Gọi chức năng Coldfusion trên máy chủ khác?

Bất kỳ ai? Ý tưởng?

Trả lời

12

Nếu bạn có quyền truy cập vào máy chủ có thể chạy Java, bạn có thể không chạy toàn bộ nội dung trên đó không?

Nếu không, khi bạn đã xác định, bạn có thể chỉ cần tạo một thành phần có chức năng điều khiển từ xa và có mà làm việc, dọc theo dòng:

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


Sau đó, trên khác của bạn máy chủ, bạn sẽ có cái gì như ...

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

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


Lưu ý rằng ví dụ này sử dụng https - vì bạn có thể muốn bảo vệ dữ liệu không bị phát tán trên Internet dưới dạng văn bản thuần túy.

Cũng có thể hợp lý khi giới hạn IP cho máy chủ để chỉ bạn mới có thể kết nối với máy chủ đó hoặc sử dụng các phương pháp thích hợp khác để bảo mật.

4

Tôi sẽ thiết lập một dịch vụ web bằng cách sử dụng coldfusion trên máy chủ thứ hai của bạn để gọi lớp java và sau đó chỉ cần có trang web trên máy chủ lưu trữ web của bạn tiêu thụ dịch vụ web đó.

Các vấn đề liên quan