Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 133
1

Подключение к сервису

23.07.2020, 20:34. Показов 512. Ответов 2

Author24 — интернет-сервис помощи студентам
Создал свой REST сервер и Deploy его на heroku, создал на нем websocket

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
 
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }
 
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/message").withSockJS();
    }
Java
1
2
3
4
5
6
    @MessageMapping("/hello")
    @SendTo("/topic/greeting")
    public Message greetings(Message message) {
        System.out.println("websocket");
         return  messageRepo.save(message);
    }
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
@Entity
public class Message {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    private String name;
    private String text;
 
    @Override
    public String toString() {
        return "Message{" +
                "Id=" + id +
                ", name='" + name + '\'' +
                ", text='" + text + '\'' +
                '}';
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setText(String text) {
        this.text = text;
    }
 
    public String getName() {
        return name;
    }
 
    public String getText() {
        return text;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public Long getId(){
        return id;
    }
}
Так же создал на стороне отдельное приложение в idea, что бы протестировать его работу

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void connect() throws InterruptedException {
 
    Request request = new Request.Builder()
            .url("wss://myserver-ioan.herokuapp.com/message")
            .build();
 
    OkHttpClient client = new OkHttpClient();
    WebSocket ws = client.newWebSocket(request, new EchoWebSocketListener());
 
 
 
    client.dispatcher().executorService().shutdown();
 
    }
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
class EchoWebSocketListener extends WebSocketListener {
    private static final int NORMAL_CLOSURE_STATUS = 1000;
    private JsonAdapter<Message> adapter;
 
    EchoWebSocketListener()
    {
        Moshi moshi = new Moshi.Builder().build();
        adapter = moshi.adapter(Message.class);
    }
 
    @Override
    public void onOpen(WebSocket webSocket, Response response) {
        super.onOpen(webSocket, response);
        System.out.println("open");
    }
 
 
    @Override
    public void onMessage(WebSocket webSocket, String text) {
            System.out.println("onMessage " + text);
    }
 
    @Override
    public void onClosing(WebSocket webSocket, int code, String reason) {
        webSocket.close(NORMAL_CLOSURE_STATUS, null);
        System.out.println("on Close ");
    }
    @Override
    public void onFailure(WebSocket webSocket, Throwable t, Response response) {
        System.out.println("on Failure " + t.getMessage() + " " + response.toString());
    }
}
Но при попытке подключится вылазит постоянно ошибка
Код
on Failure Expected HTTP 101 response but was '500 ' Response{protocol=http/1.1, code=500, message=, url=https://myserver-ioan.herokuapp.com/message}
И сам сайт говорит
Код
There was an unexpected error (type=Internal Server Error, status=500).
Failed to convert value of type 'java.lang.String' to required type 'com.io.messages.domain.Message'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.io.messages.domain.Message': no matching editors or conversion strategy found
Облазил кучу сайтов и вроде бы все делал пр туториалам, но все равно ничего не работает, в чем проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2020, 20:34
Ответы с готовыми решениями:

Обращение к сервису
нашел такую статью с описанием интеграции Спринг и Хибернейт...

Обратиться к сервису из браузера
Здравствуйте, создал по уроку сервис, хостится он на консольном приложении , обращаюсь к сервису...

Доступ к web-сервису
Всем привет! Похожая тема в форуме есть, но немного не то. Собственно в чем вопрос. Есть...

Отказано в доступе к сервису
Добрый день. Ранее для определенных задач был написан собственный сервис (наследник от TService)....

2
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
23.07.2020, 20:56 2
стэктрейс где?

Добавлено через 2 минуты
ну и вообще, бери пример, делай, как там https://spring.io/guides/gs/me... websocket/
0
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 133
23.07.2020, 21:11  [ТС] 3
xoraxax, А вижу только разницу в том, что там создается браузерный клиент что бы ловить вебсокет, но мне он не нужен в чем ещё разница не вижу
0
23.07.2020, 21:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2020, 21:11
Помогаю со студенческими работами здесь

Автоматическое переподключение к сервису
Как можно сделать автоматическое переподключение к серверу WCF с клиента, если соединение полностью...

Запрос к JAVA сервису
Добрый день! Интересует вопрос, почему при angular запросе к сервису java он выдаёт &quot;Запрос из...

Доступ к сервису из Php
Здравствуйте! Мне нужно делать WCF сервис доступным из под PHP. Причем необходимо, чтобы...

Принять файл по веб-сервису
Привет задача: необходимо принять файлв через веб -сервис, с возможностью дальнейшей работы с...

Как получить доступ к сервису?
У меня в приложении есть сервис, который запускается вместе с приложением. Также я создал класс,...

Функции аналогичные CashBack сервису
Здравствуйте. Нужна ваша помощь, может знаете похожую тему... Нужно написать код который можно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru