开发者社区> 问答> 正文

阿里云ecs中javaweb项目无法访问servlet

在阿里云上购买学生版的ecs, 自己装了tomcat7+java8+mysql5.7 然后部署javaweb项目。

这个javaweb项目本地正常运行,发布到ecs上之后可访问jsp文件,但无法访问servlet,一访问就报http404,第一此访问会报http500 Error instantiating servlet class。 我尝试作了一个jsp直接调用java文件,代码如下

<%@ page import="dao.*"%>
<%@ page import="dao.impl.StudentDaoImpl"%>
.........
..............
<%
 StudentDao ad =new StudentDaoImpl();
%> 
<%=ad.queryAllStudent().get(0).getName()%>

提示http500:Unsupported major.minor version 52.0(编译版本高于运行)但我的java与tomcat版本与本机是一样的,

本机 tomcat7.0.86,java 1.8.0.13 ;

ecs tomcat7.0.99 java 8u40b25

而且curl的内容与外面浏览器结果都一致web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>studentAD</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
        <servlet-name>findStuByPageServlet</servlet-name>
        <servlet-class>servlet.FindStuByPageServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>findStuByPageServlet</servlet-name>
        <url-pattern>/findStuByPageServlet</url-pattern>
    </servlet-mapping>  

</web-app>

ecs的tomcat下webapp文件夹 image.png lib文件 image.png

遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看

展开
收起
刘刚_ 2020-05-23 14:36:15 1020 0
1 条回答
写回答
取消 提交回答
  • 、添加8080端口的安全组规则 这里写图片描述

    2、把war包放在tomcat的webapps目录下, 然后打开tomcat的bin目录 运行 startup.bat。Maven项目打包的方式如下(之后会在target目录下生成war包): 这里写图片描述

    3、tomcat启动后,输入http:ip:8080/项目名访问即可。 这里写图片描述

    spring boot项目部署 以war形式打包

    在pom.xml里设置 war 1 移除嵌入式tomcat插件

    在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat

    org.springframework.boot spring-boot-starter-tomcat provided 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 修改打包名称
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warName>blog</warName>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 修改启动类,并重写初始化方法

    /** * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 */ public class WebsiteApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(WebsiteApplication.class);
    }
    
    public static void main(String[] args) {
        SpringApplication.run(WebsiteApplication.class, args);
    }
    

    } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 打包部署

    进入项目根目录下,在命令行里输入:mvn clean package -Dmaven.test.skip=true 然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署 最后在浏览器中输入 http://localhost:[端口号]/[打包项目名]/ 即可访问 去掉项目名直接访问 在tomcat的安装目录的conf文件夹下找到server.xml文件 修改端口号为:80

    1 2 3 找到 Host标签,一般在最后面


    1 2 3 4 5 启动tomcat访问localhost或者访问你的IP就可以访问你的项目啦

    2021-02-22 19:29:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载