Ich versuche, IP-Adresse und Port eines Client zu bekommen, aber wenn ich den Code bereitstellen es gibt mir die folgende Ausgabe:Inject Anrufer IP-Adresse und Port nicht in Java Jersey RESTful Web-Service arbeiten
May 10, 2016 2:50:56 PM com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for method public javax.ws.rs.core.Response resources.Login.loginUser(java.lang.String,javax.servlet.http.HttpServletRequest) at parameter at index 1
SEVERE: Method, public javax.ws.rs.core.Response resources.Login.loginUser(java.lang.String,javax.servlet.http.HttpServletRequest), annotated with POST of resource, class resources.Login, is not recognized as valid resource method.
Exception in thread "main" com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:773)
at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:172)
at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:264)
at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:246)
at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:117)
at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:92)
at gateway.GatewayRestServer.main(GatewayRestServer.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Dies ist der Code in meinem REST-Server
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
...
@POST
@Path("/post")
@Consumes(MediaType.TEXT_PLAIN)
public Response loginUser(String username, @Context HttpServletRequest request) {
Loog.i(this, "Login di " + username);
String netIP = request.getRemoteAddr();
int netPort = request.getRemotePort();
...
}
Wenn ich @Context HttpServletRequest Anfrage entfernen, funktioniert es einwandfrei.
Ich habe bereits diese genauen Importe .. Ich werde es zu meiner Frage hinzufügen –
Ich sehe javax.xml.ws.spi.http.HttpContext –
Ich weiß, was du meinst, ich habe nicht bemerkt, dass in der Ausgabe der Importe waren falsch, aber jetzt ran ich es und in der Ausgabe sind die Importe gut (Ich habe die Frage bearbeitet), aber es funktioniert auch nicht –