2014-02-07编辑:Eclipse的月神是在这里,和Tomcat的8支持包含在捆绑的WTP:)快乐的日子!
Tomcat 8仍在开发中,但你可以在这里得到它.现在主Apache Tomcat页面上有一个RC版本.更新2/27/14:8现已发布,并为WTP构建适配器,尚未集成到eclipse捆绑包中.不久!
但是在Eclipse Kepler中,Tomcat 8的添加服务器列表中没有受支持的适配器.Tomcat 7适配器不起作用,并且它看起来不像在"安装新扩展"中要下载它的新扩展名对话.
我唯一的选择是让它(Tomcat 8)在Eclipse之外的本地运行,并且可能将远程调试器挂钩到它中以便逐步执行代码?这甚至适用于Eclipse Kepler + Tomcat 8吗?IntelliJ IDEA 12无法在我进入该路径的30分钟内完成.
如果你想知道我为什么要这样做,我正在玩Spring 4.0.0.M1和4.0.0.M2 WebSocket的东西.他们(根据Rossen Stoyanchev的Spring 4.0 博文和示例)使用JSR-356,它在Tomcat 8中实现,理论上可以在某些时候反向移植到Tomcat 7.
回答更广泛的问题"如何轻松获得Spring 4 WebSocket支持的开发环境?" 会很好,但知道如何将不支持的Web服务器插入Eclipse仍然会很好.
干杯,E
**更新8/7/13 - Rossen Stoyanchev更新了Spring 4.0.0.M2博客并添加了一些jpda智慧并分享了,是的,他正在使用远程调试:
也就是说,在Eclipse中调试Tomcat 8并不是很难.只需将bin/startup.sh中的最后一行更改为(注意添加"jpda"):
Run Code Online (Sandbox Code Playgroud)exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"Eclipse内部为localhost端口80创建远程调试配置,在启动Tomcat后启动它,并且可以在源代码中放置断点.
谢谢Rossen!
**更新9/29/13 - Eclipse Kepler SR1刚到,但唉!Tomcat 8没有WTP支持.Tomcat 8最多可达RC3.
**更新12/5/13
我正在尝试运行spring web socket的演示,但无法完全测试它.我使用的是java 7和tomcat 7.0.50.我在服务器启动时没有出现任何错误,但是当我打开网页时,js与它建立了连接,我找不到404页面.我不确定我是否缺少任何配置以使其运行,我怎么能从js端连接它.
我有以下xml文件:
<beans ....>
<context:annotation-config />
<websocket:message-broker
application-destination-prefix="/app">
<websocket:stomp-endpoint path="/hello">
<websocket:sockjs />
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic" />
</websocket:message-broker>
</beans>
Run Code Online (Sandbox Code Playgroud)
我的控制器类是:
@Controller
public class SwsService {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
return new Greeting("Hello, " + message.getName() + "!");
}
public String getGreeting() {
return "Hello, you are in!";
}
}
Run Code Online (Sandbox Code Playgroud)
我称之为的js是:
var sock = new SockJS("/hello");
sock.onopen = function () {
console.log("open");
};
sock.onclose = function () {
console.log("closed");
};
sock.onmessage = function …Run Code Online (Sandbox Code Playgroud) 我使用Netbeans创建了一个Spring MVC 3.0应用程序.我有一个简单的控制器和JSP视图.除了不呈现的图像之外,JSP视图正确显示.我的目录结构如下所示:

在我的Home.jsp页面中,未呈现的图像被引用如下:
<img src="Images/face.png" />
Run Code Online (Sandbox Code Playgroud)
我已经验证face.png位于Images目录中.那么为什么它不会出现在浏览器中呢?在Spring MVC中,我应该在哪里放置JSP视图引用的文件,如图像,CSS,JS等?
尝试使用sockjs在套接字上使用Spring 4 WebSocket和STOMP.我遇到了一个问题.
我的配置:
websocket.xml - spring上下文的一部分
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/ws">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>
Run Code Online (Sandbox Code Playgroud)
控制器代码:
@MessageMapping("/ws")
@SendTo("/topic/ws")
public AjaxResponse hello() throws Exception {
AjaxResponse ajaxResponse = new AjaxResponse();
ajaxResponse.setSuccess(true);
ajaxResponse.addSuccessMessage("WEB SOCKET!!! HELL YEAH!");
return ajaxResponse;
}
Run Code Online (Sandbox Code Playgroud)
客户端:
var socket = new SockJS("<c:url value='/ws'/>");
var stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
alert('Connected: ' + frame);
stompClient.send("/app/ws", {}, {});
stompClient.subscribe('/topic/ws', function(response){
alert(response.success);
});
});
Run Code Online (Sandbox Code Playgroud)
输出:
Opening Web Socket... stomp.js:130
GET http://localhost:8080/ws/info 404 (Not Found) sockjs-0.3.js:807
Whoops! Lost connection to undefined …Run Code Online (Sandbox Code Playgroud)