У меня есть этот рабочий код:Amazon Java SDK с REST-Джерси - не может авторизовать из
package javaapplication7;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JavaApplication7 {
public static void main(String[] args){
try {
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(
JavaApplication7.class.getResourceAsStream("/AwsCredentials.properties")));
System.out.println("OWNER: " + s3.getS3AccountOwner().toString());
} catch (IOException ex) {
Logger.getLogger(JavaApplication7.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
И никаких проблем, я могу увидеть владельца написано в консоли.
В рамках проекта веб-служб У меня есть:
Principal.java
package WSAV.resources;
import WSAV.entities.AWS;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Stateless
@Path("/amazonws")
public class Principal {
@EJB
private AWS aws;
@GET
@Path("/AWS")
@Produces({"text/html", "text/plain"})
public String getTest() {
return aws.test();
}
}
AWS.java
package WSAV.entities;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Singleton;
@Singleton
public class AWS {
public AWS() {
}
public String test() {
try {
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(
AWS.class.getResourceAsStream("/AwsCredentials.properties")));
} catch (IOException ex) {
Logger.getLogger(AWS.class.getName()).log(Level.SEVERE, null, ex);
}
return "testing";
}
}
Когда я развернуть и протестировать W ЕВ Service, веб показывает:
Тип: отчет Исключение
Описание: Сервер обнаружил внутреннюю ошибку(), что не позволяет ему выполнить эту просьбу.
Исключение: javax.servlet.ServletException: java.lang.NullPointerException
Первопричины: java.lang.NullPointerException
На консоли:
ADVERTENCIA: EJB5184: A Исключение системы произошло во время вызова в EJB AWS, метод: public java.lang.String WSAV.entities.AWS.test() ADVERTENCIA: javax.ejb.TransactionRolledbackLocalExcepti на: Исключение брошенной из фасоли
{...}
ADVERTENCIA: EJB5184: Исключение системы произошло во время вызова на EJB принципала, метод: общественного java.lang.String WSAV.resources.Principal.getTest () ADVERTENCIA: javax.ejb.EJBTransactionRolledbackException
{...}
ADVERTENCIA: StandardWrapperValve [ServletAdaptor]: PWC1406: Servlet.service() для сервлета ServletAdaptor бросили исключение
Я потерял, не знаю, что это может быть, или что я могу сделать ... может быть, создать этот другой файл Java и выполнить отдельно от этого проекта, но мне нужен AWS, работающий только в одном проекте ...
Спасибо!