2010-12-28 2 views
4

リモートサービスMyremoteImpl.javaを作成し、コンパイルした後に次のコマンドを使用しました。RMI javaはスケルトンクラスを作成しません

rmic MyRemoteImpl 

このメソッドは、スタブクラスとスケルトンクラスを作成することを前提としていましたが、スタブクラスしか見ることができません。

rmiregistryを実行した後に直面したその他の問題私はサービスを開始しましたが、次のエラーが発生しました。スケルトンクラスがないのでこのエラーが発生するのですか?

java.net.MalformedURLException: invalid URL String: Remote Hello 
    at java.rmi.Naming.parseURL(Unknown Source) 
    at java.rmi.Naming.rebind(Unknown Source) 
    at RMIservice.MyRemoteImpl.main(MyRemoteImpl.java:22) 
Caused by: java.net.URISyntaxException: Illegal character in path at index 6: Remote Hello 
    at java.net.URI$Parser.fail(Unknown Source) 
    at java.net.URI$Parser.checkChars(Unknown Source) 
    at java.net.URI$Parser.parseHierarchical(Unknown Source) 
    at java.net.URI$Parser.parse(Unknown Source) 
    at java.net.URI.<init>(Unknown Source) 
    at java.rmi.Naming.intParseURL(Unknown Source) 
    ... 3 more 

事前にThanxを解決してください。

+0

正しく覚えていれば、スケルトンクラスはもう作成されません。あなたの例外は無効なURLを指しているようです。接続に使用しているURLを投稿できますか? – npinti

+0

あなたの答えはたくさんあります!最終的に私はその例外を取り除きました...そしてスケルトンクラスを作成するためにrmic -v1.1が動作することを発見しました:-) –

答えて

3

これを行わないでください。あなたはそれを必要としません。 1998年以来スケルトンクラスは不要です。

+0

訂正してくれてありがとう... :-) –

0

rmic 1.2以降では、Javaはもはやスケルトンクラスを生成しません。 RMIでサポートされている新しいJRMPプロトコルは、スケルトンファイルの使用を取り除いています。

リモートオブジェクトのスケルトンは、実際のリモートオブジェクト実装への呼び出しをディスパッチするメソッドを持つJRMPプロトコルのサーバー側エンティティです。

関連する問題