Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 22.02.2012
Сообщений: 140

Запуск сервера на языке Java

19.10.2016, 23:47. Показов 1851. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, у меня есть сервер для защищенного обмена сообщениями который состоит из 2 файлов java. Не могу разобраться с помощью чего его можно скомпилировать для дальнейшей манипуляции с ним. К серверу будет обращаться мобильное приложения для шифрования сообщений.
Код main.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.websocket.EncodeException;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
 
 
@ServerEndpoint("/websocket")
public class main {
 
    private static Set<socketConection> peers = Collections.synchronizedSet(new HashSet<socketConection>());
 
    @OnMessage
    public String onMessage(String message, Session session) throws IOException, EncodeException, ParseException {
        System.out.println(message);
        JSONParser parser = new JSONParser();
        Object obj = parser.parse(message);
        JSONObject jsonObject = (JSONObject) obj;
        String type = (String) jsonObject.get("type");
        switch (type) {
            case "newMessage":
                JSONObject ms = new JSONObject();
                ms.put("type", "newMessage");
                ms.put("senderId", session.getId());
                ms.put("content", (String) jsonObject.get("content"));
                sendMessage(ms.toJSONString());
                break;
            case "newFile":
                JSONObject msg = new JSONObject();
                msg.put("type", "newFile");
                msg.put("senderId", session.getId());
                msg.put("content", (String) jsonObject.get("content"));
                msg.put("fileName", (String) jsonObject.get("fileName"));
                sendMessage(msg.toJSONString());
                break;
            case "newUser":
                String id = (String) jsonObject.get("id");
                String name = (String) jsonObject.get("name");
                for (socketConection peer : peers) {
                    if (id.equals(peer.session.getId())) {
                        peer.name = name;
                    }
                }
                JSONArray users = new JSONArray();
                JSONObject ob = new JSONObject();
                for (socketConection peer : peers) {
                    users.add(peer.toString());
                }
                ob.put("type", "newUser");
                ob.put("users", users);
                sendMessage(ob.toJSONString());
                break;
            default:
                sendMessage(message);
                break;
        }
        return null;
    }
 
    @OnOpen
    public void onOpen(Session session) throws IOException, EncodeException {
        JSONObject message = new JSONObject();
        message.put("type", "registration");
        message.put("id", session.getId());
        session.getBasicRemote().sendObject(message.toJSONString());
        socketConection con = new socketConection(session, "");
        peers.add(con);
    }
 
    @OnClose
    public void onClose(Session peer) throws IOException, EncodeException {
        socketConection tmp = null;
        for (socketConection p : peers) {
            if (p.session.getId().equals(peer.getId())) {
                tmp = new socketConection(p.session, p.name);
            }
        }
        peers.remove(tmp);
        JSONObject message = new JSONObject();
        message.put("type", "unregistered");
        message.put("id", peer.getId());
        sendMessage(message.toJSONString());
    }
 
    @OnError
    public void onError(Throwable t) throws IOException, EncodeException {
    }
 
    private void sendMessage(String mess) throws IOException, EncodeException {
        for (socketConection peer : peers) {
            peer.session.getBasicRemote().sendText(mess);
        }
    }
}
Код socketConection.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import javax.websocket.Session;
import org.json.simple.JSONObject;
 
public class socketConection {
 
    Session session;
    String name;
 
    public socketConection(Session session, String name) {
        this.session = session;
        this.name = name;
    }
 
    socketConection(Session session, String string) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
   
    public String toString() {
        JSONObject s = new JSONObject();
        s.put("id", this.session.getId());
        s.put("name", this.name);
        return s.toJSONString();
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2016, 23:47
Ответы с готовыми решениями:

Отправка массива с сервера Java на клиента Java android
Подскажите, пожалуйста, как объявить массив на сервере и затем передать этот массив на экран клиента?Сервер написан на java, клиент -java...

Запуск сервера
Здравствуйте, программисты. Появилась необходимость запустить локальный сервер на node (чего никогда как на апач не делал), нашел вот такое...

Запуск сервера
Коллеги Добрый День! Буду запускать сервер на предприятий что есть Есть сервер Fujitsu Primergy RX300 S7 на нем установлено 2xXeon...

8
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
20.10.2016, 11:50
Его можно скомпилировать с помощью компилятора языка java - javac.
Вот ознакомьтесь с этой темой - Все, что необходимо для использования и разработки приложений на Java
0
0 / 0 / 1
Регистрация: 22.02.2012
Сообщений: 140
20.10.2016, 17:17  [ТС]
Создал 2 эти java файлы. Через javac сделал следующее: javac -d ./classes *.java
Выдало очень много ошибок...
Кликните здесь для просмотра всего текста
socketConection.java:22: error: class main is public, should be declared in a file named main.java
public class main {
^
main.java:4: error: package javax.websocket does not exist
import javax.websocket.EncodeException;
^
main.java:5: error: package javax.websocket does not exist
import javax.websocket.OnClose;
^
main.java:6: error: package javax.websocket does not exist
import javax.websocket.OnError;
^
main.java:7: error: package javax.websocket does not exist
import javax.websocket.OnMessage;
^
main.java:8: error: package javax.websocket does not exist
import javax.websocket.OnOpen;
^
main.java:9: error: package javax.websocket does not exist
import javax.websocket.Session;
^
main.java:10: error: package javax.websocket.server does not exist
import javax.websocket.server.ServerEndpoint;
^
main.java:12: error: package org.json.simple does not exist
import org.json.simple.JSONArray;
^
main.java:13: error: package org.json.simple does not exist
import org.json.simple.JSONObject;
^
main.java:14: error: package org.json.simple.parser does not exist
import org.json.simple.parser.JSONParser;
^
main.java:15: error: package org.json.simple.parser does not exist
import org.json.simple.parser.ParseException;
^
main.java:21: error: cannot find symbol
@ServerEndpoint("/websocket")
^
symbol: class ServerEndpoint
.\socketConection.java:22: error: class main is public, should be declared in a file named main.java
public class main {
^
.\socketConection.java:4: error: package javax.websocket does not exist
import javax.websocket.EncodeException;
^
.\socketConection.java:5: error: package javax.websocket does not exist
import javax.websocket.OnClose;
^
.\socketConection.java:6: error: package javax.websocket does not exist
import javax.websocket.OnError;
^
.\socketConection.java:7: error: package javax.websocket does not exist
import javax.websocket.OnMessage;
^
.\socketConection.java:8: error: package javax.websocket does not exist
import javax.websocket.OnOpen;
^
.\socketConection.java:9: error: package javax.websocket does not exist
import javax.websocket.Session;
^
.\socketConection.java:10: error: package javax.websocket.server does not exist
import javax.websocket.server.ServerEndpoint;
^
.\socketConection.java:12: error: package org.json.simple does not exist
import org.json.simple.JSONArray;
^
.\socketConection.java:13: error: package org.json.simple does not exist
import org.json.simple.JSONObject;
^
.\socketConection.java:14: error: package org.json.simple.parser does not exist
import org.json.simple.parser.JSONParser;
^
.\socketConection.java:15: error: package org.json.simple.parser does not exist
import org.json.simple.parser.ParseException;
^
main.java:24: error: cannot access socketConection
private static Set<socketConection> peers = Collections.synchronizedSet(new HashSet<socketConection>());
^
bad source file: .\socketConection.java
file does not contain class socketConection
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
20.10.2016, 17:27
Fatallk, теперь вам нужно прочитать что выдал компилятор и исправить соответствующие ошибки.
например
Цитата Сообщение от Fatallk Посмотреть сообщение
error: class main is public, should be declared in a file named main.java
Говорит о том, что файл с классом main обязан называться main.java, а не socketConection.java
Цитата Сообщение от Fatallk Посмотреть сообщение
ocketConection.java:4: error: package javax.websocket does not exist
Говорит о том, что вы должны добавить библиотеку с пакетом javax.websocket в classpath при компиляции.
Java
1
javac -cp "javax.websocket-api-1.1.jar" ...
Скачать jar-ник можно, например, здесь - http://central.maven.org/maven... pi-1.1.jar
1
0 / 0 / 1
Регистрация: 22.02.2012
Сообщений: 140
20.10.2016, 18:27  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
Говорит о том, что вы должны добавить библиотеку с пакетом javax.websocket в classpath при компиляции.
Я вас правильно понял нужно добавить компилятору эти пакеты?
Java
1
javac -cp "javax.websocket-api-1.1.jar" -d ./classes *.java
Добавлено через 27 секунд
И так же поступить с библиотекой json ?

Добавлено через 33 минуты
Ошибки после добавления 2 библиотек.
Кликните здесь для просмотра всего текста

main.java:4: error: package javax.websocket does not exist
import javax.websocket.EncodeException;
^
main.java:5: error: package javax.websocket does not exist
import javax.websocket.OnClose;
^
main.java:6: error: package javax.websocket does not exist
import javax.websocket.OnError;
^
main.java:7: error: package javax.websocket does not exist
import javax.websocket.OnMessage;
^
main.java:8: error: package javax.websocket does not exist
import javax.websocket.OnOpen;
^
main.java:9: error: package javax.websocket does not exist
import javax.websocket.Session;
^
main.java:10: error: package javax.websocket.server does not exist
import javax.websocket.server.ServerEndpoint;
^
main.java:21: error: cannot find symbol
@ServerEndpoint("/websocket")
^
symbol: class ServerEndpoint
socketConection.java:2: error: package javax.websocket does not exist
import javax.websocket.Session;
^
main.java:27: error: cannot find symbol
public String onMessage(String message, Session session) throws IOException, EncodeException, ParseException {
^
symbol: class Session
location: class main
main.java:27: error: cannot find symbol
public String onMessage(String message, Session session) throws IOException, EncodeException, ParseException {
^
symbol: class EncodeException
location: class main
main.java:74: error: cannot find symbol
public void onOpen(Session session) throws IOException, EncodeException {
^
symbol: class Session
location: class main
main.java:74: error: cannot find symbol
public void onOpen(Session session) throws IOException, EncodeException {
^
symbol: class EncodeException
location: class main
main.java:84: error: cannot find symbol
public void onClose(Session peer) throws IOException, EncodeException {
^
symbol: class Session
location: class main
main.java:84: error: cannot find symbol
public void onClose(Session peer) throws IOException, EncodeException {
^
symbol: class EncodeException
location: class main
main.java:99: error: cannot find symbol
public void onError(Throwable t) throws IOException, EncodeException {
^
symbol: class EncodeException
location: class main
main.java:102: error: cannot find symbol
private void sendMessage(String mess) throws IOException, EncodeException {
^
symbol: class EncodeException
location: class main
socketConection.java:11: error: cannot find symbol
Session session;
^
symbol: class Session
location: class socketConection
socketConection.java:14: error: cannot find symbol
public socketConection(Session session, String name) {
^
symbol: class Session
location: class socketConection
main.java:26: error: cannot find symbol
@OnMessage
^
symbol: class OnMessage
location: class main
main.java:73: error: cannot find symbol
@OnOpen
^
symbol: class OnOpen
location: class main
main.java:83: error: cannot find symbol
@OnClose
^
symbol: class OnClose
location: class main
main.java:98: error: cannot find symbol
@OnError
^
symbol: class OnError
location: class main
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
23 errors
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
21.10.2016, 00:13
jar-ник то в текущей папке лежит? попробуйте указать полный путь
0
0 / 0 / 1
Регистрация: 22.02.2012
Сообщений: 140
22.10.2016, 00:08  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
jar-ник то в текущей папке лежит? попробуйте указать полный путь
Да два jar файла в папке, я сначала перехожу в папку где находятся файлы jar и java. И вот такие ошибки как в предыдущем посте.

Добавлено через 6 минут
Если 2 jar файла такой же порядок кода? (добавляем 2 jar и компилируем)

Добавлено через 21 час 52 минуты
Указал полный путь:
Java
1
javac -cp С:/server/javax.websocket-api-1.1.jar;C:/server/json-simple-1.1.jar C:/server/*.java
Результат: 23 ошибки...

Добавлено через 12 минут
Вот так создает файлы классов:
Java
1
javac -cp javax.websocket-api-1.1.jar;json-simple-1.1.jar *.java
Но командная строка пишет:
Кликните здесь для просмотра всего текста
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Что это значит?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.10.2016, 14:02
Fatallk,это warning а том, что вы используете raw типы, вместо generic.
Можете не обращать внимания, или добавить -Xlint:unchecked в параметры javac, чтобы посмотреть детальнее
0
0 / 0 / 1
Регистрация: 22.02.2012
Сообщений: 140
23.10.2016, 17:08  [ТС]
Как поступать с классами если их два, я так понимаю их нужно запускать сразу двое т.к. там зависимость. Не подскажете синтаксис в командной строке?

Добавлено через 23 часа 48 минут
Ошибка
Кликните здесь для просмотра всего текста
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
при запуске класса main.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2016, 17:08
Помогаю со студенческими работами здесь

запуск сервера 1с
всем привет. возникла неожиданная проблема &quot;откуда не ждали&quot;. не могу запустить сервер 1с. при запуске рагент.ехе запускается...

Запуск сервера
# lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 16-FEB-2012 16:54:25 Добрый день! Подскажите какой командой...

Запуск сервера
Приветствую! Не давно занялся Django. Нашел уроки по начальным знаниям. Все сделал как там было написано. Попытался включить...

Запуск сервера
Здравствуйте. Я написал простейший сервер на C++, который отправляет клиенту дату и время, но я не могу понять, как мне его запустить?...

Компиляция и запуск программ на языке Pascal из cmd
Здравствуйте, программисты. Блуждал по форумам, но ответа так и не нашел. В общем, есть у меня какой-то .pas файл. Находится он в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru