Java AmazonS3Client构造函数失败

时间:2014-02-20 07:02:07

标签: java javascript amazon-s3

我有一个Applet,其方法是从浏览器中的JavaScript函数调用的。此方法最终将文件发送到Amazon S3存储桶。但是,当此方法尝试创建AmazonS3Client时,该方法将失败而不显示任何错误。

方法中代码的相关片段是:

InputStream input = DigitalLive.class.getResourceAsStream("AwsCredentials.properties");
System.out.println("File loaded into Input Stream.");

PropertiesCredentials theCredentials = new PropertiesCredentials(input);
System.out.println("Credentials created.");
System.out.println("AccessKey is:" + theCredentials.getAWSAccessKeyId());
System.out.println("SecretKey is:" + theCredentials.getAWSSecretKey());

//All of the above strings print to the console with the correct AccessKey and SecretKey
try{
    AmazonS3 s3Client = new AmazonS3Client(theCredentials);
    //This message never prints
    System.out.println("Client created."); 
} catch(Exception e) {
    //This message never prints
    System.err.println("Error creating AmazonClient: " + e.getMessage());
}

try / catch块中的所有消息都没有打印出来。该方法的其余部分(此处为简洁起见未示出)也没有被解雇。

jar文件编译没有错误。我正在使用jdk 1.7.0_51和amazon aws-java-sdk-1.7.1。我正在使用Eclipse作为IDE,并使用ANT使用构建文件构建jar。

除了将代码包装在try / catch块中之外,我还不确定还有什么可以尝试的。 我是否有不同的/更好的方法来调试Java代码以了解为什么不创建AmazonS3Client?或者也许是一个更明显的原因,为什么它可能会失败,因为上面的代码片段?

编辑:我在调用Java方法的JavaScript代码中添加了一个try / catch块,它会抛出错误:

Error calling method on NPObject
Error: java.lang.reflect.InvocationTargetException

我认为这告诉我Java Applet实际上是在抛出一个错误。我只是不确定如何弄清楚哪一个以及如何解决它。我试图在AmazonS3 s3Client = new AmazonS3Client(theCredentials);周围放置try / catch块,但IDE告诉我Unreachable catch block for InvocationTargetException. This exception is never thrown from the try statement body

1 个答案:

答案 0 :(得分:0)

事实证明,当从JavaScript中调用相关方法时,错误消息未写入控制台。我修改了Applet,以便可以从Applet中调用该方法,并且错误按预期显示在控制台中。

Applet缺少一个Apache类,因此添加了一切,但一切都很顺利。