如何在REST Web服务中输出@GET方法?

问题描述:

主要的方法已经可以打印输出了,所以我只是觉得它可以使用@GET在Web服务中显示输出。如何在REST Web服务中输出@GET方法?

我使用Jersey,因为我在代码中调用了一个shellscript,脚本会计算出我需要的东西,我只想要@GET这些输出。所以它不是一个简单的字符串输出,如“你好,世界”代码是,

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);        
    }                  
    } 
} 

当我输入正确的URL,我不能得到任何结果。 如何获得String的结果?

最接近你会得到类似的东西可以用Spring Boot完成。

它看起来是这样的:

@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); 
    } 
} 

但很多更多的东西不仅仅是一个简单的方法主要发生的事情,对文档的阅读起来。

+1

对不起,但我投了所有提出Spring解决方案的答案,当时问题明显是关于JAX-RS/Jersey。建议某人转向完全不同的框架,这几乎不是一个解决方案。 –

+0

我正在提出一个可行的解决方案,用户想要完成什么,我只是想帮助。如你所愿,低调回答对任何人都没有帮助 – Ulises

+0

正如我所说的,IMO切换到一个完全不同的框架对于这样一个简单的案例来说并不是一个解决方案,对于大多数人来说,我个人可以看到人们在Spring上回答Jersey问题的答案。这就是为什么有标签。如果你精通标签,那么使用该框架发布答案。这就好像说可以使用Flask这个Python REST框架发布一个答案。如果我们不限制标签的限制,那么限制在哪里? –

在我看来,你想输出消息到webservice.But的Get方法意味着从Web服务获取资源,也许你应该使用HttpServlet响应消息到Web服务。