私はEclipse+Glassfishを使用して、Eclipseから最初のWebサービスをデプロイしました。私は次のクラスを持っています:
package com.restfully.shop.services;
import javax.ws.rs.core.*;
import java.util.*;
public class ShoppingApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
private Set<Class<?>> empty = new HashSet<Class<?>>();
public ShoppingApplication() {
singletons.add(new CustomerResource());
}
@Override
public Set<Class<?>> getClasses() {
return empty;
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
および次のweb.xml:
<?xml version="1.0" ?>
<web-app>
<servlet>
<servlet-name>Rest</servlet-name>
<servlet-class>com.restfully.shop.services.ShoppingApplication</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Rest</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
ジャージがすでにglassfishに含まれていることを読んでいる限り、idはWebプロジェクトのlibフォルダーに何も入れませんでした。
しかし、ブラウザでアプリを起動すると、次のようになります。
Exception
javax.servlet.ServletException: PWC1403: Class com.restfully.shop.services.ShoppingApplication is not a Servlet
root cause
java.lang.ClassCastException: com.restfully.shop.services.ShoppingApplication cannot be cast to javax.servlet.Servlet
Glassfishのバージョンは3.1.1です
また、java.io.URLを介してサービスに接続する単純なクライアントを作成しましたが、それは次のようになります。
404
Location:null
サービスの何が問題になっていますか?どうすれば修正できますか?+非常に高く評価されます-サービスがどのようにテストされたか??? それらのURL接続を使用するテストクラスを作成するのは常にそうですか、それともWebサービスをテストする標準的な方法はありますか?