Hi,
While i am trying to connect to oracle DB to retrieve data. I am getting Error. Please help me if you can. I am using Tomcat5.0 Oracle 9i
in my Struts-config i have
<data-sources>
<data-source
type="org.apache.common.dbcp.BasicDataSource">
<set-property property="driverClassName"
vlaue="oracle.jdbc.driver.OracleDriver"/>
<set-property property="url"
vlaue="jdbc
racle:thin:@//myhost:1521/orcl"/>
<set-property property="username"
vlaue="scott"/>
<set-property property="password"
vlaue="tiger"/>
</data-source>
</data-sources>
My Action Class is
package ch03;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.Action;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LookupAction extends Action
{
public Double getQuote(
String symbol,
HttpServletRequest request)
throws Exception
{
Double price=null;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
DataSource dataSource=null;
try
{
dataSource = getDataSource(request);
conn= dataSource.getConnection();
stmt= conn.createStatement();
rs= stmt.executeQuery("select * from stocks where" + "symbol='" + symbol +"'");
if (rs.next())
{
double tmp=0;
tmp = rs.getDouble("price");
price= new Double(tmp);
System.err.println("price:" +price);
}
else
{
System.err.println("Symbol not found returning null");
}
}
catch(SQLException e)
{
System.err.println(e.getMessage());
}
finally
{
if (rs!= null)
{
try
{
rs.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
rs=null;
}
if (stmt!=null)
{
try{ stmt.close(); }
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
stmt=null;
}
if (conn!=null)
{
try{ conn.close(); }
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
conn=null;
}
}
return price;
}
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
Double price=null;
String target=new String("success");
if(form !=null)
{
LookupForm lookupForm = (LookupForm) form;
String symbol = lookupForm.getSymbol();
price = getQuote(symbol,request);
}
if(price == null)
{
target = new String("failure");
}
else
{
request.setAttribute("PRICE",price);
}
return(mapping.findForward(target));
}
}
ERROR:
HTTP Status 404:
Servlet Action is not avalibale.
when i am running without datasource. I can run code obviously without connecting to DB. So there is some problem with connection code
Please help me. Also what are jar files u mentioned?
Thanks
Lalit