使用tomcat部署项目时,出现如下异常:
HTTP Status 500 - javax.naming.NameNotFoundException: Name [jdbc/mp] is not bound in this Context. Unable to find [jdbc].
type Exception report
message javax.naming.NameNotFoundException: Name [jdbc/mp] is not bound in this Context. Unable to find [jdbc].
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.RuntimeException: javax.naming.NameNotFoundException: Name [jdbc/mp] is not bound in this Context. Unable to find [jdbc]. com.google.common.base.Throwables.propagate(Throwables.java:160) com.xinhunbao.jersey.AppFilter.openConnection(AppFilter.java:78) com.xinhunbao.jersey.AppFilter.doFilter(AppFilter.java:42) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)在网上找到相关解答比较少,尝试了很多办法,如果单独用tomcat启动项目没有问题,但是使用IDEA配置的tomcat启动就会报此异常。最后找到解决办法如下:
1.在tomcat安装目录下进入conf-catelina文件夹,创建demo.xml文件。文件配置如下,仅供参考:
<Context path="/demo" docBase="/D:/work/demo/target/demo" reloadable="true"> <Resource name="jdbc/mp" auth="Container" type="javax.sql.DataSource" username="root" password="123456" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://192.168.1.58:3306/demo?useUnicode=true&characterEncoding=UTF-8"/> </Context>2.在IDEA中点击Edit Configurations----Deployment,在Application context:后添加/demo,然后便可以成功运行。