1.不需要注意什么问题,.WAR其实就是.zip格式,你用WINZIP都可以做一个,想压缩成.zip再把后缀名改为war就行了,只不过需要注意压缩的层次和相应的配置文件的位置。一般都用开发工具的生成向导做一个。2. war包一般就是一个用于发布的文件,一般是不会在其他工程中导入的,只有JAR包才会导入到其它工程中,在工程属性里面做

解决方案 »

  1.   

    war文件类似一个压缩包,是整合web应用用的,你要是将war导入你的工程,看你是什么目的,如果想用到里面的类的话,就直接在工程的属性里面导入,不过只能用到里面的class文件(就是你说的普通的类)。如果想在别的war包里调用这个war包,就要在当前war包的属性里面把你要打的包勾上,这样就可以打成一个war包了,你就可以调用了。  不过真正的做法是把你的war,jar打到一个ear包里,一起发布。
      

  2.   

    我在不压.war的时候,jsp的表单提交地址是 “/servlet名” ,压成.war后,
    使用 “/包名/jsp文件名” 才能找到jsp文件
    使用 “/包名/servlet名” 才能找得到servlet可是这样改了后,不能正常运行了,不知为何,在jbuilder里面测试的时候也找不到servlet了
      

  3.   

    发布WAR包时,会让你指定一个根目录,默认为你的包名,你也可以配置成整个网站的根目录。至于不能正常运行,可能是由于你在URL转向时使用了绝对路径,应该尽量使用相对路径。当然也有可能是其他原因,需要看具体的错误提示!
      

  4.   

    war就像一个目录一样存在。
    war内部使用相对路径或者目录名(这个名字将来是war的名字)来使用。
    注意在压缩的时候压缩目录下的文件,不要直接压缩目录。(压成zip改名估计也可以)
    这样应该就没问题了。
      

  5.   

    我找到出错原因了,我在servlet里面使用了request.getRealPath(""),不压就没事,请问大家,我应该用什么方法来代替它?
      

  6.   

    request.getRealPath("\")得到站点根目录
    然后使用相对路径估计可以。用这个做附件么?这个路径也可以作为一个参数传到你的war中,这样就没有这个麻烦了。
      

  7.   

    to  stchin(书剑恩仇):request.getRealPath("")在压成.war后得到null,无法得到根目录,必须得换个方法
      

  8.   

    我又用getServletContext().getRealPath("")还是得到null,是不是.war文件里面就是不能使用这些方法啊?怎么办呢?
      

  9.   

    在servlet里面,不压.war的时候,使用request.getRealPath("")和getServletContext().getRealPath("")都可以得到正确结果:D:\bea7\user_projects\mydomain\applications\DefaultWebApp 压成.war后就不行,请大家指教
      

  10.   

    问题已经清晰化了,是要让servlet在压完.war后还能得到getRealPath("")的结果,不再是原来的问题了结帐,辛苦大家了,另开贴问这个问题
      

  11.   

    private ServletContext context;
    String requestMappingsURL = null;
    requestMappingsURL = context.getResource("/WEB-INF/mappings.xml").toString();不知道这段代码对你有没有帮助
      

  12.   

    to  mefaintII(我晕) :刚才你发贴的时候我正好在结帐,这分我会补给你的