首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java网站部署到AWS弹性豆柄

问将Java网站部署到AWS弹性豆柄
EN

Stack Overflow用户
提问于 2019-06-17 09:39:07
回答 1查看 1.6K关注 0票数 0

我正在尝试部署一个由1html、1个jsp和3个servlet(以及一些css和图像)组成的web应用程序。这个web应用程序使用一个mysql数据库,我在一个AWS实例中托管它。我用了本指南

我部署web应用程序,没有收到任何错误,但是只有html页面加载。我正在使用工具带直接从eclipse部署。

在tomcat v9服务器上进行本地部署和测试很好,页面之间的流程也很好。然而,当我部署到一个使用: Tomcat 8和Java 8运行在64位Amazon /3.1.5(它允许我使用的最新版本的tomcat是v8 )的平台上运行平台的AWS弹性豆茎服务器上时,这会是一个问题吗?那么唯一可以加载的页面是html。当试图加载jsp或提交servlet时,它最终会说这个页面不工作。

文件概述:

  • orderform.html
  • requests.jsp
  • sendRequest.java
  • fillRequest.java
  • download.java

html只是一个提交给servlet sendRequest的表单。jsp在mySQL数据库中显示一个表,还允许您通过将其发送到fillRequest来更改表中的一个列,还可以使用download.java servlet下载一个存储在数据库中的BLOB文件。

这是我第一次部署到AWS豆茎,我不确定我是否在这个过程中做错了什么。由于代码在本地工作,我不确定我应该包括哪些代码,请让我知道哪些其他信息将有助于张贴,然后我将编辑我的问题。任何帮助,我应该找出哪里是错误的地方,以及我如何能够解决这个问题,是非常感谢的!

日志:

日志摘要: 1。

代码语言:javascript
复制
17-Jun-2019 09:22:05.095 SEVERE [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [sendRequest] in context with path [] threw exception
 java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to java.io.FileInputStream
    at requests.sendRequest.doPost(sendRequest.java:65)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:684)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1152)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

我想要修复的是:

我看了这篇文章:为什么servlet的Servlet.service()抛出这个异常?

因此,我将以下内容添加到我的pom.xml中:

代码语言:javascript
复制
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

然而,一切都没有改变。我还看了这篇文章:我需要保存一些图片,如何将ByteArrayInputStream修复为FileInputStream?

作为结果,我改变了:(ps是一个preparedStatement)

代码语言:javascript
复制
FileInputStream fileContent = (FileInputStream) filePart.getInputStream();
ps.setBinaryStream(10, fileContent);

至

代码语言:javascript
复制
InputStream fileContent = filePart.getInputStream();
ps.setBinaryStream(10, fileContent);

还是没什么改变..。

2.

代码语言:javascript
复制
17-Jun-2019 12:10:59.411 INFO [http-nio-8080-exec-10] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:287)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1065)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

3.

代码语言:javascript
复制
com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
  1. 代理: Error client 172.31.3.93:48782 AH00898:从/requests.jsp返回的远程服务器读取错误,/requests.jsp:./orderform.html
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 12:56:09

我通过遵循这个向导。来解决我的问题

我忘记做的是将我的web应用程序连接到RDS数据库。

因此,为了修复它,我在一个默认VPC中启动了RDS。然后,我修改了RDS实例的安全组的入站规则。我所做的修改是为弹性豆杆实例的安全组添加一个新规则。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56628632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档