AWS Elastic Beanstalk에 배포 된 Java 응용 프로그램의 끝점에 연결하는 데 문제가 있습니다. 응용 프로그램은 여러 POST 요청을 처리하며 모바일 응용 프로그램을 제공하기위한 것이므로 서버 자체에는 정적 파일이 없습니다. Localhost에서 테스트 할 때 끝점을 올바르게 찾지 만 AWS Elastic Beanstalk에서는 발견하지 못하는 Spark Java 프레임 워크를 사용했습니다.Spark-Java (Gradle, Maven) 응용 프로그램을 AWS Elastic Beanstalk에 배포
Exploded war를 EB (Tomcat 웹 서버 실행)에 배포 할 수 있지만 보내는 모든 요청에는 404 오류 : Resource not Found가 반환됩니다. Spark java는 임베디드 Jetty 서버에서 실행되므로 Tomcat에서 실행하려면 설명서 (http://sparkjava.com/documentation#other-web-server)에서 제안한대로 수행했습니다. SparkApplication 인터페이스를 구현하여 main()에서 init()로 모든 끝점을 이동하고 제안 된 코드를 추가했습니다 web.xml 파일에 추가하십시오.
업로드 된 .war에는 web.xml, lib (gradle 라이브러리 포함) 및 클래스 (컴파일 된 출력 포함)가 포함 된 META-INF가 포함되어 있습니다. 다시 말하지만 정적 파일이 없습니다.
자세한 내용 :
내가 배포 할 탄성 콩 줄기 인 IntelliJ (궁극) 플러그인을 사용하고이 시점에서 나는 이것이 EB 대시 보드에 직접 .WAR를 배포 다르지 않습니다 것을 테스트했다. 모든 포트 및 연결을 보안 설정에서 열어 연결 문제를 해결했습니다. 나는 이것이 URL을 매핑하지 않는 서블릿의 문제라고 생각한다. 어떤 제안?
좋아, .jar를 사용해 보겠습니다. –
AWS의 옵션이며 Spark Java에 더 자연스러운 옵션입니다. 나는 Tomcat에서 전쟁으로 스파크를 돌렸다. 명심해야할 것은 전쟁 바람둥이가 당신이 REST API 경로 앞에 URL에 추가해야만하는 전쟁 이름 인 컨텍스트를 제공한다는 것이다. 그래서 8090, localhost : 8090/blah/myrestpath가 아니라 localhost : 8090/myrestpath에 blah.war가있는 경우. –
감사합니다. 그것은 항구 문제로 밝혀졌습니다. –