Вызовите EJB внутри Aws лямбда-функции - PullRequest
0 голосов
/ 16 апреля 2020

Я искал aws -serverless- java -контейнер с использованием трикотажа. Здесь я пытался вызвать функцию EJB. Но я всегда получаю NPE.

@Stateless
@Path("/ping")
public class PingResource {

    @EJB
    private LambdaEjbService lambdaEjbService;

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.WILDCARD)
    public Response createPet() {
        try {
            Map<String, String> pong = new HashMap<>();
            System.out.println("Before Response");
            pong.put("pong", lambdaEjbService.sendMessage("Hello, World!"));
            System.out.println("Response");
            return Response.status(200).entity(pong).build();
        } catch (Exception e) {
            System.out.println("In exception" + e);
            return Response.status(500).build();
        }

    }
}


@Remote
@WebService(name="LambdaEjbService",targetNamespace="http://my.service.com")
public interface LambdaEjbService {

    String sendMessage(String message);
}

@Stateless(mappedName="LambdaEjbService")
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
@WebService(portName="LambdaEjbServicePort",serviceName="LambdaEjbServiceService",targetNamespace="http://my.service.com",endpointInterface="my.service.resource.LambdaEjbService")
public class LambdaEjbImpl implements LambdaEjbService, Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public String sendMessage(String message) {
        System.out.println("Here");
        StringBuilder builder = new StringBuilder();
        builder.append("Here is the response ");
        builder.append(message);
        return builder.toString();
    }

}

Как решить эту проблему для вызова EJB внутри службы Rest?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...