java - spring MVC web 应用程序在 Windows 上完美运行,但在 Linux 上运行不佳

标签 java linux spring spring-mvc tomcat


你好:

我是 Spring MVC 网络开发的新手。最近我用Spring MVC框架写了第一个web应用,但是没有任何.xml配置(纯Java注解配置),我的web.xml如图here。 .这很奇怪,因为 Web 应用程序在 Windows 和 Tomcat 上运行良好,但在 Linux 上却不行。

具体来说,当它运行在Linux(Ubuntu或Redhat)上的tomcat中时,我在其他机器上输入ip:port可以看到tomcat的欢迎页面,而不是我的web项目中index.jsp的第一页.如果我在 web 项目中请求其他 url,它会返回 404 错误。

所以我认为,很明显,web 应用程序根本没有加载到 tomcat 中(对不专业的描述表示歉意)。我将项目注入(inject)tomcat的方式和Windows一样,就是将war包复制到webapps文件夹中。连启动tomcat后都能看到解压后的文件夹,说明小虎确实认得了吧?而环境变量(jdk或tomcat)的问题不是问题,因为tomcat确实启动了。

我猜想是因为我的web.xml文件里什么都没有,因为我是用纯Java注解方式配置的,导致tomcat不知道加载哪个servlet~~(纯猜XD)。或者是否需要为此配置 Linux 上的任何特定内容?我很困惑。

这个项目在 gihub 上的仓库是 here .

如果您对这个问题有任何想法,请帮助我。


谢谢!

最佳答案

尝试在 web.xml 中像这样初始化 servlet,

<servlet>
    <servlet-name>Name</servlet-name>
    <servlet-class>ServletClass</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>

然后将该 servlet 映射到您的 JSP

<servlet-mapping>
    <servlet-name>Name</servlet-name>
    <url-pattern>/samplePage</url-pattern>
  </servlet-mapping>

然后您可以找到该页面,

http://localhost:8080/ProjectName/samplePage.jsp

关于java - spring MVC web 应用程序在 Windows 上完美运行,但在 Linux 上运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719670/

相关文章:

java - 在 Java 中使用 lambda 作为类的方法

java - Hibernate - 多对多关系 : relationship table not getting populated

java - 通过插入 FormFeed 字符在文本文件中插入分页符。这是通用解决方案吗?

linux - 将包含整数计数的 gzip 二进制文件反卷积为人类可读的数字

java - HTTP 状态 500 - javax.servlet.ServletException : Servlet execution threw an exception

hibernate - Spring,Blob 下载,byte[] 大小增加两倍

java - 添加项目 A (Spring 4.2.x) 作为项目 B (Spring Boot 2、Spring 5) 的依赖项

linux - 是否有机会两次读取 16 字节/dev/urandom 数据,并获得相同的结果?

linux - 使用 cifs 挂载

Hibernate - setProjection after Criteria