JavaはリモートメソッドでRMIを呼び出す方法
12109 ワード
JavaはリモートメソッドでRMIを呼び出す方法
会社がwebサービスをしているとき、資料を見てみると、rmiというもの(リモートメソッド呼び出し)が見えて、最近暇だったので、見てみると、簡単な感じでした!だから例を書いて皆さんに提供します!
rmiのサービス側は、インタフェースを使用する必要があります.また、インタフェースの実装クラスもあります.だから次の2つのファイルはインタフェースクラスとインタフェースの実装クラスです!
UserDaoインタフェース:
UserDaoImpl実装クラス
対外的にurlを共有して外部にアクセスするサービスを提供しています
上はサービス側のコードで、起動に何の問題もなければ、クライアントアクセスをすることができますが、実は上海プラグバルブクライアントのアクセスはもっと簡単で、遠隔のインタフェースクラスとrmiのurlを検索するだけでいいです!
コードは次のとおりです.
以上がすべてのrmiリモートコールコードです!実行結果は次のとおりです.
はい、私も簡単にrmiを理解しただけで、後でrmiをするプロジェクトがあれば深く入り込むことができます!ほほほ ,ここで私は突然感じて、webサービスも彼と同じ原理のはずだと思います!
横型自吸ポンプ43ステンレスロータポンプ
立式汚染排出ポンプ12配管汚染排出ポンプ26液下汚染排出ポンプ
会社がwebサービスをしているとき、資料を見てみると、rmiというもの(リモートメソッド呼び出し)が見えて、最近暇だったので、見てみると、簡単な感じでした!だから例を書いて皆さんに提供します!
rmiのサービス側は、インタフェースを使用する必要があります.また、インタフェースの実装クラスもあります.だから次の2つのファイルはインタフェースクラスとインタフェースの実装クラスです!
UserDaoインタフェース:
- /**
- * Remote
- * @author spring sky
- * date: 2012 2 7 10:55:05
- * Email:[email protected]
- * QQ:840950105
- */
- public interface UserDao extends Remote{
- /**
- *
- * @param name
- */
- public void sayName(String name) throws RemoteException;
-
-
- }
UserDaoImpl実装クラス
- /**
- *
- * UnicastRemoteObject( ) UserDao
- * @author spring sky
- * date: 2012 2 7 10:56:05
- * Email:[email protected]
- * QQ:840950105
- */
- public class UserDaoImpl extends UnicastRemoteObject implements UserDao {
-
- public UserDaoImpl() throws RemoteException {
- }
- @Override
- public void sayName(String name) {
- if(name!=null&&!name.equals(""))
- {
- System.out.println(" :"+name);
- }else{
- System.err.println(" ....");
- }
- }
-
- }
対外的にurlを共有して外部にアクセスするサービスを提供しています
- /**
- * main ,
- * @author spring sky
- * date:2012 2 7 10:57:37
- * Email:[email protected]
- * QQ:840950105
- */
- public class StartService {
- private static final String IP = "127.0.0.1";
- private static final int PORT = 9999;
- private static final String REMOTE_NAME = "userDao";
- private static final String REMOTE_URL = "rmi://"+IP+":"+PORT+"/"+REMOTE_NAME;
- public static void main(String[] args) {
- try {
- UserDao userDao = new UserDaoImpl(); //
- LocateRegistry.createRegistry(PORT); //
- Naming.bind(REMOTE_URL, userDao); //
- System.out.println(" "+REMOTE_NAME+" ....");
- } catch (RemoteException e) {
- System.err.println(" ");
- e.printStackTrace();
- } catch (MalformedURLException e) {
- System.err.println("URL ");
- e.printStackTrace();
- } catch (AlreadyBoundException e) {
- System.err.println(" ");
- e.printStackTrace();
- }
- }
- }
上はサービス側のコードで、起動に何の問題もなければ、クライアントアクセスをすることができますが、実は上海プラグバルブクライアントのアクセスはもっと簡単で、遠隔のインタフェースクラスとrmiのurlを検索するだけでいいです!
コードは次のとおりです.
- /**
- *
- * @author spring sky
- * date:2012 2 7 11:12:46
- * Email:[email protected]
- * QQ:840950105
- * name:
- */
- public class TestRemote {
- public static void main(String[] args) {
- try {
- // rmi userdao
- UserDao userDao = (UserDao) Naming.lookup("rmi://127.0.0.1:9999/userDao");
- //
- userDao.sayName("spring sky");
- } catch (MalformedURLException e) {
- System.err.println("URL ");
- e.printStackTrace();
- } catch (RemoteException e) {
- System.err.println(" ");
- e.printStackTrace();
- } catch (NotBoundException e) {
- System.err.println(" ");
- e.printStackTrace();
- }
- }
- }
以上がすべてのrmiリモートコールコードです!実行結果は次のとおりです.
はい、私も簡単にrmiを理解しただけで、後でrmiをするプロジェクトがあれば深く入り込むことができます!ほほほ ,ここで私は突然感じて、webサービスも彼と同じ原理のはずだと思います!
横型自吸ポンプ43ステンレスロータポンプ
立式汚染排出ポンプ12配管汚染排出ポンプ26液下汚染排出ポンプ