Hi,
I have a bean instantiated within my web service that connects to a dsn,
however I am having some difficulty at the moment.
I am trying to connect to MSSQL server using jtds,
I followed this procedure from apache site under JNDI Datasource HOW-TO,
server.xml
=============
<Context path="/axis" docBase="axis" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_neotest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/axis"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/axis">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- Class name JDBC driver (tds)-->
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://devserver:1433/MyWebService?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
this is my bean, it is just a test table at the moment,
I only want to select data and dump it to a log file,
package com.leocate.database;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import com.leocate.logging.NeoFaultLogging;
import com.leocate.logging.NeoTraceLogging;
public class NeoTestConnection {
private NeoTraceLogging traceLogger;
public NeoTestConnection(){}
public void connectToDsn(){
try{
this.traceLogger = new NeoTraceLogging("c:\\webserviceLogs\\logs\\jdbcsuccess.log");
Context ctx = new InitialContext();
if(ctx==null){
NeoFaultLogging logger = new NeoFaultLogging("c:\\webserviceLogs\\logs\\jdbcfault.log");
logger.writeFault(new Exception("No Connection"),"jndi connection");
}
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/neotest");
if(ds!=null){
Connection conn = ds.getConnection();
if(conn!=null){
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select a,b,c,d,e,f,g,h,i,j,k from NeoTestTable");
if(rst.next()){
traceLogger.writeLog(rst.getString(1));
traceLogger.writeLog(rst.getString(2));
traceLogger.writeLog(rst.getString(3));
traceLogger.writeLog(rst.getString(4));
traceLogger.writeLog(rst.getString(5));
traceLogger.writeLog(rst.getString(6));
traceLogger.writeLog(rst.getString(7));
traceLogger.writeLog(rst.getString(8));
traceLogger.writeLog(rst.getString(9));
traceLogger.writeLog(rst.getString(10));
traceLogger.writeLog(rst.getString(11));
traceLogger.writeLog(rst.getString(12));
}
conn.close();
traceLogger.saveLog();
}
}
}catch(Exception e){
NeoFaultLogging logger = new NeoFaultLogging("c:\\webserviceLogs\\logs\\jdbcfault.log");
logger.writeFault(e,"dsn connection fault");
}finally{
try{traceLogger.recoverClose();}catch(Exception rc){}
}
}
}
however I get this error,
==============================================================================
dsn connection fault
Details :
date / time : Thu Nov 18 09:51:49 GMT 2004
----
javax.naming.NameNotFoundException: Name neotest is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.leocate.database.NeoTestConnection.connectToDsn(NeoTestConnection.java:36)
at com.leocate.trends.TrendsContentHandler.endDocument(TrendsContentHandler.java:64)
at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.leocate.trends.RegisterTrendsContentHandler.parseXmlSrc(RegisterTrendsContentHandler.java:70)
at com.leocate.spreadSheets.SpreadSheetContentHandler.endDocument(SpreadSheetContentHandler.java:70)
at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.leocate.spreadSheets.ContentHandlerPublishingBean.parseXmlSrc(ContentHandlerPublishingBean.java:69)
at com.leocate.spreadSheets.ExcelPublishingService.createSpreadSheet(ExcelPublishingService.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(Unknown Source)
at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown Source)
at org.apache.axis.providers.java.JavaProvider.invoke(Unknown Source)
at org.apache.axis.strategies.InvocationStrategy.visit(Unknown Source)
at org.apache.axis.SimpleChain.doVisiting(Unknown Source)
at org.apache.axis.SimpleChain.invoke(Unknown Source)
at org.apache.axis.server.AxisServer.invoke(Unknown Source)
at org.apache.axis.transport.http.AxisServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:536)
----
thanks for any help or advice,
jp.