Jersey 1.12
JSON形式でやり取りするJavaのWebサービスを作る必要ができたので久々にJerseyを使う。
現在はバージョン1.12が最新のようです。pom.xmlに依存関係を記述
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.12</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.12</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.12</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.12</version> </dependency>
デプロイするとサーバで以下のエラーが出た
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)
「com.sun.jersey.spi.container.servlet.ServletContainer」が無いと言われる。
バージョン1.5と違って上の依存関係ではServletContainerが含まれないようなので調べてみると
「jersey-bundle.jar」に入ってるようなので依存関係に追記
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-bundle</artifactId> <version>1.12</version> </dependency>