xiaobingbing

Eclipse报错:Setting property 'source' to 'org.eclipse.jst.jee.server:test1' did no

0
阅读(22312)

今天倒入一个项目,启动tomcat后抛出警告:Setting property 'source' to 'org.eclipse.jst.jee.server:mobile_scm_basic' did not find a matching property.

查看了下网上大部分的解答如下:

出现SetPropertiesRule警告的原因是因为Tomcat在server.xml的Context节点中不支持source属性:<Context docBase="…" path="/…" source="org.eclipse.jst.j2ee.server:…"/>
解决方法是在Servers视图里双击创建的server,然后在其server的配置界面中选中"Publish module contexts to separate XML files"选项。

不过我按这种方式操作后发现还是会报这个问题,除了这种方式之外网上也没有什么参考资料了,这个问题纠结了我几天。仔细检查工程结构后发现我的工程根目录下生成了一个WebContent文件夹。具体截图如下:


一般来说,正常maven项目的web资源都是默认放在webapp文件夹内,,WebContent只是普通的Dynamic Web project使用的默认Web文件目录; 而我这个导入的工程竟然有两个这个目录;两个目录下都有WEB-INF这个文件夹。在eclipse启动tomcat,eclipse是默认将WebContent目录下的WEB-INF打包部署在tomcat容器里了; 而这项目web资源都在webapp目录下。所以我做了如下操作:

1、删除该工作空间该项目下的.setting文件夹

2、在eclipse里重新刷新一下项目;

3、右击项目选择propertites然后选择 Project Facets ,然后勾选Dynamic Web Module 、java、javascript:如下图:



build/classes为默认的class输出文路径。


修改要发布的Content directory 的文件夹名即可。

添加完Facets后,再把工程部署在tomcat启动,发现之前的错误已经不存在了。

解决完问题之后,做了一个小测试,建立了两个测试工程;test1和test2;

对比连个工程下的.setting文件下的.jsdtscope 和 org.eclipse.wst.common.component

如图:

在test1中的.jsdtscope的定义如下:

  1. <classpathentry kind="src" path="WebContent"/>  
在test2中的.jsdtscope的定义如下:

  1. <classpathentry kind="src" path="src/main/webapp"/>  
在test1中的 org.eclipse.wst.common.component  定义如下:

<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/> 


在test2中的 org.eclipse.wst.common.component  定义如下:

<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> 

另外:如果有人想和我一样在tomcat的设置中server locations里修改项目发布目录的话,只要发布过一次项目你会发现,server locations里面的选项是灰色的,不可以改,怎么办呢,这就需要移除项目,清空文件,然后你就惊奇的发现,server locations可以修改了。