前言

我采用的spring框架做的,主要用于IOC AOP ,spring之前采用的2.0版本。(2.0版本出错!下面有解释); 要实现websocket 实现后台主动与JSP发送数据。

具体操作

在websocket类中 注解添加如下:
import org.springframework.web.socket.server.standard.SpringConfigurator;
//注解规定了访问的URL
@ServerEndpoint(value="/websocket",configurator = SpringConfigurator.class)
public class WebSocketServer {} 其中configurator = SpringConfigurator.class 这个表示让spring能扫描到该类,不加的话tomcat会自动启动该websocket类! 加上那句注解之后呢,就可以在websocket类中实现属性注入了。可以引入别的类了,以及使用被的类的方法了。 但是,出现了如下错误! java.lang.NoSuchMethodError: org.springframework.web.context.ContextLoader.getCurrentWebApplicationC 这个错误是什么呢? 但是也可以采用另外一种方法引入xml,进行获取要使用的实例: import org.springframework.web.context.ContextLoader; WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
ServletContext servletContext = webApplicationContext.getServletContext(); 其中 ContextLoader.getCurrentWebApplicationContext(); 是引入的是spring.jar包中的(core包一般有的把core省略了,包含很多其他的方法,如hibernate方法), 这个方法ContextLoader.getCurrentWebApplicationContext(); 在spring.jar 2.0版本中不存在的,我翻了翻jar包仓库,发现到2.5.6版本sec03中有这个方法了 我是在这个地址看到的spring.jar (2.5.6)包的!http://repo.spring.io/release/org/springframework/spring/2.5.6.SEC03/ 之后就可以把spring2.0包去掉了,换上这个包2.5.6sec03就可以了。 (注意mysql服务要确认开启!别到时候hibernate不好使了。)

关于websocket 采用注解指明URL,采用tomcat启动的方式来做:


除了spring2.5.6.jar包还有如下包: javax.websocket-api-1.1.jar spring-2.5.6.Sec03.jar spring-websocket-4.3.0.RELEASE.jar tomcat7-websocket-7.0.62.jar

总结

package service;

import org.springframework.web.socket.server.standard.SpringConfigurator;
import pojo.Goods;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.CloseReason;
import javax.websocket.EndpointConfig;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint; //注解规定了访问的URL
@ServerEndpoint(value="/websocket",configurator = SpringConfigurator.class)
public class WebSocketServer { //属性注入
private Goods goods;
private GoodsService goodsService; public void setGoods(Goods goods) {
this.goods = goods;
} public void setGoodsService(GoodsService goodsService) {
this.goodsService = goodsService;
} public WebSocketServer(){
System.out.println("Socket Constructor!");
} ..........
} javax.websocket-api-1.1.jar spring-2.5.6.Sec03.jar spring-websocket-4.3.0.RELEASE.jar tomcat7-websocket-7.0.62.jar
this passage from https://www.cnblogs.com/zhaocundang/p/10057305.html

websocket采用tomcat方式,IOC类对象无法注入的解决方案的更多相关文章

  1. Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域

    Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...

  2. Spring IOC - 控制反转(依赖注入) - 入门案例 - 获取对象的方式 - 别名标签

    1. IOC - 控制反转(依赖注入) 所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交 由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周 ...

  3. 使用tomcat方式实现websocket即时通讯服务端讲解

    使用tomcat方式实现websocket即时通讯服务端讲解 第一种方案:使用Tomcat的方式实现 tomcat版本要求:tomcat7.0+.需要支持Javaee7 导入javeee-api的ja ...

  4. JavaScript 创建类/对象的几种方式

    在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...

  5. DELPHI XE2 采用 JSON 的方式来序列化对象

    DELPHI XE2 采用 JSON 的方式来序列化对象 以下代码测试通过.问题是里面的中文,在反序列化后是乱码. 1. 序列化对象为字符串,Subject 里面的中文看起来正常,仍然是中文: 2.  ...

  6. Objective-C 【类对象及SEL存储方式】

    ------------------------------------------- 类的本质--类对象 一段代码: #import <Foundation/Foundation.h> ...

  7. java采用zip方式实现String的压缩和解压缩CompressStringUtil类

    CompressStringUtil类:不多说,直接贴代码: /** * 压缩 * * @param paramString * @return */ public static final byte ...

  8. spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象

    相关 知识 >>> 相关 练习 >>> 实现要求: 在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXm ...

  9. Android通过类对象的方式实现JSON数据的解析

    1.通过主Activity的Button按钮实现数据的解析 public class MainActivity extends Activity { //定义一个包含Json格式的字符对象 priva ...

随机推荐

  1. BZOJ2647 : [Neerc2011]Journey

    $|x|+|y|=\max(x+y,x-y,-x+y,-x-y)$,设$f[i][j]$表示在$(0,0)$,朝向方向$j$,执行第$i$条指令后的信息: $cir$:是否陷入循环 $d$:朝向 $x ...

  2. 3ds max学习笔记-- 复合对象运算

    1,ProBoolean(超级布尔) 栗子: 新建一长方体,两个圆柱体,如下: 选择底部长方体,进入[复合对象],修改[操作],单击[拾取操作对象B],点击圆柱: 效果如下,线面较多: 高级布尔效果图 ...

  3. Listener(2)—案例

    ServletContext的事件监听器,创建:当前web应用被加载(或重新加载)到服务器中,销毁:当前web应用被卸载 import javax.servlet.ServletContextEven ...

  4. ESP8266 NOOS SDK libat.a Functions

    at_baseCmd.o custom_infoat_baseCmd.o at_exeCmdNullat_baseCmd.o at_setupCmdEat_baseCmd.o at_exeCmdRst ...

  5. SharePoint 读取内容的插件之SharepointPlus

    前言 最近,一直在前端和SharePoint进行交互,然后,发现一个好用的插件,分享给大家. 首先,需要添加一个引用,如下图: 当然,我这里只是举个例子,亲们一定要去下载这个库,然后传到服务器或者文档 ...

  6. EChart配置

    EChart配置 https://www.jianshu.com/p/3cf80b96a65d

  7. Gradle sync failed: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1/lib/plugins/gradle-diagnostics-2.14.1.jar (No such file or directory) Consult IDE log for more details (Help | Sh

    上面出现的错误是,我从Android Studio 2.2 升级到2.3后,出现的问题, 找到方法: http://stackoverflow.com/questions/30526613/andro ...

  8. 重新认识 Delphi

    一.彩蛋 1.打开 Delphi,选择"Help" –> "About-"菜单,出现 About 对话框. 2.在 About 窗口上按住 Alt 键盘, ...

  9. 【算法随记】Canny边缘检测算法实现和优化分析。

    以前的博文大部分都写的非常详细,有很多分析过程,不过写起来确实很累人,一般一篇好的文章要整理个三四天,但是,时间越来越紧张,后续的一些算法可能就以随记的方式,把实现过程的一些比较容易出错和有价值的细节 ...

  10. AS使用lombok注解报错:Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor.

    Rebuild时报错信息如下所示: Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation process ...