Koneksi RMI atau soket ke Program Java di OpenShift

Saya punya skenario sederhana berikut ini:

Saya telah membuat aplikasi JBossAS7 di OpenShift. Saya memiliki index.jsp yang memanggil Kelas Java setiap kali dimuat. Kelas Java ini mengumpulkan beberapa data dan menyimpannya sebagai string. Yang ingin saya lakukan sekarang adalah memasukkan teks ke dalam String itu, tetapi TIDAK menampilkannya di halaman.

Yang saya perlukan adalah mekanisme seperti RMI atau soket yang dapat saya sambungkan dan cukup menerima String menggunakan program klien. Sayangnya, OpenShift memblokir semua port dan saya tidak dapat menggunakan RMI atau soket untuk mengikat apa pun (izin saya selalu ditolak).

Apakah ada cara untuk mengatasi ini? Terima kasih!


person Ciri    schedule 14.05.2014    source sumber


Jawaban (2)


Menurut saya cara terbaik bagi Anda untuk mengekspos data tersebut adalah melalui servlet, atau membuat API yang tenang dan mengizinkan akses ke sana, mungkin dengan beberapa otentikasi atau token keamanan.

Pemikiran lainnya adalah menggunakan ironmq (iron.io) dan mengirimkan data ke dalam antrian yang dapat Anda proses dari aplikasi lain.

person Community    schedule 14.05.2014

Cara saya menyelesaikan masalah ini cukup mudah, tetapi tidak dijelaskan dan didokumentasikan dengan baik di forum atau papan pesan.

OpenShift hanya mengizinkan port antara 15000 dan 35530 untuk diikat oleh pengguna. Namun, saat melakukannya, pengguna juga harus menentukan alamat IP host, jika tidak, localhost akan digunakan, yang tidak diperbolehkan di OpenShift. Alamat server terletak di bawah variabel lingkungan OPENSHIFT_JBOSSAS_IP (Saya menggunakan JBoss AS 7.1, variabel tersebut mungkin memiliki nama berbeda berdasarkan teknologi apa pun yang digunakan). Saya mengetahuinya dengan masuk ke aplikasi saya melalui SSH dan menjalankan perintah env.

Setelah program dimulai di OpenShift dan port terikat ke alamat IP yang benar, pengguna harus meneruskan port tersebut agar dapat menyambung ke sana. Hal ini dapat dilakukan baik dari gerhana atau menggunakan alat RHC. Penerusan port pada OpenShift berarti port terikat pada server OpenShift akan dipetakan ke port yang sama di localhost pengguna. Saat menulis program klien, pengguna harus terhubung ke localhost:PORT, bukan IP_ADDRESS_OF_OPENSHIFT_SERVER:PORT. Ini adalah sesuatu yang memerlukan waktu cukup lama untuk saya pahami. Setelah semuanya benar, program klien berjalan tanpa masalah.

person Ciri    schedule 18.05.2014