原工程是一个基于websocket的maven工程(源工程:http://www.cnblogs.com/xdp-gacl/p/5193279.html),把工程导入eclipse后报错。
解决方法如下:
1.将webapp下的web.xml文件
替换为:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name></web-app>
2.找到文件.settings\org.eclipse.wst.common.project.facet.core.xml(可以直接从文件夹改,也可以从Navigator改),将 版本改成为3.0,
即改为:<installed facet="jst.web" version="3.0"/>
3.Problems中一般的warning右键选Quick Fix,再按提示确定就OK;然后,右键项目->Maven->update Project
4.报错如下:
JAX-RS (REST Web Services) 2.0 can not be installed : One or more constraints have not been satisfied. JAX-RS (REST Web Services) 2.0 requires Java 1.6 or newer. 这时候,在pom.xml文件的<build>页签之间加:<build>
<finalName>JavaWebSocket</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins></build>
改完后右键项目->Maven->update Project,反正我是每改一项都update一下。前面几项改完就没有报错了。
(感谢原博主:http://www.cnblogs.com/jebeljebel/p/4421098.html)
5.运行程序时浏览器报错:
找错找了很久,最后发现是路径问题,将url改为:
websocket = new WebSocket("ws://localhost:8080/JavaWebSocket/websocket");
即可。
最终效果:
这里还有一个比较好的示范工程:
http://www.oschina.net/translate/java-ee-html5-websocket-example?p=3#comments