Ich habe die Aufgabe erhalten, meinen Dienst in der Service-Schicht eines anderen Entwicklers zu implementieren, aber ich kann den richtigen Weg nicht finden.
Zunächst meine Klasse unabhängig auf einem Tomcat-Server gearbeitet, hier ein Schnäppchen ist:Integrieren Sie eine Klasse, die HttpServlet in einem Projekt erweitert, indem Sie javax.ws.rs Notationen verwenden
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....
hier ein Schnipsel der von der anderen Person gemacht Klassen:
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);
}
Ich bin ziemlich neu in das Servlet zu Umwelt und Web-Entwicklung Java, so die Suche nach einem einfachen Weg, dies mir
importiert javax.ws.rs zu tun, und die Bezeichnungen in meiner Klasse setzen , Etwa so:
@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();
zusammengestellt und die .class-Datei in dem in der web.info in TomCat angegebenen Ordner setzen, sowie die servlet.jar im lib hinzugefügt. Die 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>
aber ich kann meinen Dienst im Anschluss an die Adresse nicht erreichen. Ich lese viele Antworten, aber es funktioniert sowieso nicht. Wie könnte ich es tun?