小k2714 2024-05-19 17:09 采纳率: 75%
浏览 9
已结题

自己想写一个可以访问数据库的后端web程序,在本地通过maven启动项目,所有路径能可以正常访问,部署到服务器,controller里面的路径就无法访问,只能访问到hellow word页面,求解

自己想写一个可以访问数据库的后端项目,给小程序使用,用的ssm+maven。在本地启动,可以访问所有的路劲,但是部署在服务器上,就无法访问controller里面的路径,求解

img

img

img

img

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-19 17:09
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试将一个基于Spring MVC、MyBatis和Maven构建的Java Web应用程序部署到服务器上,但是在服务器上无法访问Controller中的请求映射。以下是可能的原因及相应的解决步骤:

    1. 检查部署结构: 确保你的应用部署到了服务器上的正确位置,通常是Tomcat的webapps目录下。例如,如果你的应用名为web01, 部署后应该看到类似/var/lib/tomcat7/webapps/web01/这样的目录结构。

    2. 端口配置: 在服务器上运行的Tomcat可能没有监听80端口,而是其他端口(默认可能是8080)。你需要确保Tomcat配置文件(通常是server.xml)中的Connector部分指定了正确的端口。示例配置:

      <Connector port="80" protocol="HTTP/1.1"
          connectionTimeout="20000"
          redirectPort="8443" />
      
    3. URL格式: 当你从浏览器访问服务器时,URL应该是http://your_server_ip:your_port/your_app_name/your_controller_path的形式。例如,如果应用名为web01,且部署在了80端口,那么访问test01控制器的URL应为:http://47.96.28.120/test01

    4. Spring MVC配置: 检查你的Spring MVC配置是否正确,尤其是DispatcherServlet的配置。确认<servlet-mapping>标签下的"path"`属性设置为 "/",这样所有未被其他过滤器处理的请求都会由Spring MVC处理。

      <servlet-mapping>
          <servlet-name>dispatcherServlet</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>
      
    5. Maven插件问题: 从截图中看,你使用的Maven插件版本可能与Tomcat服务器版本不兼容。确保你的Maven插件依赖是针对当前Tomcat版本的。例如,如果是Tomcat 7,应使用tomcat7-maven-plugin而不是tomcat9-maven-plugin。同时,确认Maven插件的引用没有错误,如版本号和依赖路径。

    6. 安全性问题: 图片显示访问的是不安全的连接(HTTP而非HTTPS),这可能导致某些浏览器阻止非安全资源加载。除非你的应用只用于开发测试,否则建议启用SSL并使用HTTPS。

    7. 防火墙和端口转发: 确认服务器的防火墙设置允许外部访问指定的端口,并且网络路由器(如果有)也进行了相应端口转发。

    8. 日志和调试: 如果以上都检查过了还是有问题,查看服务器的日志(通常位于logs/catalina.out)可以帮助定位问题。开启更详细的日志级别,以便获取更多调试信息。

    9. Spring Boot: 考虑将项目转换为Spring Boot项目,它简化了部署过程,通常只需打包成jar或war文件上传到服务器,然后执行即可。如果你已经使用了Spring Boot,确保你有主入口类(带有@SpringBootApplication注解的类)以及对应的打包和部署流程。

    请根据上述提示逐步排查问题,如果有具体错误信息或新的疑问,欢迎继续提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月19日