我在Tomcat 8上使用Spring 4 WebSocket,我有以下配置:
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/notify">
<websocket:sockjs />
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic" />
</websocket:message-broker>
我的Spring控制器具有以下方法:
@MessageMapping("/notify/{client}")
public void pushMessage(@DestinationVariable long client, String message) {
System.out.println("Send " + message + " to " + client);
template.convertAndSend("/topic/push/" + client, message);
}
所以我在这里尝试做的是,如果客户端1想要向客户端2发送消息,他将使用/app/通知/2
。然后,Spring控制器将消息推送到主题/主题/推送/2
。
我在客户端中编写了以下代码:
var id = 1;
var sock = new SockJS('/project/notify');
var client = Stomp.over(sock);
client.connect({}, function() {
client.subscribe('/topic/push/' + id, function(message) {
console.log(message);
});
});
连接工作正常,/project
只是我的应用程序的上下文根。
我的客户端中还有以下代码用于发送消息:
client.send('/app/notify/' + id, {}, "test");
两个变量(客户端
和id
)都是可访问的,我没有从这部分代码中得到任何错误,我可以在我的控制台中看到消息实际上是发送的:
>>> SEND
destination:/app/notify/1
content-length:4
test
但是,系统。出来println()
语句在我的控制器中从未执行过,因此我假设控制器映射有问题,或者我没有正确使用目标endpoint(我不明白为什么我必须在这里指定应用程序前缀,但在连接到该endpoint时却不必指定)。
当使用简单的字符串
消息作为有效负载时,它似乎无法映射。当我将消息
包装到一个对象中时,它就可以正常工作了。
编辑:如评论中所述,Spring已经提供了一个名为TextMessage
类的消息包装器。
前端将这个json发送到我的API 控制器:
我对来自JMSMessageProperties类的“”头有问题,或者在我看来是这样,它导致了以下错误 我知道这是由于类中的变量造成的,下面的方法对此负责 和类ich捕获并将其记录为WARN 我知道这只是一个警告,但是我们希望保持日志干净,所以我们的想法是不要记录这个特定的WARN或尝试不传递。我已经基于创建了一个自定义映射器并使用它,但是正如你在starckTrace中看到的,默认映射器仍在使用
我遵循Microsoft的指导,通过Azure ADB2C启用Dynamics Portal访问。基础设施已经启动并运行良好。我使用的是"登录"政策。但是,我在声明映射功能上遇到了麻烦。 我已经根据下面链接的文档中的说明配置了以下站点设置。 身份验证/OpenIdConnect/B2C/RegistrationClaimsMapping身份验证/OpenIdConnect/B2C/LoginCla
我有一个包含240个项目的列表,使用完整发送此列表需要1个多小时。 所以我跟着这篇文章同时发送,以尽量减少响应时间,但是里面的代码永远不会执行:
问题内容: 我一直在研究一个非常简单的JPA示例,并试图将其调整为现有数据库。但是我无法克服这个错误。(下面。)这只是我没看到的一些简单的事情。 在下面的DocumentManager类中(一个简单的servlet,因为这是我的目标),它做了两件事: 插入一行 返回所有行 插入效果很好-一切都很好。问题出在检索上。我尝试了各种参数值,但没有走运,并且尝试了各种更复杂的类注释(如列类型),但都没有成
当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义