Java Rmic не работает
Я изучаю RMI для практики из книги в книге после кода, но RMI не работает
package chapter4.printers;
import chapter4.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
public class NullPrinter extends UnicastRemoteObject implements Printer {
private PrintWriter log;
public NullPrinter(OutputStream log) throws RemoteException {
this.log = new PrintWriter(log);
}
@Override
public boolean printerAvailable() throws RemoteException {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean printDocument(DocumentDescription document) throws RemoteException, PrinterException {
// TODO Auto-generated method stub
if (null == log) {
throw new NoLogException();
}
if (null == document) {
throw new NoDocumentException();
}
log.println("Printed file");
log.flush();
if(log.checkError()) {
throw new CantWriteToLogException();
}
return true;
}
private class NoLogException extends PrinterException {
public NoLogException() {
super(0, "Null printer failure. No log to record" +
" print request.");
}
}
private class NoDocumentException extends PrinterException {
public NoDocumentException() {
super(0, "Null printer failure. No document receive" +
" as part of print request.");
}
}
private class CantWriteToLogException extends PrinterException {
public CantWriteToLogException() {
super(0, "Null printer failure. Attempt to record " +
"print request to log failed.");
}
}
}
package chapter4.applications;
import chapter4.printers.*;
import chapter4.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
public class SimpleServer implements NetworkConstants {
public static void main(String[] args) {
try {
File logFile = new File("serverLogFile");
OutputStream outputStream =
new FileOutputStream(logFile);
Printer printer =
new NullPrinter(outputStream);
Naming.rebind(DEFAULT_PRINTER_NAME, printer);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Сообщения:
Предупреждение: создание и использование скелетов и статических заглушек для JRMP не рекомендуется. Скелеты не нужны, а статические заглушки были заменены динамически сгенерированными заглушками. Пользователям рекомендуется перейти от использования rmic для создания скелетов и статических заглушек. См. Документацию для java.rmi.server.UnicastRemoteObject.
ошибка: класс printers.NullPrinter не найден. 1 ошибка
но nullprinter.class есть в папке принтера
1 ответ
package chapter4.printers;
Класс принтеров.NullPrinter не найден. 1 ошибка
но nullprinter.class есть в папке принтера
Но это должно быть в chapter4/printers
и его имя не printers.NullPrinter
, это chapter4.printers.NullPrinter
, Что также означает, что вы должны бежать rmic
из каталога, содержащего chapter4
каталог:
rmic chapter4.printers.NullPrinter