HTTP 500 Interner Server-Fehler in einfachen REST-basierten Programm. Verwirrt über GET und POST beim empfangen/senden von Antwort von server

Bin ich für die Implementierung eines einfachen client-server-Architektur, die Verwendung von REST-services für das erste mal. Dieses mal habe ich die macht es komplizierter mit, darunter einige weitere Klassen und-Dienste mit sharing-class-Objekte als Parameter zwischen client und server. Ich bin mit server auf ApacheTomcat7. Es ist immer erfolgreich ausgeführt. Wenn ich auf meinem client es gibt mir Fehler: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error ich habe versucht meinen code Debuggen, wie es scheint, bin ich nicht richtig empfangen/senden der Antwort. Ich weiß, das ist nicht klug, alle Klassen hier, aber ich hat keine Wahl, denn es hat meine Zeit verschwendet eine Menge. Jede Hilfe wird geschätzt. Vielen Dank im Voraus.

Folgende ist meine ImageProgress Klasse. Diese Klasse ist auf server und client.

@XmlRootElement
public class ImageProgress{
    private String name;

    public ImageProgress( String image_name){
        this.name = image_name;
    }

    public String getName() {
        return name;
    }

    public void setName( String name ){
        this.name = name;
    }
}

HPCResponse ist die Klasse, deren Objekt zurück zum client als der server-Antwort. HPCResponse wird grundsätzlich die Rückkehr der ImageProgress Objekt, was mir das gewünschte Ergebnis.

@XmlRootElement
public class HPCResponse
{
    private ImageProgress imgProgress;

    public ImageProgress getImgProgress() {
        return imgProgress;
    }

    public void setImgProgress(ImageProgress imgProgress) {
        this.imgProgress = imgProgress;
    }
}

Folgenden ist die service-Klasse vom server mit dem Namen HpcService, die zurückkehren wird der HPCResponse Objekt als Antwort. Wie Sie sehen können die Methode startAnalysing akzeptiert Gegenstand der HPCInfo. Beschreibung HPCInfo ist auch unten angegeben.

@Path( "/hpc" )
@Consumes( MediaType.APPLICATION_XML )
@Produces( MediaType.APPLICATION_XML )
public class HpcService{

    public HPCInfo hpcInfo;
    public HPCResponse hpcResponse;

    @POST
    @Path( "/analyze" )
    public HPCResponse startAnalysing(HPCInfo _hpcInfo){

        System.out.println( "Started Analyzing..." );

        hpcInfo = _hpcInfo;
        hpcInfo.getImagePath();        

        hpcResponse = new HPCResponse();
        ImageProgress iProg = new ImageProgress(hpcInfo.getImagePath());
        hpcResponse.setImgProgress(iProg);

        System.out.println("Returning response...");
        return hpcResponse;
    }
}

HPCInfo Klasse ist auch auf client und server. HPCInfo Klasse:

    @XmlRootElement
    public class HPCInfo
    {
        private String imagePath = "";

        public String getImagePath(){
            return imagePath;
        }

        public void setImagePath( String imagePath ){
            this.imagePath = imagePath;
        }
    }

Und schließlich sein mein client ruft für den HPCService.

public class TestClient {
    private static String webServiceURI = "http://localhost:8080/TestServer123";
    public static void main(String[] args) {
        String input = "ABNKidney.scn";
        ClientConfig clientConfig = new ClientConfig();
        Client client = ClientBuilder.newClient(clientConfig);
        URI serviceURI = UriBuilder.fromUri(webServiceURI).build();

        WebTarget webTarget = client.target(serviceURI);

        HPCInfo info = new HPCInfo();
        info.setImagePath(input);

        webTarget = webTarget.path("test").path("hpc").path("analyze");

        HPCResponse hResponse = webTarget.request().accept(MediaType.APPLICATION_XML).post(Entity.entity(info, MediaType.APPLICATION_XML), HPCResponse.class);
    }
}

Dies ist die vollständige Beschreibung der Fehler, die ich immer bin:

javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
    at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:968)
    at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:795)
    at org.glassfish.jersey.client.JerseyInvocation.access$500(JerseyInvocation.java:91)
    at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:683)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:679)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:435)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:338)
    at com.TestClient.main(TestClient.java:34)
Schreibe einen Kommentar