我使用 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 服务?