`
Virgo_S
  • 浏览: 1140775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse在Tomcat中部署Webapp

阅读更多
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in class path resource [applicationContext-resources.xml]: Circular placeholder reference 'jdbc.driverClassName' in property definitions
    at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:268)
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:554)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:528)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:363)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

这个问题主要是因为在appfuse生成的项目里配置文件jdbc.properties里都使用了占位符 placeholder,如果项目需要正常在Eclipse的Tomcat里Run,这个文件的占位符应该正确的给Replace掉。出现上面的异常主要就是占位符没有被正确的Replace掉。下面看下如何解决。
这个问题我们经常是重新在Console下面运行mvn package 或者mvn install后,再重新Deploy就可以了。但是实践证明是行不通的。这是为什么呢?
Target里的jdbc.properties文件,发现其已经给正确Replace掉了。只是没有正确地给Eclipse Deploy到tomcat里。
根据上面,我初步确定是Eclipse配置的问题。
1.maven是会把placeholder自动replace的.这个我们可以通过查看Target/classes目录下面的jdbc.properties文件可以看到,经过maven处理后的placeholder是给正确replace了.
2.在Eclipse里面部署过后的jdbc.properties文件的plackholder没有被replace掉.

Solution:
我们的jdbc.properties文件就是位于src/main/resources目录下面的.我们可以看到Excluded里面已经有很多 properties给Excluced了.这是i18n的文件,同样也是需要maven进行编码处理的,而jdbc.properties文件是要进行 replace plackholder处理.本质上是一样的.这里把文件加进去后,eclipse也不会进行处理的.所以,我们需要把jdbc.properties文件同样加入excluded里面.我们不需要Eclipse对这些文件进行处理.maven处理就行了.这样子,Eclipse 就不会把maven处理的结果用原来的版本覆盖了.

好,现在说回到部署问题.我们的War工程在maven里,只要把target/classes里的东西与src/webapp里面的东西放到 Tomcat就行了.这次相关的配置文件有org.eclipse.wst.common.component. Eclipse是如何知道哪些内容需要部置到Tomcat就是在这个文件里面定义的.关键的节点就是<wb-resource>.由前面所说我们需要的内容只有两个target/classes,src/webapp.所以实际上我们只要把这两个目录上面的东西放到正确的部署位置就行了.其它内容都是多余的.于是我只保留下面两个内容
<wb-resource deploy-path="/" source-path="src/main/webapp"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="target/classes"/>
这里的部署,只是把这里指定的目录Copy过去而已不做任务处理,(从我目前观察的情况是这样子的).
我们之前为什么不会呢,就是因为有很多个这样的节点.有些节点会引用没有处理过的文件.Eclipse再一次把没有处理过的文件盖掉处理过的文件,就出现的我们刚开始的时候的问题了.
分享到:
评论

相关推荐

    JAVAWEB教程jsp环境搭建部署网站eclipsetomcat详细图文.pdf

    具体来说,我们将学习如何下载和安装Tomcat服务器,然后在Eclipse中配置和运行Tomcat服务器,最后将我们的项目部署到Tomcat服务器上。 一、Tomcat服务器下载和安装 在开始之前,我们需要下载Tomcat服务器。打开...

    tomcat项目没部署webapps下,如何找

    NULL 博文链接:https://bigdragon.iteye.com/blog/2369978

    Tomcat的特点.docx

    Tomcat 也提供了一个应用管理器,通过这个应用,用户可以在远程通过 Web 部署和撤销应用。 1.2 安全管理 Tomcat 提供 Realm 支持,Realm 类似于 Unix 里面的 group。Tomcat 用 Realm 将不同的资源赋给不同的用户,...

    eclipse构建Maven项目.doc

    2. 项目将被部署到Tomcat服务器上,并且可以在浏览器中访问。 使用eclipse构建Maven项目可以帮助开发者更好地管理项目依赖关系、编译、测试和打包,并且可以与Tomcat服务器集成,方便项目的开发和部署。

    flex+spring+struts2+ibatis 整合的eclipse工程

    四,导入该项目到eclipse并部署到tomcat下 五,右击该项目进入properties中,点击Flex Build Path,把Output folder 中的C:\Tomcat 6.0改为你的tomcat位置Output folder URL中端口为你的tomcat服务端口 六,点击...

    rswebapp:RedString 匹配服务后端 webapp

    rswebapp RedString 匹配服务后端 webapp Java 8 (JDK8)、Tomcat 8、面向 Java EE 开发人员的 Eclipse IDE Luna (4.4) 网络服务器:Tomcat 8 SQL 数据库:文件中的 MySQL 或 HSQLDB 为开发环境构建一个war文件,使用...

    jess-webapp:带有Eclipse中的Jess Rule Engine的Web应用程序示例

    Jess Web应用程序 该应用程序使用Jess规则引擎根据用户已经购买的内容为他们创建自动推荐。 src/main/webapp文件夹... 例如,为了打包所有内容并将其作为WAR部署到tomcat,请运行: ./gradlew war 然后,从build/lib

    latihan-web:Web 培训穿着 Spring Web

    要求Java 8 Spring Tool Suite、Eclipse WTP 或类似的运行应用程序此应用程序使用 Webapp Runner ( ) 部署在 Heroku 上,因此 Web 也可​​以在具有与部署完全相同(一致)服务器的本地计算机上运行。 要运行该项目...

    TTG:TTG Web应用程序

    甚至可以从以下位置部署这些webapp的其他webapps文件夹:tomcat7-&gt; libexec-&gt; wtwebapps 请注意上面的详细信息,然后继续... 运行此Web应用程序的最简单方法是遵循以下步骤: 完全导入之前,请确保正确配置了...

    俄罗斯方块源码双人对战版_使用java编写的js

    本程序采用GWT(Google Web Tookit)开发,是...发布包tetris.war直接复制到tomcat下的webapp文件下,启动tomcat即可,热部署也可. 源码包Tetris.rar解压后,将其导入到eclipse即可,已含jar包. 需要同时开启两个页面才可运行.

    ManningSecureJavaApplications:开发用于Manning liveProject的安全Java应用程序

    ManningSecureJava应用程序为manning liveProject开发安全的Java应用程序Java版本该程序是在Java版本1.8上开发的,因此您应该下载最新的JRE(如果要构建,则要下载JDK),以确保可以在Eclipse中使用该程序。...

    Jetty中文手册

    在Jetty中部署应用 部署管理器 部署绑定 热部署 Context提供者 如何部署web应用 webApp提供者 如何部署第三方产品 部署展开形式的web应用 使用Jetty进行开发 如何使用Jetty进行开发 如何编写Jetty中的Handlers 使用...

    dubbo admin 2.5.4 jdk1.8亲测可用管理控制台

    2、将其中的 dubbo-admin导入到eclipse,修改此项目中的JDK 3、修改项目中的pom文件,加上 &lt;finalName&gt;dubbo-admin&lt;/finalName&gt; ,这样打包后的WAR包名字就是dubbo-admin。 4、打开dubbo-admin/src/main/webapp/...

    Restful_Service:Restful Service CRUD(Java,Spring,MySql,TDD,单元测试,Maven,eClipse)

    周到的服务1.简介该项目用于CRUD操作,并提供周到的服务2....部署指南下载项目的存档文件提取项目存档文件使用mvn clean install构建项目将生成的war文件从目标目录复制到Web服务器中的webapp目录中

    StudentManagementSystem

    学生管理系统 这是一个使用 spring 框架、javascript、MongoDB 等...在默认设置中启动 MongoDB(在默认端口中)(您可以在 src/main/webapp/resources/database.properties 文件中设置 mongodb 属性) 如果一切正常,

    solr-5.2.1-src.tgz源码

    Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: ... Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示... 部署到tomcat,开始Solr

    solr-5.2.1.part1.rar 编译第1部分,共2部分

    Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: ... Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示... 部署到tomcat,开始Solr

    apache-solr-ref-guide-5.2.1用户手册与搭建指南.rar

    Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: ... Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示... 部署到tomcat,开始Solr

    solr-5.2.1.part2.rar 编译 第2部分,共2部分

    Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: ... Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示... 部署到tomcat,开始Solr

Global site tag (gtag.js) - Google Analytics