- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如何将字段自动连接到@ServerEndpoint。以下不起作用。
@Component
@ServerEndpoint("/ws")
public class MyWebSocket {
@Autowired
private ObjectMapper objectMapper;
}
但是,如果我删除 @ServerEndpoint
,它会正常工作。
我正在使用 spring 3.2.1 和 Java 7
最佳答案
看来您正在尝试集成 Spring 和 Java WebSocket API。被@Component
注解的类被注册到一个spring bean中,它的实例默认被spring管理为单例。但是,由 @ServerEndpoint
注释的类注册到服务器端 WebSocket 端点,每次相应端点的 WebSocket 连接到服务器时,它的实例由 JWA 实现创建和管理。因此,您不能同时使用这两个注释。
也许最简单的解决方法是使用 CDI 而不是 Spring。当然,你的服务器要支持CDI。
@ServerEndpoint("/ws")
public class MyWebSocket {
@Inject
private ObjectMapper objectMapper;
}
如果这对您不可行,您可以使用自己的ServerEndpointConfig.Configurator 版本来拦截用ServerEndpoint
注释的类的实例化过程。 .然后,您可以自己实例化该类并使用 BeanFactory
或 ApplicationContext
的实例 Autowiring 它。实际上,这种用法已经有类似的答案。参见 that question和马丁斯的 working example (特别是,用于与 Spring 集成的定制 Configurator)。
关于java - @ServerEndpoint 和@Autowired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306854/
我使用 GF 4 作为 JavaEE 服务器。 这就是我对 servlet 处理的理解:有一个线程池,当请求到来时,这个池中的一个线程被用来处理请求。之后,线程被放回池中。 根据上面的信息,我想(我不
你好吗?我有一个问题,我一直在寻找明确的答案,但没有成功,因此我来这里寻求您的帮助! 一些信息:Java Web 项目,使用 JAVA 8、Tomcat 8.5.23 和 IntelliJ 作为我的
我正在使用 WebSockets 开发一个简单的应用程序。客户端可以发送输入文本,而服务器端是通过注释为 ServerEndpoint 的 Java 类实现的。在这里,接收到的输入文本被解码并发送到所
如何将字段自动连接到@ServerEndpoint。以下不起作用。 @Component @ServerEndpoint("/ws") public class MyWebSocket {
我可以将 websocket 端点映射到一组静态上下文或带有 uri 变量的上下文:@ServerEndpoint("/{name}") 它将匹配/anything 但不匹配/any/thing。如何
灵感来自 this thread我正在尝试这样做: @ServerEndpoint(... configurator = GetHttpSessionConfigurator.class) 没有@Se
很多人认为我使用 IDE,所以现在让我声明一下:我不使用任何 IDE。 我获取了以下 Java 源代码,将其编译为 Echo.class,然后通过编写 jar -cvf Echo.war Echo 创
我有一些 Soap、REST servlet,现在有一个 WebSocket: @ServerEndpoint("/game") public class WebSocketgame{ ... } 我
单个 ServerEndpoints 线程安全还是属于在给定时间与其交互的所有客户端? 或者用另一种方式问同样的问题: ServerEndpoint 类中的全局对象是否存在产生并发问题的危险,like
我有一个嵌入式 tomcat 正在运行,我正在尝试以编程方式设置 websockets,不能使用注释,因为我动态获取上下文路径列表。使用 Java 8 和 Tomcat 7。 下面是我使用的代码, 嵌
我已经创建了一个 websocket ServerEndPoint。websocket 服务器工作正常。如何在 Tomcat 启动时调用 websocket ServerEndPoint 类。这是为了
比如我有一个房间 public class Room { private int id; private Set users; } 所以我希望它成为我的 websocket 应用程序的端点
我有一个网络套接字@ServerEndpoint,它有一个我的过滤器监听的注释。但我的过滤器从未被调用(我的过滤器在普通 JAX-RS 资源上调用) 如何让我的过滤器被 Web 套接字端点调用? @S
意味着,它将从本地网络中的许多用户那里获得连接。我怎样才能获得每个连接的IP地址?我使用 JSR356。 @ServerEndpoint(value = "/ws/example") public c
我刚刚遇到以下问题,但无法找到答案: @ServerEndpoint("/websocket/server") public class ServerUpdateEndpoint implements
我正在尝试在 @ServerEndpoint 类中注入(inject)由 @Repository 类注释的内容。但是当我尝试调用存储库方法时,它返回 null。该包中的另一个注入(inject)的 b
我需要访问 HttpServletRequest 属性以获取 javax.servlet.request.X509Certificate,其中包含用于 TLS 的 X509Certificate 证书
当我使用 jersey 开发一个 rest api 应用程序时,我发现我需要为特定的业务逻辑片段实现一个 websocket 端点。 我在我的项目中使用maven,所以我添加了javax:javaee
我在循环中使用 RemoteEndpoint.Async 的 sendText() 方法将一些数据发送到 ClientEndPoint。由于数据是从 ServerEndpoint 异步发送的,因此 C
问题:@ServerEndpoint 类中的@Autowired beans 为空 如何确保下面的这个 WebSocketController 类将被注入(inject) bean,即如何让它由 Sp
我是一名优秀的程序员,十分优秀!