ru_java, posts by tag: intellij idea - LiveJournal (original) (raw)

Сервер приложений в java.

catkeen

March 8th, 2013

Вопрос у меня к опытным товарищам.
Рылся в примерах, где показывалось как сделать сервер и клиент. Нашел, более-менее удачный, где клиент передавал объект на сервер, сервер обрабатывал объект и пулял обратно клиенту.
После чего сервер прекращал работу.

[**куски кода**]

Код сервера.

public void runServer() throws IOException,ClassNotFoundException

{

ServerSocket serverSocket = new ServerSocket(PORT);

System.out.println("Сокет создан. Ждем соединения...");

Socket socket = serverSocket.accept();

ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream());

ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());

Message message = (Message)objectInputStream.readObject();

System.out.println("Приняли объект: "+message.messageDesc());

doSomething(message);

System.out.println("Обработали объект на сервере: "+message.messageDesc());

objectOutputStream.writeObject(message);

System.out.println("Отправили объект клиенту");

socket.close();

}

Код клиента.

public static void main(String[] args) throws IOException, UnknownHostException, ClassNotFoundException

{

if ((args.length == 2) && Client.isInteger(args[0]) && Client.isInteger(args[1]))

{

Integer firstNumber = Integer.decode(args[0]);

Integer secondNumber = Integer.decode(args[1]);

Socket socket = new Socket("localhost",Server.PORT);

ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());

ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream());

Message message = new Message(firstNumber,secondNumber);

System.out.println("message created = " + message.messageDesc());

objectOutputStream.writeObject(message);

Message returnMessage = (Message)objectInputStream.readObject();

System.out.println("Message Result = " + returnMessage.getResult());

socket.close();

}

else

{ System.out.println("не верные аргументы. Используйте: Client "); }

}

Вопрос: как сделать, чтоб сервер всегда работал, и выключался по команде: либо из консоли либо по нажатию кнопки (скорее всего будет графический интерфейс с функциями перезапуска и выхода)

[upd]

Тут походу вопрос возник. В указанном выше коде, соединение происходит по UDP. Для работы нескольких клиентов с базой (через сервер приложений) насколько это праивильно? Может есть более верный способ решить задачу? (другой протокол, готовый сервер приложений итп)

[upd2]
Комментаторам спасибо. Вместо того чтоб отшучиваться, могли бы вот хотя бы эту ссылочку дать и вопрос был бы решен.

Intellij Idea. PostgreSQL.

catkeen

March 3rd, 2013

Сначала думал использовать SQLite, но оказалось, у него заморочки какие-то с многопользовательским доступом (если нет, то как он там организовывается?)
Решил попробовать PostgreSQL. В этой СУБД ничего не смыслю(если чо). Но вроде поставил, тестовую базу сделал и даже запросы выполняются. Стал пытаться установить соединение в Intellij Idea и ошибка вываливается.

try {

//Загружаем драйвер

Class.forName("org.postgresql.Driver"); }

catch (Exception ex) {

Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);

}

Скорее всего я JDBC драйвер не подключил. А как подключить - не знаю.
Может кто подскажет где взять рабочий пример? Или подскажите какой драйвер скачать (название, версия) и куда пихнуть.

Пока рылся в примерах, нашел уроки по hibarnate. Насколько это проще/удобней при работе с БД? Это похоже на linq? (или я опять понятия путаю?) :)

Intellij Idea. JTree.

catkeen

February 28th, 2013

Начал ковырять деревья. И тут столкнулся с такой проблемой.
На форме в дизайнере есть форма, у нее есть имя ну и в коде соответственно прописано private JTree mainTree;
В примерах работы с деревьями везде описывается динамический процесс создания. А если на форме компонент уже есть, то как в него добавить корневой узел (например)?
Или нужно в contentPane добавлять созданное динамически дерево с нужной мне структурой и событиями?

Создание форм в Intellij Idea с помощью дизайнера.

catkeen

February 25th, 2013

Вот с такой еще вещью столкнулся в Intellij Idea. При создании формы с помощью дизайнера, в модуле прописался код (с настройками интерфейса).
Прога компилиться , сбоев нет. Но смущает что IDE подсвечивает "ошибки". Как это можно починить? Или просто не обращать внимания? Наверняка можно что-то подкрутить в настройках и данное подчеркивание пропадет. Подскажите что с этим можно сделать.
[**пара скриншотов**]
В списке модулей подсветилась ошибка.
Снимок экрана 2013-02-25 в 19.37.09

В коде это выглядит так:
Снимок экрана 2013-02-25 в 19.37.34

Подскажите, где можно писать нубовские вопросы (вопросы новичков)? (вдруг есть раздел, тег или тема)

catkeen

February 24th, 2013

А пока напишу свой вопрос здесь.
Он скорее относится к технологии программирования, нежели к синтаксису языка или особенностям IDE (хотя скорее всего в java есть готовые конструкции для этого).
Наверняка тут есть более опытные товарищи, которые решали подобную задачу не один раз.
Итак. Задача тривиальная. Нужно сделать окно авторизации и после этого либо открыть главное окно программы либо завершить работу.
[**Spoiler (click to open)**]
Для этого я пока нашел 3 варианта, но из них только один реализовал. Во всех случаях есть основной класс с точкой входа.
В методе main есть статическое поле isAuth (авторизован). По умолчанию - false.

Первый способ: Мы вызываем функцию, которая инициирует окно авторизации, где мы вводим логин-пароль. И если авторизация прошла успешно - возвращаем "true".
В методе main мы смотрим, если функция вернула true - открываем главное окно.
Здесь проблема в том что, функция открыла окно авторизации и продолжила работу. Предположил, что нужно модальное окно сделать, но JDialog не помог (видимо само свойство модальности не установил или иное свойство не настроил).

Второй способ: инициируем главное окно (пустое) и окно авторизации. Но тут, тоже, скорее всего из-за того что не осилил работу модального окна, у меня открылись обе формы, где возможен переход от одной к другой (что не правильно).

Реализовал пока третий вариант.
функция main вызывает авторизацию. По нажатию на кнопку входа происходит проверка. И если авторизация произведена, то в основном классе приложения вызывается функция формирования главного окна, текущая форма делается невидимой.
Понятно, что такое решение будет работать, но есть ощущение, что это не правильный подход.
Пока писал текст, подумал, что основном классе приложения, можно в функцию инициации главного окна передать саму форму авторизации, и там ее убить, но хз...

IDEA, сборка из командной строки

nyaload

_winnie

April 8th, 2011

А как в IDEA запустить clean/make/test из командной строки?

Есть UI-опция в меню "сгенерировать ant-билд", но её нужно нажимать каждый раз при изменении структуруры проекта. Так же инкрементальный ant-билд не такой клёвый, как в IDEA ( IDEA корректно перекомпилирует только нужные файлы по dependency, может стирать *.class после переименования *.java, даже nested/anonymous классы ).

Возможно, это будет не idea.sh build myproject.ipr, а что-то чуть сложнее типа java -jar idea.jar Some.Class.To.Run.For.Build myproject.ipr или даже

import jetbrains.Some.Class.To.Run.For.Build import jetbrains.Idea.Project Build.SomeMethod(new jetbrains.Idea.Project( "myproject.ipr" ))

Но только я гуглил, гуглил но так и не нагуглил.

Спасибо!
crosspost: http://devnet.jetbrains.net/thread/303332

intellij idea (eap), j2me и proguard

apr

magicprinc

October 2nd, 2007

В справке ни obfuscator`s вообще, ни proguard в частности не упоминается.
Поиск в Inet результатов не дал ;-(

Можно ли настроить IDEA так, чтобы при билде j2me jar, она делала preverify, потом proguard, потом jar?
Это ведь стандартная задача. Её делает даже простенький тул из WTK

intellij idea (eap) и classpath

apr

magicprinc

September 4th, 2007

Искал долго сам, но так ничего не нашел.

Как добавить некий путь в classpath под IDEA?

- Есть сторонние библиотеки, которые ищут конфигурационные файлы ТОЛЬКО в classpath (используя Class.getResource и ResourceBundle.getBundle).
- Также есть jar файлы, которые необходимы только на этапе выполнения (напрямую в исходнике не используются, ex: slf4j-log4j) и не хочется пихать их в Project Settings.

Хотелось бы, чтобы при запуске из-под idea можно было указать папки с этими conf и jar файлами В ДОПОЛНЕНИЕ к тому classpath, которые генерирует сама idea.
Идеальное место для этого диалог run/debug configuration (чтобы у run было свое окружение, у test свое), но там про поле VM Parameters сказано следующее:
NOTE: The -classpath option specified in this field overrides the classpath of the module.

Сейчас делаю так: смотрю какой classpath сгенерировала idea, используя его – пишу свой и указываю в VM Parameters, но это статически и навсегда (не учитывает изменения в Project Settings) и криво.

j2ee AppClient & IDEA

poison_bananas

August 16th, 2007

Уважаемые IDEA гуру - вопрос:

Имеется у меня проект, с EJB+JPA+Oracle+Glassfish server на сервере и Desktop Swing application на клиенте. Все работает, мне все нравится. Писалось все под Netbeans

В свете недавнего обсуждения новой версии IDEA решил попробовать IDEA в качестве IDE для своего проекта. Генерация JPA классов из БД - 5+! Намного лучше, чем netbeans, а вот создать AppClient (десктопный клиент для glassfish сервера) не получается у меня. Туториалов для IDEA тоже найти не могу...

Плиз хелп