Ошибка компиляции сервера 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 в удаленном объекте.

Короче твой код полная ерунда.

Другие вопросы по тегам