我想使用java应用程序中的碳数据源创建一个数据库连接。我得到了下面的例外
com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:116) at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:124) at javax.naming.InitialContext.lookup(InitialContext.java:411) at org.wso2.ApiInvocationHnadler.DBConnection.testJndiDataSource(DBConnection.java:77) at org.wso2.ApiInvocationHnadler.ApiInvocationHandler.handleRequest(ApiInvocationHandler.java:35) at org.apacheorg.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:83),org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:64),org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220),org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83),org.apache.axis2.engine.AxisEngineorg.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.processRESTRequest(MultitenantMessageReceiver.java:558) at org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.doNhttpREST(MultitenantMessageReceiver.java:498) org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.doREST(MultitenantMessageReceiver.java:317) at org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.processRequest(MultitenantMessageReceiver.java:210) at org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver .receive(AxisEngine.java:180)org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:168) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor .receive(MultitenantMessageReceiver.java:77)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
以下是主数据源. the
用于jdbc/test_db jdbc:mysql://localhost:3306/test_db?autoReconnect=true根根的数据源test_dbcom.mysql.jdbc.Driver 50 60000真选择1 30000
Java代码
Hashtable env = new Hashtable(); env.put(Context.INITIAL\_CONTEXT\_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); env.put(Context.PROVIDER\_URL, "rmi://localhost:2199"); InitialContext ctx = new InitialContext(env); DataSource ds = (DataSource) ctx.lookup("jdbc/test\_db");
我该如何解决这个问题呢?
发布于 2015-01-27 03:58:16
问题是由于租户流,必须获得超级租户流和查找数据源。
发布于 2015-01-16 18:46:01
我想指出一个用于创建数据源的代码。你可以从这里找到它。只需创建带有默认构造函数的InitialContext,它就可以从master-datasources.xml文件加载数据源。
dataSource = (DataSource) InitialContext.doLookup(DataSourceName);
https://stackoverflow.com/questions/27985204
复制相似问题