Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSE项目中使用InitialContext数据库信息_Java_Maven_Jakarta Ee_Jdbc - Fatal编程技术网

如何在JavaSE项目中使用InitialContext数据库信息

如何在JavaSE项目中使用InitialContext数据库信息,java,maven,jakarta-ee,jdbc,Java,Maven,Jakarta Ee,Jdbc,这可能是一个有点奇怪的问题,但我不知道如何用另一种方式来做。基本上,我在两个maven项目之间共享连接代码。一个是Maven Web应用程序,另一个是常规Maven项目 为了设置数据库连接上下文,我在Maven web应用程序中使用META_INF/context.xml 但是,常规Maven项目不使用此文件,因此在运行获取数据源的代码时: Context envCtx = (Context) new InitialContext().lookup("java:comp/env"); dbPoo

这可能是一个有点奇怪的问题,但我不知道如何用另一种方式来做。基本上,我在两个maven项目之间共享连接代码。一个是Maven Web应用程序,另一个是常规Maven项目

为了设置数据库连接上下文,我在Maven web应用程序中使用META_INF/context.xml

但是,常规Maven项目不使用此文件,因此在运行获取数据源的代码时:

Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
dbPool = (DataSource) envCtx.lookup("jdbc/MyAppUCP");

当然会抛出NamingException。如何使用常规Maven java应用程序重用这种获取数据库连接的方法?将META\u INF/目录复制到项目中不起作用。

带有默认构造函数的InitialContext仅在托管环境(j2EE容器)中起作用。如果需要从JavaSE进程查找JNDI,则需要将属性对象作为参数传递给重载构造函数

每个应用程序/Web服务器都有自己的一组属性,需要在property对象中设置这些属性。请参阅app server的文档()


同样,在从外部进程查找JNDI条目时会有安全约束

显示您的jdbc资源,也许您只是没有正确地命名它。它在Maven web应用程序中运行良好。这不是问题所在。问题是我希望能够在常规maven项目中使用envCtx.lookup(“jdbc/MyAppUCP”)。