分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

最近把Eclipse的maven插件从m2eclipse更新到m2e后出了一些莫名其妙的的问题。今天又出了一个,就是Eclipse新建的Maven Web project在tomcat里启动后报错,具体报错信息如下:

Shell代码  Eclipse报错 Setting property 'source' to 'org eclipse jst jee
  1. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test1' 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文件夹。具体截图如下:

Eclipse报错 Setting property 'source' to 'org eclipse jst jee

一般来说正常的maven项目的web资源文件都是默认位于src/main/webapp下,WebContent只是普通的Dynamic Web project使用的默认Web文件目录。而我这个工程竟然同时生成了这两个目录,而且两个目录下都有WEB-INF文件夹。这个是不是问题的根源呢?

 

为了排查,我又重新新建了一个maven web project,工程名为test2。新建完后发现并没有生成WebContent文件夹。我们都知道,Eclipse中建Maven Web工程需要添加Project Facets。具体步骤如下图所示:

1.右键--Properties

Eclipse报错 Setting property 'source' to 'org eclipse jst jee

2.选择Project Facets,然后点击右边的Convert to faceted from...

Eclipse报错 Setting property 'source' to 'org eclipse jst jee

3.在弹出的窗口中选择Dynamic Web Module

Eclipse报错 Setting property 'source' to 'org eclipse jst jee
4.如上图所示在窗口下方还有一个Further configuration available...,点击后弹窗如下,打开完后终于找到了原因所在,在这一步需要设置工程的content directory,如果不设置,目录名称默认就是WebContent。

Eclipse报错 Setting property 'source' to 'org eclipse jst jee
前一步我是没有设置,所以才会生成默认的WebContent目录。

 

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

解决完问题后,心里还是有点不踏实,问题的根源到底是什么呢。逐一比对了两个工程的文件内容后终于发现了区别所在。区别在于工程.settings文件夹下。.settings目录下的文件附图如下:

Eclipse报错 Setting property 'source' to 'org eclipse jst jee

上图高亮的部分的两个文件就是区别所在。

其中.jsdtscope中有一行定义:

Xml代码  Eclipse报错 Setting property 'source' to 'org eclipse jst jee
  1. <classpathentry kind="src" path="WebContent"/>  

 而test2工程的定义如下:

Xml代码  Eclipse报错 Setting property 'source' to 'org eclipse jst jee
  1. <classpathentry kind="src" path="src/main/webapp"/>  

另外org.eclipse.wst.common.component文件中定义了工程的wb-resource

Xml代码  Eclipse报错 Setting property 'source' to 'org eclipse jst jee
  1. <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>  

test2工程的定义如下:

Xml代码  Eclipse报错 Setting property 'source' to 'org eclipse jst jee
  1. <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>  

 

综上所述,推测tomcat在部署工程时会去查找.settings中定义的配置。如果配置有问题,则会报错。上面的问题,只要把test1工程.settings目录下对应的两个文件的配置修改后重新部署就能正常启动了。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Eclipse报错 Setting property 'source' to 'org eclipse jst jee

相关文章:

  • 2021-11-07
  • 2021-06-17
  • 2021-09-28
  • 2021-12-18
  • 2021-04-03
  • 2021-05-25
  • 2021-12-14
猜你喜欢
  • 2021-04-09
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-09-02
  • 2022-12-23
  • 2021-06-03
相关资源
相似解决方案