2009-06-02 20 views
6

Varsayılan RMI bağlantı noktasını (1099) nasıl değiştirebilirim? JVM parametresi veya kodlama yoluyla olabilir, önemli değil. Teşekkürler.Varsayılanı Değiştir RMI Bağlantı Noktası (Java)

+0

kayıt defteri veya sunucu? – dfa

+2

1099, RMI sunucu bağlantı noktası değil, RMI kayıt sunucusu bağlantı noktasıdır. –

+0

[Burada] (http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2008-09/msg00874.html) kodlama yoluyla bir çözümdür. Seçtiğiniz bağlantı noktasında özel bir kayıt defteri oluşturmanız gerekiyor. ** Düzenle ** - sadece sorunuzu yeniden okuyun: Bu ** varsayılan ** portunu değiştirmeyecek ama Port 1099 –

cevap

10

Komut satırında bunu belirtebilirsiniz. RMI Tutorial Gönderen:

Varsayılan olarak, kayıt defteri, farklı bir bağlantı noktasında kayıt başlatmak komut satırında port numarasını belirtmek için bağlantı noktası 1099 üzerinde çalışır. CLASSPATH ortam değişkenini unutma. eğiticinin Creating a Client Program bölümünde açıklandığı gibi Kodunuzda

Microsoft Windows: 

start rmiregistry 2001 

Solaris OS or Linux: 

rmiregistry 2001 & 

Eğer hostname ve port tarafından kayıt bulmak için LocateRegistry.getRegistry(String host, int port) geçersiz kılma kullanın. (Aynı şey sunucunuzu uygularken de geçerlidir.)

+0

Tamam, söyleyeceğiniz şey, rmiRegistry portunu değiştirmenin bir yolu olmamasıdır, ancak rmiServer portunu 1098'den JVM'ye bir -D özelliği arg'sini kullanarak değiştirebilirsin? – djangofan

+0

@djangofan: Tam olarak değil. Komut satırında rmiregistry portunu değiştirirsiniz (yukarıda gösterildiği gibi). –

+0

@djangofan bunun tam tersini söylüyor. – EJP

3

Uzak nesneyi dışa aktarırken, kendi bağlantı noktanızı (ister bağlantı noktası, ...), isterse exportObject (uzak, bağlantı noktası, ...) yoluyla belirtebilirsiniz. UnicastRemoteObject'i uzatır veya uzatmazsınız. Activatable'ı genişletirseniz, bir port numarasıyla benzer şekilde super() aşırı yükler vardır. Bunu kullanırsanız, kayıt defteri bağlantı noktasını komut satırında belirtebilirsiniz, aksi takdirde bunu kullanıyorsanız, LocateRegistry.createRegistry() aracılığıyla.

İlgili konular