0

DEFINED THIS IN JSP FILE:

    <sql:setDataSource      
     driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
     url="jdbc:microsoft.sqlserver://localhost:1433;databaseName=GP"         
     user="sa" 
     password="sa123"
     var="dSource"/>   

    <sql:query dataSource="dSource" var="result">
         SELECT * FROM GP.FE_ENROLL_DATA 
    </sql:query>

StackTrace:

javax.servlet.jsp.JspException: Unable to get connection, DataSource 
invalid: "java.sql.SQLException: No suitable driver found for dSource" at

org.apache.taglibs.standard.tag.common.sql
              .QueryTagSupport.getConnection( QueryTagSupport.java:276) at

org.apache.taglibs.standard.tag.common
                    .sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159) at
org.apache.taglibs.standard.tag.el.sql.QueryTag.doStartTag(QueryTag.java:85) at
org.apache.jsp.enrollmentRecord_jsp
                ._jspx_meth_sql_005fquery_005f0(enrollmentRecord_jsp.java:477) at
org.apache.jsp.enrollmentRecord_jsp._jspService(enrollmentRecord_jsp.java:105) at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at
java.lang.Thread.run(Unknown Source)
Jorge Campos
  • 22,647
  • 7
  • 56
  • 87
OOP_LADY
  • 1
  • 1
  • 2

2 Answers2

1

Your connection URL is

url="jdbc:microsoft.sqlserver://localhost:1433;databaseName=GP"         

As far as I can tell, your URL should be either

url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=GP"         

for SQL Server 2000. Note the : instead of .. It can alternately have the form

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] 

for SQL Server 2012.

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724
  • I do not get error on defining – OOP_LADY Dec 05 '13 at 19:12
  • @OOP_LADY Your `DataSource` named `dSource` is built from the URL you specify in `sql:setDataSource`. You are registering a driver that doesn't map to the URL you want, which is why it says `no suitable driver`. – Sotirios Delimanolis Dec 05 '13 at 19:17
  • I tried url="jdbc:sqlserver://sqlserver\sqlexpress://localhost:1433;databaseName=GP" ------------------------------------------------------------------------------------- Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for dSource" – OOP_LADY Dec 05 '13 at 22:11
  • @oop you'll have to figure out the appropriate URL for whichever database you are using. – Sotirios Delimanolis Dec 05 '13 at 22:43
  • Connection con = null; String url = "jdbc:jtds:sqlserver://localhost:1433/"; String db = "GP"; String driver = "net.sourceforge.jtds.jdbc.Driver"; String userName ="sa"; String password="sa123"; int sumcount = 0; Statement st; try{ Class.forName(driver).newInstance(); con = DriverManager.getConnection(url+db,userName,password); String query = "SELECT * from FE_ENROLL_DATA"; st = con.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()){System.out.println(rs.getString(1));}} catch(Exception e) – OOP_LADY Dec 12 '13 at 19:56
  • @OOP_LADY Yeah, you had to find the right driver and corresponding URL. – Sotirios Delimanolis Dec 12 '13 at 19:56
0

Your connection URL is:

url="jdbc:microsoft.sqlserver://localhost:1433;databaseName=GP"         

Replace it with the following URL:

url="jdbc:sqlserver://localhost:1433;databaseName=GP"     

or:

url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=GP"       
Michael Petrotta
  • 59,888
  • 27
  • 145
  • 179