Ошибка компиляции сервера Java RMI
Я пытаюсь тоже добавить ssl к моей реализации сервера. У меня проблема, когда я хочу скомпилировать server.java. Это выход.
**Server.java:7: error: cannot find symbol
import javax.net.ssl.KeyStore;
^
symbol: class KeyStore
location: package javax.net.ssl
Server.java:8: error: cannot find symbol
import javax.net.ssl.KeyStorePassword;
^
symbol: class KeyStorePassword
location: package javax.net.ssl
Server.java:9: error: cannot find symbol
import javax.net.ssl.trustStore;
^
symbol: class trustStore
location: package javax.net.ssl
Server.java:10: error: cannot find symbol
import javax.net.ssl.trustStorePassword;
^
symbol: class trustStorePassword
location: package javax.net.ssl
Server.java:21: error: call to super must be first statement in constructor
super(0, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
^
5 errors**
Это мой серверный код, до добавления ssl работал отлично.
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.net.ssl.KeyStore;
import javax.net.ssl.KeyStorePassword;
import javax.net.ssl.trustStore;
import javax.net.ssl.trustStorePassword;
public class Server extends UnicastRemoteObject implements ServerInterface
{
private static final long serialVersionUID = 1L;
protected Server() throws RemoteException
{
super(0, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
}
Я публикую эту часть только потому, что считаю проблему с импортом пакета ssl. Я использую Ubuntu.
Благодарю. Лучо.
2 ответа
В Java до Java 8 включительно:
- нет класса под названием
javax.net.ssl.KeyStore
- нет класса под названием
javax.net.ssl.KeyStorePassword
- нет класса под названием
javax.net.ssl.trustStore
- нет класса под названием
javax.net.ssl.trustStorePassword
Действительно, последние два имени класса даже не соответствуют стандартным соглашениям об именах классов.
Я публикую эту часть только потому, что считаю проблему с импортом пакета ssl. Я использую Ubuntu.
Это не указывает на проблему ни с Java, ни с вашей установкой Java, ни с Ubuntu. Настоящая проблема в том, что код, который вы пытаетесь скомпилировать, совершенно неверен. Совершенно неправильно. Вы не можете импортировать классы, которые не существуют.
Для чего это стоит, есть стандартный класс под названием java.security.KeyStore
, но ничто отдаленно не напоминает остальные три.
Не существует проблемы импорта с пакетом ssl. Возникла проблема с попыткой импортировать воображаемые классы. Вы даже не используете их, по крайней мере из того, что вы опубликовали. Некоторые системные свойства записаны почти, но не совсем так:
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
Ваша последняя ошибка не требует пояснений.
Вам не нужен serialVersionUID
в удаленном объекте.
Короче твой код полная ерунда.