原工程是一個基於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