Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java从使用Glassfish和REST协议设置的AmazonAWS服务器检索文件?_Java_Rest_Amazon Web Services_Amazon Ec2_Glassfish - Fatal编程技术网

如何使用Java从使用Glassfish和REST协议设置的AmazonAWS服务器检索文件?

如何使用Java从使用Glassfish和REST协议设置的AmazonAWS服务器检索文件?,java,rest,amazon-web-services,amazon-ec2,glassfish,Java,Rest,Amazon Web Services,Amazon Ec2,Glassfish,我设置了一个AmazonAWSLinuxServer实例(EC2),其中包含一些音频文件,我希望使用RESTProtocolWeb服务检索这些文件。由于某些原因,my getAudio函数的URL不正确 @Path("/get/{fileName}") // http://IP.ADDRESS/audio/get/{fileName} @GET @Produces("application/wav") public Response getAudio(@PathParam("fileName")

我设置了一个AmazonAWSLinuxServer实例(EC2),其中包含一些音频文件,我希望使用RESTProtocolWeb服务检索这些文件。由于某些原因,my getAudio函数的URL不正确

@Path("/get/{fileName}") // http://IP.ADDRESS/audio/get/{fileName}
@GET
@Produces("application/wav")
public Response getAudio(@PathParam("fileName") String fileName) {
    ResponseBuilder response = null;
    StringBuilder builder = new StringBuilder();
    builder.append(AUDIO_PATH).append(fileName).append(".wav");

    File file = new File(builder.toString());
    response = Response.ok(file);
    response.header("Content-Disposition", "attachment; filename=" + fileName + ".wav")
            .header("Access-Control-Allow-Origin", "*");

    return response.build();
}
AUDIO_PATH是最后一个字符串变量,它包含Linux实例中创建的音频文件的关联路径

关于Glassfish,这是一个应用服务器,允许我部署web服务,该服务包括此功能以及一些其他工作功能

当我使用Glassish运行一个URL时,我知道它被正确地输入了,有一个404错误,表示找不到该URL。我在Amazon管理控制台中创建了一个允许HTTP协议的安全异常

我尝试访问此getAudio函数时使用的URL为:

这个端口号是80,因为当您为HTTP协议添加一个安全异常时,它说要使用这个端口号。在Linux实例的/audio_PATH/PATH中还有一个名为“hello.wav”的已创建音频文件,我正试图在URL中下载该文件

这也是一个旁注,但我使用IntelliJ IDE中的Glassfish运行我的程序,它还包含一个createAudio函数,路径为:
@path(“/create/{fileName}/{text}”)


此功能可以工作,根据输入的文本创建音频,但我无法从实例下载音频。

您收到任何响应的事实表明您的安全组(防火墙)允许您的请求通过EC2服务器。如果存在安全组问题,您的连接将一直挂起,直到超时

您的代码看起来像是在使用Jersey。您可能需要在GET请求中包含一个
Accept:application/wav
头,以便Jersey知道如何将其与指定的端点相匹配