有没有办法在类调解器中使用WSO2数据源?我试图用Google搜索,但一无所获。有可能这样做吗?
答案 0 :(得分:1)
如果将数据源公开为JNDI数据源,则可以使用JNDI数据源直接访问数据源。
//imports
import javax.naming.Context;
import javax.sql.DataSource;
import javax.naming.InitialContext;
try {
Hashtable environment = new Hashtable();
environment.put("java.naming.factory.initial", "org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory");
Context initContext = new InitialContext(environment);
DataSource ds = (DataSource)initContext.lookup("jdbc/MyCarbonDataSource");
if (result != null) {
// Do your work here
conn = ds.getConnection();
st = conn.createStatement();
rs = st.executeQuery("SELECT * FROM Customer");
} else {
//handle it
}
} catch (NamingException e) {
e.printStackTrace();
}
有关详细信息,请参阅this
答案 1 :(得分:0)
为此,将其设为OSGi包并通过声明性服务获取向其注入的数据源服务(编写一个充当bundle激活器的新类)。数据源服务的引用名称为org.wso2.carbon.ndatasource
。服务接口为org.wso2.carbon.ndatasource.core.DataSourceService
。注入服务后,您将能够通过此访问可用的数据源。
maven依赖
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.ndatasource.core</artifactId>
<version>{set.carbon.platform.version.here}</version>
</dependency>
部署此osgi包时,将其放在dropins
文件夹中,以便碳可以将其识别为osgi包。
可能有助于实现此目的的一些资源: