java - @Resource Injection 突然停止工作
问题描述
你好,在我的项目中连接到数据库我使用 contex.xml 文件(我有所有数据库数据)和 @Resource(name = "xyz") 注释并使用它在我的 Servlet 中创建数据源:
@WebServlet(name = "BookControllerServlet", urlPatterns = {"/BookControllerServlet"})
public class BookControllerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private BookDbUtil bookDbUtil;
@Resource(name = "sql2226123")
private DataSource dataSource;
// init method will be called by the app server when this servlet is loaded or initialized
@Override // we inherit it from GenericServlet
public void init() throws ServletException {
super.init(); //To change body of generated methods, choose Tools | Templates.
// create our book db util ... and pass in the connection pool / datasource
try {
bookDbUtil = new BookDbUtil(dataSource); // bookDbUtil is a data member that we've defined
} // dataSource is resource injection item our connection pool and we're passing it right here
catch (Exception exc) {
throw new ServletException(exc);
}
}
但是,它每天都突然停止工作。我的意思是 @Resource(name = "sql2226123") 不提供任何数据。数据源 == 空,myConn == 空;发生了什么?context.xml 是 100% 好的,此时没有更改。如果我没记错的话,我最近有一些 jdk 更新。也许它与它有关?我当前的 java 版本是:1.8.0_81-b13。有任何想法吗?有人听说过吗?
这是我的 context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context path="jadbc/ParkingSystem">
<Resource name="sql2226123"
auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="sql2226123" password="xxxxxxxx"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://sql2.freemysqlhosting.net:3306/sql2226123"/>
</Context>
解决方案
推荐阅读
- java - Java中的窗口截图
- c# - VS2017 Outlook插件,修改联系人页面
- node.js - 连接到 mongodb Atlas 的身份验证问题
- java - 基于用户输入使用 Quartz 创建动态 Spring Batch 作业
- python - 在设备功能中寻找字符串;开发者;Python
- python - Python Celery:如何无序加入任务结果?
- java - 使用 PKIXValidator 和 BouncyCastleFipsProvider 进行服务器证书验证?
- ruby-on-rails - Twilio:使用多个不同的消息响应用户输入
- c++ - 为什么这个不正确的 std::function 初始化使用 MSVC 编译?
- php - 在 Magento 2.2 中支付订单后自动发送发票电子邮件