hanling 发表于 2015-8-8 10:14:26

tomcat不能自动编译

  自己心里现在好恶心,弄了两个多小时的struts2拦截器的问题竟然是因为我随意删除了文件而导致文件没有自动编译的原因造成的。
  下午自己实现了一个struts2的拦截器,因为实现的接口写错了,导致拦截器不执行,后来自己随意删除了一个jar包,但是我自己不知道tomcat这样不能自动编译,后来代码的配置文件改了N次
  public String intercept(ActionInvocation actioninvocation) throws Exception {
      Map session = actioninvocation.getInvocationContext().getSession();
      UserDomain user = (UserDomain) session.get("user");
      if (user == null) {
            return Action.LOGIN;
      } else {
            Action action = (Action) actioninvocation.getAction();
            if (action instanceof UserAware) {
                ((UserAware)action).setUser(user);
            }
            return actioninvocation.invoke();
      }
    }
  后来修改了interceptor文件,发现还是不行,试了各种方法,突然看了classes文件,发现没有编译,后来查了没有自动编译的原因,才想起自己删除了jar包,而没有在buildpath中删除,浪费了这么多时间,就是因为自己的不仔细,希望大家看过这个,能防止以后出现这种问题。最后附上解决自动编译的方法。

  1.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.
2.想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con't delete classes ……”。关掉其它程序重新编译即可。
  3.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚
页: [1]
查看完整版本: tomcat不能自动编译