Hi,
My goal is simple: within a Confluence servlet plugin, create a SQL connection to different database than Confluence uses and retrieve / store some data. Should be easy but after weeks it has become very frustrating and we're on the verge of dropping Confluence integration at all and just build a dedicated web application.
We took the following approaches:
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/DocControlDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM DATABASE.dbo.TABLE");
etcetcetc
Quite some topics can be found covering the ClassNotFoundException related to IntialContext. The one that seemed to work was listed here:
ClassLoader origCL = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(ComponentManager.class.getClassLoader());
//::TODO:: do lookup here
} finally {
Thread.currentThread().setContextClassLoader(origCL);
}
The ComponentManager does not exist anymore. I tried with ContainerManager but doesn't work either.
I found quite some reference material using google, but most of the comments are of the 2012-2014 era, and solutions posted there do not work anymore.
If somebody could create a simple example on how to include SQL connectivity, preferrably using JNDI, that would be awesome :-)
Been struggling to get JNDI connection for a while...
You are on the right way. I managed to get a sysdate from dual.
My current working draft is quite dirty, so I won't be posting it here for now.
BUT what you need to do to use ContainerManager is:
import com.atlassian.spring.container.ContainerManager
try {
Thread.currentThread().setContextClassLoader(ContainerManager.class.getClassLoader());
}
But PocketQuery plugin works somehow..
Solution must exist.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.