我正在尝试学习如何使用AWS来托管Java Web应用程序,但我遇到了一些相当基本的麻烦。虽然我对Java感到满意,但我对Web开发的经验却很少。
基本问题是当我尝试在服务器上运行“Hello World”应用程序时出现错误:
HTTP Status 500 - An exception occurred processing JSP page /index.jsp at line 53
type Exception report
message An exception occurred processing JSP page /index.jsp at line 53
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 53
50: <div class="section grid grid5 s3">
51: <h2>Amazon S3 Buckets:</h2>
52: <ul>
53: <% for (Bucket bucket : s3.listBuckets()) { %>
54: <li> <%= bucket.getName() %> </li>
55: <% } %>
56: </ul>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: FB27B69E08FA9469), S3 Extended Request ID: gx1ZB6oZkPRrZFS9uTcfWvLhpgPxAUCQwmhaYttLB9qbANdIaUWQVNNtThM+whQU
com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:937)
com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:506)
com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:273)
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3660)
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3612)
com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:672)
com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:680)
org.apache.jsp.index_jsp._jspService(index_jsp.java:126)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
以下是导致这一点的步骤: 1)我创建了一个AWS账户并注册了一个域名。
2)我使用默认环境创建了一个Elastic Beanstalk应用程序并删除了示例应用程序(运行正常)。
3)我安装了Eclipse的AWS插件。
4)我在AWS中创建了一个用户名并为其生成了凭据,然后将这些凭据输入到Eclipse AWS插件中。
5)我创建了一个新的AWS Java Web项目。默认情况下,该项目似乎是一种“Hello World”应用程序,因此我没有对其进行修改。
6)我将项目导出为.war,并将.war上传到我的Elastic Beanstalk应用程序。
7)我试图从Elastic Beanstalk仪表板运行该应用程序并得到上述错误。
我认为如果我无法使用默认代码,尝试编写自己的代码对我来说可能毫无用处,但是如果有一种更简单的方法可以开始,我就不介意听到它。
答案 0 :(得分:0)
经过进一步测试,我认为问题在于,无论出于何种原因,我的Elastic Beanstalk应用程序无权访问其他AWS资源。我不知道为什么会这样或如何解决它,如果有人知道我仍然会想要一个答案,但至少我已经得到了一个更简单的&#34; Hello World&#34;程序在没有与AWS其他部分交互的情况下运行。