java springboot2.0 中使用websocket报错

在java中使用websocket报错,主要错误如下。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-06-28 19:15:23.482 ERROR 9116 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com. websocket.RealDataWebSocketServer

错误详情:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-06-28 19:15:23.482 ERROR 9116 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com. websocket.RealDataWebSocketServer
	at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.java:158) ~[spring-websocket-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoints(ServerEndpointExporter.java:133) ~[spring-websocket-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.web.socket.server.standard.ServerEndpointExporter.afterSingletonsInstantiated(ServerEndpointExporter.java:111) ~[spring-websocket-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:776) ~[spring-beans-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) ~[spring-context-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) [spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242) [spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230) [spring-boot-2.0.7.RELEASE.jar:2.0.7.RELEASE]
	at com. EnergyMonitoringSysApplication.main(EnergyMonitoringSysApplication.java:19) [classes/:na]
Caused by: javax.websocket.DeploymentException: Parameters annotated with @PathParam may only be Strings, Java primitives or a boxed version thereof
	at org.apache.tomcat.websocket.pojo.PojoMethodMapping.getPathParams(PojoMethodMapping.java:309) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	at org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:185) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:147) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:234) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.java:155) ~[spring-websocket-5.0.11.RELEASE.jar:5.0.11.RELEASE]
	... 12 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to coerce value [0] to type [java.math.BigInteger]. That type is not supported.
	at org.apache.tomcat.websocket.Util.coerceToType(Util.java:327) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	at org.apache.tomcat.websocket.pojo.PojoMethodMapping.getPathParams(PojoMethodMapping.java:307) ~[tomcat-embed-websocket-8.5.35.jar:8.5.35]
	... 16 common frames omitted

我这个问题产生的原因是因为我在websockt类中,使用onopen注解方法的时候,里面设置的参数类型有问题。我因为项目中都是使用的BigInteger,所以给onopen方法也设置了BigInteger参数,导致我报了以上错误。

我的代码,使用下面代码ide不会报错,但是编译的时候会报上面错误。

    public void onOpen(Session session, @PathParam("department") BigInteger department) {

最后我改成了Integer,问题解决

    public void onOpen(Session session, @PathParam("department") Integer department) {

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值