2016-07-28 10 views
-1

Die Hauptmethode kann bereits eine Ausgabe ausgeben, daher denke ich, dass sie @GET verwenden kann, um die Ausgabe im Webdienst anzuzeigen.Wie wird die Methode @GET in REST Web Service ausgegeben?

Ich benutze Jersey, weil ich ein Shellskript im Code aufrufen, das Skript berechnet etwas, das ich brauche, ich will nur @GET diese Ausgabe. So ist es keine einfache String Ausgabe wie „Hallo, Welt“ Der Code ist,

public class ShellScript { 

@Path("/") 
@GET 
public static void main(String[] args) throws Exception {     
    String[] command = { "hello.sh"}; 
    Process process = Runtime.getRuntime().exec(command);      
    BufferedReader reader = new BufferedReader(new InputStreamReader(  
     process.getInputStream()));           
    String s;                 
    while ((s = reader.readLine()) != null) {         
     System.out.println("Script output: " + s);        
    }                  
    } 
} 

Wenn ich die richtige URL eingeben, kann ich kein Ergebnis bekommen. Wie kann ich das Ergebnis von String s erhalten?

Antwort

-2

Der nächste, den Sie so etwas erreichen können, kann mit Spring Boot erreicht werden.

Es könnte wie folgt aussehen:

@Controller 
@EnableAutoConfiguration 
public class SampleController { 

    @RequestMapping("/") 
    @ResponseBody 
    String home() { 
     return "Hello World!"; 
    } 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(SampleController.class, args); 
    } 
} 

Aber viel mehr Sachen Hauptmethode als nur eine einfache geschehen, auf der Dokumentation nachlesen.

+1

Sorry, aber ich stimme alle Antworten ab, die eine Spring-Lösung vorschlagen, wenn die Frage eindeutig ein JAX-RS/Jersey ist. Jemandem vorzuschlagen, zu einem völlig anderen Rahmen zu wechseln, ist kaum eine Lösung. –

+0

Ich schlage eine machbare Lösung für das vor, was der Benutzer erreichen möchte, ich versuche nur zu helfen. Sie Downvoting die Antwort nicht helfen, jemand – Ulises

+0

Wie ich schon sagte, IMO zu einem ganz anderen Rahmen Schalt ist kaum eine Lösung für einen einfachen Fall wie diesem, und für die meisten Antwort, die ich persönlich sehen, wo Menschen Frühling Antworten veröffentlichen nach Jersey Fragen. Deshalb gibt es Tags. Wenn Sie das Tag beherrschen, posten Sie die Antwort mit diesem Framework. Es ist so, als sei es in Ordnung, eine Antwort zu posten, die sich auf Flask, ein Python-REST-Framework, bezieht. Wo die Endabschaltung würden, wenn wir nicht einschränken, dass durch Tags –

0

meiner Meinung nach, möchten Sie Ausgabenachricht an die webservice.But bedeutet, dass die Get-Methode Ressource von Web-Service erhalten, sollten Sie vielleicht HttpServletResponse zu Antwortnachricht auf dem Web-Service nutzen.