情景:

想在应用启动的时候就加载spring容器 在ServletContextListener.contextInitialized()中加载spring容器
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

结果发现一直报"找不到文件的IO错误",于是就打印下当前路径

"D:\install\eclipse-jee-mars-1-win32-x86_64\eclipse"

结果居然跑到了eclipse的安装目录来了,不是工作目录也不是tomcat的目录,这就神奇了吧

然后我就直接用tomcat发布,不用eclipse了

结果当前路径在

"C:\Program Files\Apache Software Foundation\Tomcat 8.0_Tomcat\bin"

这就尴尬了,我的应用在webapps里面啊,怎么会跑到这里来了呢

原因

一、eclipse

在eclipse中,启动服务器是由eclipse.exe启动

servletcontext监听器的初始化是在启动服务器的过程就完成的,所以自然当前目录在"D:\install\eclipse-jee-mars-1-win32-x86_64\eclipse"

二、tomcat

在tomcat中,启动服务器是由startup.bat启动

所以当前目录就在"C:\Program Files\Apache Software Foundation\Tomcat 8.0_Tomcat\bin"

不同环境的web目录结构

凡是涉及到路径的,都会因为环境的不同而不同,window、linux、eclipse、tomcat各不相同

eclipse的目录结构

tomcat的目录结构

总结

特别要注意的是class文件的放置!!!

eclipse中class放在/build/classes里面

tomcat中class放在/WEB-INF/classess里面

查看原文:http://139.129.55.235/2016/05/30/servletcontext%e7%9b%91%e5%90%ac%e5%99%a8%e7%9a%84%e5%90%af%e5%8a%a8%e4%bd%8d%e7%bd%ae%e4%bb%a5%e5%8f%8atomcat%e5%92%8ceclipse%e7%9a%84%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84/

servletcontext监听器的启动位置以及tomcat和eclipse的目录结构的更多相关文章

  1. 第三节 - centos 内核启动、救援模式、 ls 、目录结构

    Linux 第三节一.CentOS 启动: 1.内核引导: 1.win/linux 通电,2.BISO自检(CPU,内存,硬盘等 | U盘.光驱.网卡.硬盘启动 通过MBR知道内核内存硬件驱动位置并加 ...

  2. 配置Tomcat直接显示目录结构和文件列表

    Tomcat是直接显示目录结构和文件列表,只是在配置里面给关闭了. 关键在这里:\conf\web.xml 这个文件有一段配置直接控制Tomcat是允许显示目录结构和文件列表. <servlet ...

  3. spring默认启动位置以及contextConfigLocation设置源码解析

    这几天在看spring的源码,涉及到spring启动位置的部分,下面就看看spring到底是从哪儿开始加载的.本文使用的是spring3.0M3 首先spring的加载会借助一个监听器ContextL ...

  4. 使用监听器来启动spring -------使用监听器初始化上下文参数

    问题: 数据初始化监听器要注入spring容器的对象,必须先启动spring容器才能使用监听器初始化数据. 解决: 使用监听器来启动spring框架 问题:spring框架启动需要哪些参数? 1.需要 ...

  5. 本地开发时同时启动多个tomcat服务器

    1.环境变量中不要设置CATALINA_HOME: 2.分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口(默认为 8080端口),将8080修改为tomcat ...

  6. 一个服务器启动多个tomcat(详细图解)

    1.官网下载一个tomcat,复制一个副本(第二个tomcat) 2.添加2个环境变量(右键单击我的电脑->选择属性->选择高级->选择环境变量),是2个tomcat的位置,环境变量 ...

  7. Mac 下如何下载、启动和关闭Tomcat 和管理Mac自带的Apache

     Mac 下载.启动和关闭Tomcat 1. 下载Tomcat(地址:tomcat.apache.org),选择适合的版本(这里选择6.0.48),点击“Download”,之后在新页面点击“Core ...

  8. Linux 下启动两个tomcat

    Linux 下启动两个tomcat 闲来无事学习nginx,想要配置个load balance.可是先决条件是:得有两个web容器.两个电脑是不用想了.只能想办法在一个机器上启动两个tomcat.原以 ...

  9. 本地同时启动两个tomcat

    本地同时启动两个tomcat 这几天开发用到了Ext JS4,所以着手学习Ext JS4,由于官方很多demo都是需要与服务器端进行数据交互,因此需要在tomcat里部署上官方的demo.而本地mye ...

随机推荐

  1. Struts2学习笔记 - HelloWorld总结

    相信网上已经有很多关于struts2的HelloWorld可参考,我这里就不重复了,没个学struts2的人都会做过很多个HelloWorld,而我这里就总结一下一个简单的HelloWorld 我在一 ...

  2. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  3. 快速入门系列--WCF--05事务

    最近开始WCF相关知识的学习,虽然实际工作中使用公司自己的一套SOA系统,但微软的一套服务架构还是具有很大的参考意义.除了WCF的一些基础使用,相对比较复杂的内容有分布式的事务和通信的安全等,不过基本 ...

  4. Callable、Future、RunnableFuture、FutureTask的原理及应用

    1. Callable.Future.RunnableFuture.FutureTask的继承关系 在多线程编程中,我们一般通过一个实现了Runnable接口的对象来创建一个线程,这个线程在内部会执行 ...

  5. Mina、Netty、Twisted一起学(九):异步IO和回调函数

    用过JavaScript或者jQuery的同学都知道,JavaScript特别是jQuery中存在大量的回调函数,例如Ajax.jQuery的动画等. $.get(url, function() { ...

  6. java的LINQ :Linq4j简明介绍

    开发JAVA一段时间,面临的一大问题就是集合操作,习惯了LINQ的简洁语法,对JAVA的集合操作实在是无甚好感,只能通过C系的循环实现筛选等操作,由于没有延迟执行特性,内存占用实在不敢恭维.因此便在网 ...

  7. 轻松自动化---selenium-webdriver(python) (十二)

    本节重点: l 键盘按键用法 l 键盘组合键用法 l send_keys() 输入中文运行报错问题 键盘按键键用法: #coding=utf-8 from selenium import webdri ...

  8. 【LeetCode】Self Crossing(335)

    1. Description You are given an array x of n positive numbers. You start at point (0,0) and moves x[ ...

  9. java并发编程实践学习(2)--对象的组合

    先验条件(Precondition):某些方法包含基于状态的先验条件.例如,不能从空队列中移除一个元素,在删除元素前队列必须处于非空状态.基于状态的先验条件的操作成为依赖状态操作. 在单线程中,如果某 ...

  10. 简单的Linq笔记

    最近带一个新人,被问到Linq的一点东西,回答他后,自己记录下,防止自己懵逼. Linq中查询一个表中指定的几个字段: var ts = t.FindAllItems().Where(P => ...