Главная /
Построение распределенных систем на Java /
Класс, методы экземпляра которого могут вызываться удаленно через Java RMI должен:
Класс, методы экземпляра которого могут вызываться удаленно через Java RMI
должен:
вопрос
Правильный ответ:
реализовывать интерфейс, который наследует от интерфейса
java.rmi.Remote
реализовывать интерфейс
Serializable
наследовать от класса
Thread
Сложность вопроса
48
Сложность курса: Построение распределенных систем на Java
91
Оценить вопрос
Комментарии:
Аноним
Я завалил сессию, какого рожна я не нашёл данный сайт с всеми ответами интуит до того как забрали в армию
12 дек 2020
Аноним
Спасибо за ответы интуит
21 июл 2020
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Какие аннотации из пакета javax.jws минимально необходимы при "автоматическом" создании Web-сервиса, содержащего хотя бы один метод:
- # В какой строке происходит прием соединения клиента (класс BillingService): 1 package com.asw.net.ex1; 2 import java.net.*; 3 import java.util.Hashtable; 4 import java.io.*; 5 6 public class BillingService extends Thread{ 7 public static final int ADD_NEW_CARD = 1; 8 public static final int ADD_MONEY = 2; 9 public static final int SUB_MONEY = 3; 10 public static final int GET_CARD_BALANCE = 4; 11 public static final int EXIT_CLIENT = 5; 12 13 private int serverPort = 7896; 14 private ServerSocket ss; 15 private Hashtable hash; 16 17 public static void main(String[] args) { 18 BillingService bs = new BillingService(); 19 bs.start(); 20 } 21 22 public BillingService(){ 23 hash = new Hashtable(); 24 } 25 26 public void run(){ 27 try { 28 ss = new ServerSocket(serverPort); 29 System.out.println("Server started"); 30 while(true){ 31 Socket s = ss.accept(); 32 System.out.println("Client accepted"); 33 BillingClientService bcs = new BillingClientService(this, new DataInputStream(s.getInputStream()), new DataOutputStream(s.getOutputStream())); 34 bcs.start(); 35 } 36 } catch (IOException e) { 37 e.printStackTrace(); 38 } 39 } 40 41 public void addNewCard(String personName, String card) { 42 hash.put(card, new Double(0.0)); 43 } 44 public void addMoney(String card, double money) { 45 Double d = (Double)hash.get(card); 46 if (d!=null) hash.put(card,new Double(d.doubleValue()+money)); 47 } 48 public void subMoney(String card, double money) { 49 Double d = (Double)hash.get(card); 50 if (d!=null) hash.put(card,new Double(d.doubleValue()-money)); 51 } 52 public double getCardBalance(String card) { 53 Double d = (Double)hash.get(card); 54 if (d!=null) return d.doubleValue(); 55 return 0; 56 } 57 }
- # Чтение из потока, в строке 21, в случае, если клиент после установки соединения не записал в поток никаких данных, приведет: 1 package com.asw.net.ex1; 2 import java.io.*; 3 4 public class BillingClientService extends Thread { 5 DataInputStream dis; 6 DataOutputStream dos; 7 BillingService bs; 8 9 public BillingClientService (BillingService bs,DataInputStream dis,DataOutputStream dos){ 10 this.bs = bs; 11 this.dis = dis; 12 this.dos = dos; 13 } 14 15 public void run(){ 16 System.out.println("ClientService thread started"); 17 boolean work = true; 18 while (work) { 19 int command; 20 try { 21 command = dis.readInt(); 22 switch (command) { 23 case BillingService.ADD_NEW_CARD: 24 addNewCard(); 25 break; 26 case BillingService.ADD_MONEY: 27 addMoney(); 28 break; 29 case BillingService.SUB_MONEY: 30 subMoney(); 31 break; 32 case BillingService.GET_CARD_BALANCE: 33 getCardBalance(); 34 break; 35 case BillingService.EXIT_CLIENT: 36 work = false; 37 break; 38 default: 39 System.out.println("Bad operation:" + command); 40 } 41 } catch (IOException e) { 42 e.printStackTrace(); 43 } 44 } 45 } 46 47 void addNewCard() throws IOException{ 48 String personName = dis.readUTF(); 49 String card = dis.readUTF(); 50 bs.addNewCard(personName,card); 51 } 52 void addMoney() throws IOException{ 53 String card = dis.readUTF(); 54 double money = dis.readDouble(); 55 bs.addMoney(card,money); 56 } 57 void subMoney() throws IOException{ 58 String card = dis.readUTF(); 59 double money = dis.readDouble(); 60 bs.subMoney(card,money); 61 } 62 void getCardBalance() throws IOException{ 63 String card = dis.readUTF(); 64 double money = bs.getCardBalance(card); 65 dos.writeDouble(money); 66 } 67 }
- # Для того чтобы указать системе на то, что экземпляры класса могут быть сохранены в поток/прочитаны из потока, необходимо:
- # При регистрации в сервисе имен класса, использующего DII: