我正在尝试部署一个由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时,它最终会说这个页面不工作。
文件概述:
html只是一个提交给servlet sendRequest的表单。jsp在mySQL数据库中显示一个表,还允许您通过将其发送到fillRequest来更改表中的一个列,还可以使用download.java servlet下载一个存储在数据库中的BLOB文件。
这是我第一次部署到AWS豆茎,我不确定我是否在这个过程中做错了什么。由于代码在本地工作,我不确定我应该包括哪些代码,请让我知道哪些其他信息将有助于张贴,然后我将编辑我的问题。任何帮助,我应该找出哪里是错误的地方,以及我如何能够解决这个问题,是非常感谢的!
日志:
日志摘要: 1。
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中:
<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)
FileInputStream fileContent = (FileInputStream) filePart.getInputStream();
ps.setBinaryStream(10, fileContent);至
InputStream fileContent = filePart.getInputStream();
ps.setBinaryStream(10, fileContent);还是没什么改变..。
2.
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.
com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failurehttps://stackoverflow.com/questions/56628632
复制相似问题