Thread: Problem connecting to pgsql database from NB
Hi everybody :)
Its my first time writing to the mailing list, firstly I would like to thank u all for all the support u provide us it has been fundamental in each step I give while developing my project.
Im new to all of this, its my first time working with Net Beans and PostgreSQL but Im willing to learn it all :)
Im developing a simple web app using NB 5.5.1 and through a servlet Im calling a class which accesses a pgsql database v8.2.4 and Im getting the following:
RAR5099 : Wrong class name or classpath for Datasource Object : {0}
java.lang.ClassNotFoundException: org.postgresql.ds.PGSimpleDataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1511)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1292)
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java :216)
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:83)
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java :83)
at com.sun.enterprise.resource.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:56)
at com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToPool(AbstractResourcePool.java :1263)
at com.sun.enterprise.resource.AbstractResourcePool.createResources(AbstractResourcePool.java:596)
at com.sun.enterprise.resource.AbstractResourcePool.initPool(AbstractResourcePool.java:186)
at com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(AbstractResourcePool.java:362)
at com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:289)
at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:174)
at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection (ConnectionManagerImpl.java:312)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:222)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection (ConnectionManagerImpl.java:152)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:145)
at com.sun.gjc.spi.DataSource.getConnection(DataSource.java:93)
at org.AccessClientInfo.getClientInfo(AccessClientInfo.java:53)
at org.ClientInfo.doGet(ClientInfo.java:33)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java :278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal (StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter (ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java :844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run (TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
RAR5038:Unexpected exception while creating resource
RAR5117 : Failed to obtain/create connection. Reason : Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource
RAR5114 : Error allocating connection : [Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource]
java.sql.SQLException : Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource
StandardWrapperValve[ClientInfo]: Servlet.service() for servlet ClientInfo threw exception
java.lang.NullPointerException
at org.ClientInfo.doGet(ClientInfo.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java :820)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal (StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter (ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java :844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run (TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Im using Linux, I've already copied "postgresql-8.2-506.jdbc3.jar" driver to "/opt/SUNWappserver/domain/domain1/lib/ext" and also followed tutorials to create connection pools on Net Beans, but yet not working.
Here is part of my code:
public class AccessClientInfo
{
private String client_id;
private Client client;
public AccessClientInfo(String client_id)
{
this.client_id=client_id ;
}
private DataSource getJdbcConnectionPool() throws NamingException
{
Context c = new InitialContext();
return (DataSource) c.lookup("java:comp/env/jdbc/connectionPool");
}
public Client getClientInfo()
{
Connection connection=null; //connection instance
Client client=null; //instance of Client used to retain retrieved data
try
{
//connect to database
DataSource dataSource=getJdbcConnectionPool();
connection=dataSource.getConnection();
//prepare the SQL query
String query="SELECT cname,address,phone,fax FROM ClientsInfo WHERE cid="+client_id;
PreparedStatement stat=connection.prepareStatement(query);
//set up the result set to retain all queried data
ResultSet rs=stat.executeQuery();
if(!(rs.next()))
return null;
String cname=rs.getString(1);
String address=rs.getString(2);
String phone=rs.getString(3);
String fax=rs.getString(4);
//declare an instance of SubjectName to match returned data with class' instance variables
client=new Client(cname, address, phone, fax);
connection.close();
}
catch(Exception err)
{
System.out.println(err.toString());
}
return client;
}
I would appreciate if u could save me once again. And sorry for this long email :)
--
Flavio Monteiro