web项目无法发布

    今天,从svn中check out了一个新的web项目,这个web项目主要功能是发送邮件的。check out是直接用的Eclipse(非MyEclipse)的svn插件check out到工作空间的。check out下来后看到其中有个测试类,里面有个main方法,就想先运行这个测试类,看看项目能不能运行。结果在Eclipse工具中,右键后发现没有Run as选项,然后发现这个项目中的文件图标与其他正常类中的图标不一致,正常项目中.java文件的图标是,是实心的,而check out下来的项目中.java文件的图标是,是空心的,这肯定是有问题的!于是就百度了一下,原来Eclipse中对于这种图标表示当前文件没有在build path中(java file which is not on a build path)。(Eclipse中其他文件图标含义可以参看以下链接 http://wenku.baidu.com/view/2c8bfa030740be1e650e9a89.html)。问题原因找到了,但是check out下来的项目为什么会不在build path中呢?这个又怎么设置呢?以前真没遇到过,但是百度是个好东西啊,个人觉得高技术的还是应该要会百度啊,尤其是水平没有达到一定高度的情况下,自己遇到的问题,绝大多数别人都已经遇到过了,能够站在“巨人”的肩膀上,何必要自己闭门造车呢大笑。然后顺藤摸瓜发现check out下来的项目没有.classpath文件,原来以前提交svn的人没有将.classpath文件一起提交,这样的话只要复制一个正常项目中的.classpath文件到当前工程中就可以了,大致类似下面:

<classpathentry kind="src" path="src"/><classpathentry kind="output" path="build/classes"/>,大致意思是项目中的src目录用于存放源码,build后的class文件存放于build/class目录(如果项目中将一些jar包加入到build path,则可能还会有下面的配置 这个视情况而定<classpathentry kind="lib" path="WebContent/WEB-INF/lib/xxx.jar"/>...),可以拷贝工作空间中其他项目的.classpath文件,或者新建一个项目,将生成的.classpath文件拷贝过来。这下终于可以在Eclipse中运行了!

    运行test类是可以运行了,但是抛异常了,这个很正常,因为是web项目,有些配置文件都没有读取,当然会抛错,需要发布到服务器上,于是就在Eclipse的server视图下new了一个server,然后右键创建的server,选择add and remove,然后弹出一个窗口,左边显示的是可以发布的web 项目,右边显示的是该server中已经运行的web 工程。可是,奇了怪了,为什么左边没有显示刚才check out下来色web工程呢?重试了几次,还是不行,重新编译过,也重启过Eclipse(这些步骤虽然不是每次都管用,但是出了问题还是要做一下的,指不定那次就是因为没有编译,或者工具的问题,搞得我们焦头烂额大笑)。那估计就不是工具的问题了,难不成这还不是一个web项目啊,可以不应该啊,项目中的目录结构是标准的web archive格式啊,有WEB-INF目录,下面是web.xml,class目录,lib目录,项目中还有jsp,servlet等,不应该啊!然后看了下以前的web 工程,都是能正常发布到server中的,那估计应该是工具没有认为这是一个web 工程,所以不能发布。那为什么工具不认为这是一个web 工程呢?不知道了哭...问度娘啊大笑,然后发现百度上没搜到什么有用的信息,百度不行还有google大神啊大笑。关于技术方面google还是比百度准些啊,然后google中找到了些有用的信息,原来是.project文件的问题,用Eclipse创建项目不仅会生成.classpath文件,还会生成.project文件,里面是一些关于项目的配置,比如项目名称之类的,估计这个配置文件是供Eclipse工具使用的。这个好办,到其他正常的web工程中复制一下就可以了,大致是下面这样:

    <name>Channel_MailSender</name>
    <comment></comment>
    <projects></projects>
   ...
    <natures>
        <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>

name节点中的就是项目的名称,这个需要改成当前项目的名称。然后就去发布了。我去,怎么还是不能发布啊,崩溃了抓狂。。。看来还是不彻底啊,对于网上有些解决方法,可能能够解决别人的问题,但是不一定能解决自己的问题啊。然后继续google,发现原来少了.settings目录。。。我勒个去,不管三七二十一,先考个过来再说。然后看到里面有一下几个文件:

这些文件估计也是Eclipse工具生成的,工具会用到,懒得去管了,大概看了下文件中的内容,有些地方还是需要修改的,.jsdtscope文件中kind="src"的地方,path需要改正确,如果是Eclipse的话默认应该是WebContent,MyEclipse的话应该是WebRoot,然后org.eclipse.wst.common.component文件中deploy-name相关的地方需要配置成对应的工程名,其他一些参数视情况而定,需要保持与当前工程一致。好了现在来发布一下,在server视图中右键创建的server,点击add and remove,终于看到了check out下来的项目了可怜

    哎...以上这些问题可能永远都不会碰到,也可能突然就碰到了,碰到了也不要急,先自己去分析、猜想,自己解决不了了赶紧百度、google。因此记下了这些,希望对遇到同样问题的朋友能有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值