如题,eclipse导入myeclipse的项目。通过Project Facets进行转换,将其转换为web项目。
在进过一系列处理后,将problem里的红叉叉给处理后,启动tomcat就报了个“class path resource [spring-MVC.xml] cannot be opened because it does not exist”的异常。
查看了代码“public static ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("spring-MVC.xml");”
我将其改写为
“public static ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("classpath*:spring-MVC.xml");”
但还是报了个“No bean named 'XXXService' is defined”,因此我将其代码还原,将spring-MVC.xml移动到src目录下(之前改文件在web-info的目录下)
这下算是解决了文件路径查看问题,但接着又报了个"Name [jdbc/TestPool] is not bound in this Context. Unable to find jdbc"。
这异常的解决方法:
第一步:在java代码里将
Context context= new InitialContext();
ds = (javax.sql.DataSource) context.lookup("java:comp/env/jdbc/TestPool");
改为
Context context = new InitialContext();
Context envContext = (Context)context.lookup("java:comp/env");
ds = (javax.sql.DataSource) envContext.lookup("jdbc/TestPool");
第二步,打开tomcat的service.xml,添加以下配置:
<Resource name="jdbc/TestPool" auth="Container"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
type="javax.sql.DataSource" username="username" password="password"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="300" maxIdle="30" maxWait="10000"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
/>
第三步,打开tomcat的context.xml,添加以下配置:
<ResourceLink global="jdbc/TestPool" name="jdbc/TestPool" type="javax.sql.DataSource"/>
就这样,项目启动成功了。