Eclipse报错:Setting property 'source' to 'org.eclipse.jst.jee.server:test1' did no
0赞今天倒入一个项目,启动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的定义如下:
在test2中的.jsdtscope的定义如下:
在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可以修改了。