复制了struts2项目,改了web context-root部署之后显示404

SuperBeauty 2015-11-18 09:46:48
我复制了一个struts2的项目,改了它的web context-root,部署到tomcat后发现一直404,后来一看,名字改为之前的就可以访问了,想请教一下为什么这样,该怎么改
...全文
395 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eiji_g 2018-05-15
  • 打赏
  • 举报
回复
引用 11 楼 u011269711 的回复:
我也碰到这个问题,花了一下午,试了网上的各种方法,发现很简单,在次分享给大家 复制web项目过程: 1、ctrl+c ctrl+v,然后改名字 2、项目上右击鼠标-->Properties-->MyEclipse-->Web-->Content Root-->Web content-root-->改成你想要的项目名 3、最关键的一点来了::::::部署的过程中,先关闭tomcat(stop),部署完再添加项目 4、如果在tomcat安装目录下找到部署的目录,说明成功了
第三步可以改一改:在控制台tomcat服务器下,项目上右键----Clean Module Work Directory(完美解决,亲测!)
Jeson.XK 2016-03-22
  • 打赏
  • 举报
回复
我也碰到这个问题,花了一下午,试了网上的各种方法,发现很简单,在次分享给大家 复制web项目过程: 1、ctrl+c ctrl+v,然后改名字 2、项目上右击鼠标-->Properties-->MyEclipse-->Web-->Content Root-->Web content-root-->改成你想要的项目名 3、最关键的一点来了::::::部署的过程中,先关闭tomcat(stop),部署完再添加项目 4、如果在tomcat安装目录下找到部署的目录,说明成功了
  • 打赏
  • 举报
回复
打开你的tomcat目录,里面有个conf文件夹,找到server.xml,里面<Context docBase = "www" path="" reloadable="true"/>这句话的docBase就是你的Web content-root,把这个改成你想要的,重启tomcat就好了
SuperBeauty 2015-11-25
  • 打赏
  • 举报
回复
引用 8 楼 vswen5 的回复:
你在项目改名后,还得在如下地方改:我用的是MyEclipse7.5, **项目上右击鼠标-->Properties-->MyEclipse-->Web-->Content Root-->Web content-root-->改成你想要的项目名 即可
我就是这么改了,但是没效果。。。改了之后输入原来的项目名可以,输入现在的项目名就不行
vswen5 2015-11-20
  • 打赏
  • 举报
回复
你在项目改名后,还得在如下地方改:我用的是MyEclipse7.5, **项目上右击鼠标-->Properties-->MyEclipse-->Web-->Content Root-->Web content-root-->改成你想要的项目名 即可
SuperBeauty 2015-11-19
  • 打赏
  • 举报
回复
引用 6 楼 Cx_轩的回复:
我觉得我这个办法应该是妥了... 就是这么自信!解决了给我回个信
不好意思啊小哥,我用的是myeclipse,没这个选项
Cx_轩 2015-11-18
  • 打赏
  • 举报
回复
我觉得我这个办法应该是妥了... 就是这么自信!解决了给我回个信
Cx_轩 2015-11-18
  • 打赏
  • 举报
回复
引用 4 楼 SuperBeauty 的回复:
[quote=引用 2 楼 qq_25223941 的回复:] Cx博客求关注
好的,小哥,我先关注一波[/quote] 还没解决啊. 我给你个建议,你看下tomcat的配置 里面有个Modules 里面可以设置访问路径. 我觉得你应该是先把别人的项目拿来跑了, 然后在改的吧?如果是那就需要该tomcat里面的配置 配置打开方法,=-----双击eclipse--控制台那里--server--找到tomcat---双击 就会出现配置---然后下面有个Modules 然后你懂得 --edit
SuperBeauty 2015-11-18
  • 打赏
  • 举报
回复
引用 1 楼 longhupeng0 的回复:
web context-root:是web根目录配置,你可以认为是项目名称 假如:web context-root为myWeb, 那么你的访问路径应该是http://localhost:8080/myWeb 注意:字体加粗的地方要一致
我改了web context-root之后,然后用web context-root里面的名字打开显示404,然后用原来项目的名字可以打开,我觉得很奇怪,现在也没有办法解决这个问题
SuperBeauty 2015-11-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_25223941 的回复:
Cx博客求关注
好的,小哥,我先关注一波
睡觉的虫子 2015-11-18
  • 打赏
  • 举报
回复
web context-root:是web根目录配置,你可以认为是项目名称 假如:web context-root为myWeb, 那么你的访问路径应该是http://localhost:8080/myWeb 注意:字体加粗的地方要一致
一个基于EXT实现的树,先上图。 动态加载加右键菜单。 希望拿到可以跑起来看看效果的,需要按以下步骤做。 1 安装oracle,这个例子只做了oracle版本,如果需要,后期可以加上mysql版本,呵呵。 2 运行建用户及表空间的脚本。db_desc_ddl.sql. 3 执行初始化数据脚本。db_desc_dml.sql 4 导入工程,部署,打开浏览器输入 http://127.0.0.1:8080/desc 就可以看到效果了。 关于该实例的一些说明。 这个实例基于spring+struts+ibatis,外加js lib ext 3.3.1. 发挥连接作用的就是这个/WEB-INF/web.xml文件了。贴内容。 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> page/index.jsp org.springframework.web.context.ContextLoaderListener <context-param> spring初始配置 contextConfigLocation classpath:conf/spring/application.xml context-param> struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2初始配置文件 config conf/struts/struts.xml struts2 /* web-app> 可以看到配置中,通过过滤器配置将struts引入。同时通过listener将spring引入。这样顺藤摸瓜,思路就相当清晰了。当一个web请求进来以后,比如http://127.0.0.1:8080/desc,肯定会通过这个配置去找到主页文件的位置page/index.jsp,进入主页后, var treeLoader = new Ext.ux.tree.XmlTreeLoader( { dataUrl : '/desc/getDesc.action' }); var rootnode = new Ext.tree.AsyncTreeNode( { text : '投诉分类', id:"0", leaf:'false' }); EXT通过/desc/getDesc.action 这个请求找到id为0的结点来渲染出自己的根节点,本例中设置了自动展开根节点, tree.on('expandnode', function(node) { /* 展开时获取父节点 */ parent_node = node; }); 所以打开index.jsp页面时,你会发现根节点及根节点下一层都是展开的。/desc/getDesc.action 如何找到自己的数据源呢。它进入web.xml,发现自己需要经历struts2这个过滤器,于是在这个过滤器里,应用把工作交给了struts,在struts配置中找到getDesc这个控制器, 在struts内部,这个请求交给了getDesc方法来处理,getDesc方法返回来一个XML串。 index.jsp获得这个串,在将它渲染到页面上treecontainer这个层(div)中。 知道了这个过程,你就知道应该去怎么配置spring和struts以及ibatis了。 -------------------------------------------------- 顺便说下,log4j日志环境的搭建。很简单。 1 导入 commons-logging-1.1.jar log4j-1.2.14.jar 2 写log4j.properties 3 在代码中使用方式 static Log log = LogFactory.getLog("Action类"); log.debug("result is " + result);
一,集成 Spring 与 Hibernate 1,配置SessionFactory 1,配置 ---------------------- applicationContext.xml ------------------------ <context:property-placeholder location="classpath:jdbc.properties" /> ---------------------- jdbc.properties ------------------------ jdbcUrl = jdbc:mysql:///itcastoa driverClass = com.mysql.jdbc.Driver username = root password = 1234 2,测试代码 @Test// 测试 SessionFactory 的配置 public void testSessionFactory(){ SessionFactory sessionFactory = (SessionFactory) ac.getBean("sessionFactory"); Assert.assertNotNull(sessionFactory.openSession()); } 2,配置声明式事务(使用基于注解的方式) 1,配置 2,测试代码 1,Service类 @Service public class InsertUserService { @Resource private SessionFactory sessionFactory; @Transactional public void addUsers() { sessionFactory.getCurrentSession().save(new User()); // int a = 1 / 0; // 这行会抛异常 sessionFactory.getCurrentSession().save(new User()); } } 2,单元测试 @Test // 测试声明式事务 public void testTransaction() { InsertUserService service = (InsertUserService) ac.getBean("insertUserService"); service.addUsers(); } 3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 OpenSessionInView org.springframework.orm.hibernate3.support.OpenSessionInViewFilter OpenSessionInView *.do 2,LazyInitializationException异常说明 1,对于集合属性,默认是lazy="true"的,在第一次使用时才加载。 2,但在加载时,如果Session已经关掉了就会抛LazyInitializationException异常 二,集成 Spring 与 Struts2.1.8.1 1,在web.xml配置监听器(Spring Reference 15.2 Common configuration) org.springframework.web.context.ContextLoaderListener <context-param> contextConfigLocation /WEB-INF/classes/applicationContext*.xml context-param> 2,在struts-config.xml中配置controller(Spring Reference 15.4.1.1. DelegatingRequestProcessor) 3,测试 1,写Action类与Service类 @Controller("testAction") @Scope("prototype") public class TestAction extends ActionSupport { @Resource private TestService testService; @Override public String execute(){ testService.saveTwoUser(); return SUCCESS; } } @Service public class TestService { @Resource private SessionFactory sessionFactory; @Transactional public void saveTwoUser() { sessionFactory.getCurrentSession().save(new User()); // int a = 1 / 0; // 这行会抛异常 sessionFactory.getCurrentSession().save(new User()); } } 2,在struts.xml中配置Action /test.jsp 3,部署到Tomcat中并访问测试。 4,说明: 1,在写Action时要指定 @Controller 与 @Scope("prototype") 2,在struts.xml中配置action时,在class属性中写bean的名称

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧