0
我已經被賦予了在另一個開發者所做的服務層中實現我的服務的任務,但是我找不到正確的方法來完成它。
最初我班上一個Tomcat服務器上獨立工作,這裏是一個剪斷:在一個項目中使用javax.ws.rs符號集成一個擴展HttpServlet的類
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class fileServlet extends HttpServlet {
@Override
public void doGet(@Context HttpServletRequest request,@Context HttpServletResponse response)
throws IOException, ServletException {
OutputStream output = response.getOutputStream();
String queryString = request.getQueryString();
//etcetera....
這裏被其他人提出的類剪斷:
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("/CustomerService")
public class SolrService {
@GET
@Path("/customers")
@Produces(MediaType.APPLICATION_JSON)
public List<Map<String,Object>> getCustomers(@QueryParam("mode") String mode,@QueryParam("query") String query,@QueryParam("fields") String fields){
return get(mode,query,fields);
}
我是相當新的的servlet環境和Java Web開發也是如此,因此尋找一種簡單的方法來做到這一點,我
進口javax.ws.rs,把符號在我的班級,像這樣:
@Path("/FileManager") public class fileServlet extends HttpServlet { @GET @Path("/fileGetter") @Override public void doGet(@Context HttpServletRequest request,@Context HttpServletResponse response) throws IOException, ServletException { OutputStream output = response.getOutputStream(); String queryString = request.getQueryString();
編譯並把.class文件在Tomcat中的web.info指定的文件夾中,加在lib添加的servlet.jar。該web.info
<servlet> <servlet-name>CustomerServlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>company.rest</param-value> </init-param> <load-on-startup>1</load-on-startup>
<servlet-mapping> <servlet-name>CustomerServlet</servlet-name> <url-pattern>/rest/*</url-pattern>
,但我不能達到我的服務地址如下。 我正在閱讀很多答案,但無法使其正常工作。我怎麼能這樣做?