मैं वसंत के साथ एक वेबसाइकिल एंडपॉइंट बनाने की कोशिश कर रहा हूं। लेकिन जब भी मैं ग्राहक छोर से कनेक्ट करने के लिए कोशिश कर रहा हूँ, मैं 404. मिल मैं भीस्प्रिंग वेबस्केट 404 नहीं मिला
@ServerEndpoint(value = "/websocket")
जो अच्छा काम करता है के साथ एक जावा कार्यान्वयन है। नीचे मेरे वसंत कार्यान्वयन का कोड है जो काम नहीं कर रहा है। मुझसे यहां क्या गलत हो रहा है?
package com.tlab.endpoint;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(socketHandler(),"/socket");;
}
@Bean
public WebSocketHandler socketHandler() {
return new SocketHandler();
}
}
नीचे
हैंडलर
package com.tlab.endpoint;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
public class SocketHandler extends TextWebSocketHandler {
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) {
}
}
क्लाइंट पक्ष कोड मैंने कोशिश की सभी/बाकी/सॉकेट के साथ हैंडलर
var websocket = new WebSocket("ws://localhost:8080/tsim/socket");
var websocket = new WebSocket("ws://localhost:8080/tsim/socket");
var websocket = new WebSocket("ws://localhost:8080/tsim/rest/socket");
में/सॉकेट के साथ संभव संयोजन
diff में है हैंडलर में
var websocket = new WebSocket("ws://localhost:8080/tsim/rest/socket");
जहां tsim मेरा संदर्भ है। सब कुछ नीचे त्रुटि
WebSocket connection to 'ws://localhost:8080/tsim/socket' failed: Error during WebSocket handshake: Unexpected response code: 404.
मुझे कोई संकलन और तैनाती त्रुटियां नहीं मिलीं। मैंने टॉमकैट 8.0 का उपयोग किया और नीचे प्रेषक सर्वलेट कॉन्फ़िगरेशन है।
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:websocket="http://www.springframework.org/schema/websocket"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.2.xsd
http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/websocket
http://www.springframework.org/schema/websocket/spring-websocket.xsd"
>
<import resource="classpath*:web-db-spring.xml"/>
<context:component-scan base-package="com.traderslab.nseb,com.tlab.endpoint"/>
<aop:aspectj-autoproxy/>
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="prefixJson" value="false"/>
<property name="supportedMediaTypes" value="application/json"/>
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="serializationInclusion" value="NON_NULL"/>
</bean>
</property>
</bean>
<bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
<mvc:default-servlet-handler/>
</beans>
नीचे मेरी web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/rest/</url-pattern>
</servlet-mapping>
आप 'दिखाने ws: // स्थानीय होस्ट: 8080/Tsim/अपने उदाहरण में socket' लेकिन त्रुटि संदेश दिखाता है 'ws: // localhost: 8080/ट्रेडसिम/सॉकेट'। यह 'tsim' या 'ट्रेडसिम' है? – Bogdan
मैंने अलग-अलग कोशिश की .. वह भाग जो मैंने कवर किया है उसे इसे सैम या ट्रेडसिम के रूप में ले जाना है .. भ्रम से बचने के लिए मैं इसे संपादित करूंगा – anandaravindan