使用maven来部署web
socket(
JSR356)的时候,由于
理解不清晰,碰到了很久404找不到的问题。
现在总结一下,因为是新规范,所以要求较新的jdk7以及tomcat7.0.47以上,但我碰到了更多的麻烦,基本有两点:
1、先使用tomcat-7.0.55的
版本自带
例子(examples),都无法使用websocket
接口,经排查,由于本机装了两个版本的jdk,虽然java命令是1.7版本(默认使用
system32中的java),但是JAVA_HOME却是1.6的版本。所以,将JAVA_HOME改为1.7版本jdk,tomcat的例子就可以跑通了。
2、确定了tomcat的支持,但自己的例子不能跑通,原因是,我的maven引用了maven repository的websocket-api,只有接口,没有实现。所以将类引用改为javaee-api,本地例子也就能跑通了。
class="java" name="code"><dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
关于,如何写websocket,可以参见网上的教程。下面这个不确定是否一定需要(因为按理默认就是jdk1.7),但保险起见还是在<build>中加了:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
最后要感谢这个例子提供的帮助:http://www.oschina.net/translate/java-ee-html5-websocket-example