Я искал 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?