Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не удается запустить RMI сервер 
:(
    Опции темы
access
Дата 16.6.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Здравствуйте.
Написал вот сервер
Код

package common.rmiServers;
/*...*/
public class RMIServer  extends UnicastRemoteObject implements RMIServerIntf{

    public RMIServer() throws RemoteException
    {
        super();
    }

    public static void main(String[] args)
    {
        System.out.println("Starting.....");
        RMIServer rs = null;
        Registry r = null;
        try {rs = new RMIServer();}
        catch  (Exception e) {
            e.printStackTrace(); System.exit(-1);
        }

        try {
            Naming.rebind("rmi://localhost/RMIServer", rs);
        } catch (RemoteException e)
        {
            try
            {
                r = LocateRegistry.createRegistry(1099);
                Naming.rebind("rmi://localhost/RMIServer", rs);
            }
            catch (RemoteException e1) {e1.printStackTrace(); }
            catch (MalformedURLException e1) {e1.printStackTrace();  }
        } catch (MalformedURLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        System.out.println("Server is Running");
    }

    public void get() throws RemoteException {
    }
}

с интерфейсом
Код

package common.rmiServers;
/*...*/
public interface RMIServerIntf extends Remote {
    public void get() throws RemoteException;
}


, который никак не могу запустить (

Используемая IDE - IntelliJ IDEA. Позволяет генерить stub.  Заглушка создается. Далее запускаю сервер из под IDE - сервер запускается (пока к нему, правда, не пробовал коннектиться, но не в этом вопрос).
Пробую запустить через bat-файл
Код

java RMIServer

выдает
Exception in thread "main" java.lang.NoClassDefFoundError: RMIServer <wrong name: common/rmiServers/RMIServer>
...
Если в батнике пишу
Код

java common.rmiServers.RMIServer

то
Exception in thread "main" java.lang.NoClassDefFoundError: common/rmiServers/RMIServer
Пробовал заглушку вручную создать
Код

rmic RMIServer

ругается
error: Invalid class file format in .\RMIServer.class. The major\minor version '49.0' is too recent for this tool to understand
error: Class RMIServer not found

Все класс-файлы с батами - в одной директории. Блин, вроде всё просто должно быть, а в чём косяк - не въезжаю... Подскажите 
PM MAIL   Вверх
powerOn
Дата 16.6.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(access @  16.6.2006,  13:05 Найти цитируемый пост)
Пробовал заглушку вручную создать
    
rmic RMIServer

ругается
error: Invalid class file format in .\RMIServer.class. The major\minor version '49.0' is too recent for this tool to understand
error: Class RMIServer not found


ты не учитываешь имя пакета. Компилировать по полному имени надо и чтоб RMIServerIntf тоже был виден в classpath. И не забывай, что если у тебя класс common.rmiServers.RMIServer, то класс-файл  должен находиться в соответствующих папках common/rmiServers/RMIServer.class,
а вызов будт примерно таким  rmic common.rmiServers.RMIServer

и еще, в папке common/rmiServers/  должен лежать и RMIServerIntf.class. 

Расположение папок, естественно, относительно той, в которой происходит компиляция.
 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
access
Дата 16.6.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Поподробнее, по возможности
Есть папка
E:\Projects\WorkVers\Reports\DataBase\classes\common\rmiServers
В ней файлы RMIServer.class и RMIServerIntf.class
В ней же батник с содержанием
Код

SET JAVA_HOME = c:\Program Files\Java\jdk1.5.0_04
SET CLASSPATH = %JAVA_HOME%;%JAVA_HOME%\bin;%JAVA_HOME%\lib;E:\Projects\WorkVers\Reports\DataBase\classes
rmic common.rmiServers.RMIServer


при запуске дает
error: Class common.rmiServers.RMIServer not found

если бат-файл с таким содержанием
Код

SET JAVA_HOME = c:\Program Files\Java\jdk1.5.0_04
SET CLASSPATH = %JAVA_HOME%;%JAVA_HOME%\bin;%JAVA_HOME%\lib;E:\Projects\WorkVers\Reports\DataBase\classes;E:\Projects\WorkVers\Reports\DataBase\classes\common\rmiServers

rmic common.rmiServers.RMIServer

дает ту же ошибку

Если rmic common.rmiServers.RMIServer заменить на 
        rmic RMIServer
то ошибки
error: Invalid class file format in .\RMIServer.class. The major/minor version '49.0' is too recent for this tool to understand
error: Class RMIServer not found


что не так делаю? 
PM MAIL   Вверх
powerOn
Дата 16.6.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



установи E:\Projects\WorkVers\Reports\DataBase\classes\ текущим каталогом.

(или вообще понаглому:
1) скопируй папку common со всем содержимым в c:\Program Files\Java\jdk1.5.0_04\bin
2) Открой консоль в этой папке (что бы  "c:\Program Files\Java\jdk1.5.0_04\bin" была текущей папкой)и сделай вызов: 
rmic common.rmiServers.RMIServer
)

 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
access
Дата 16.6.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



спасибо, так
Цитата

(или вообще понаглому:
1) скопируй папку common со всем содержимым в c:\Program Files\Java\jdk1.5.0_04\bin
2) Открой консоль в этой папке (что бы  "c:\Program Files\Java\jdk1.5.0_04\bin" была текущей папкой)и сделай вызов: 
rmic common.rmiServers.RMIServer
)

с заглушкой получилось
А способ человечнее есть? Где б научиться... 
PM MAIL   Вверх
access
Дата 22.6.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



В общем, ерунда еще в том, что при запуске rmi сервера (или обращений к нему клиента) начинают вываливаться ошибки типа "не_могу_найти_такой-то_класс", причем не находит класс-файлы в jar архивах, прописанных в classpath батника, напримет не находит файл com.microsoft.jdbc.sqlserver.SQLServerDriver, хотя mssqlserver.jar в класспафе батника прописан. 
Проблема решилась, если прописать переменной среды окружения винды этот класспаф из батника, а в бат-файле его ваще заремить можно 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.