Earlier I posted the below topic in IDE section of javaranch. Haven't got any response. Since this topic is related to WSAD 5.1 I have posted it here to see if I could get any response.
I coded a simple HelloWorld program by creating a java project in WSAD. I added a datasource in my Test Server in WSAD. All I was trying to do was access the datasource using JNDI. Standard way of soing it (if it were a jsp or any J2EE application ) would be as follows
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/UASSUNILLOCALds");
For some reason Server was trying to read WEB-INF/config/server.properties file and was throwing a FileNotFoundException. I found a similar posting on the net where someone suggested to change the code as follows
1. Hashtable env = new Hashtable(); 2.env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory"); 3. javax.naming.InitialContext ctx = new javax.naming.InitialContext(); 4. DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/UASSUNILLOCALds");
And included whole bunch of jar files such as naming.jar, namingclient.jar, wssec.jar, lmproxy.jar, sas.jar, implfactory.jar, ecutils.jar and a implproperties.properties file into the classpath.Now I am able to get the context but I am getting ClassCastException on line 4. The reason is ctx.lookup is returning me the javax.naming.Reference object of DataSource "jdbc/UASSUNILLOCALds". I am using JDK 1.3 and included the classes12.jar oracle driver files.
I need to create a standalone java file which would be run as batch job. If I can access the datasource through JNDI then I could have placed the file as part of bigger application and use the server connection pools etc., But since this didn't work out and I am running out of time, I am planning to use iBatis. If anybody has any suggestions on how to get the issue rectified or any comments on the usage of iBATIS please let me know. I am new to iBTAIS too so not sure if that would work out or not.
Hi Sunil, Donno if this will solve your problem on 5.1; but I was facing the same problem with WS V6, datasource V5 and I just managed to solve it. Its basically a problem of missing jars in the client classpath. I have mentioned the full list of jars required in this blog -
Thank you VERY MUCH for posting your efforts. You saved me MORE than two days......
Joined: Apr 25, 2005
Okay, I am working through most of this issue within WSAD 5.1.1 and WAS 5.0.
What I am doing is going direct to the DataSource using the jndi.
I am able to get a POJO client running within WSAD by adding the following jars to the classpath:
When I move the client outside WSAD (updating the classpath with the above jars/properties) I get the below error:
Based upon my observations, I think I have covered the above recommendations....so I am at a lost why this does not work.
When I go search for the implfactory.jar, I do not see it.
Any help would be greatly appreciated.
Prasanth James M J
Joined: Jun 06, 2003
Russ, Now, shift to IBM JRE on your client JVM classpath and run the code again. it will work. Reason!? the client has some lookup dependencies with the IBM JRE Orb classes. Though, this is supposed to work with Sun JRE if you have the ibmorb.jar in your classpath, i could not figure it out. But it works with IBM JRE libs.!!