I was following the following instructions:
http://www.eclipse.org/articles/article.php?file=Article-EclipseDbWebapps/index.html
in order to set-up a derby database server and everything works fine. I created the DB and could easily access it. however, these instructions use JSP to access my DB and I wand to change it so that I can access the DB through my custom Java classes but I cant create any connections to the DB. I simply tried:
Connection con = DriverManager.getConnection
("jdbc:derby://localhost:1527/features", "root", "root");
Note: here my DB is names features
I get the error:
java.sql.SQLException:
No suitable driver found for jdbc:derby://localhost:1527/features
I tried loading the class for the driver:
Class.forName("org.apache.derby.jdbc.ClientDriver");
I get the error:
java.lang.ClassNotFoundException:
org.apache.derby.jdbc.ClientDriver
I dont know where to find and put org.apache.derby.jdbc.ClientDriver. How come in the instructions they only add a context.xml under META_INF and everything work? What am I missing?
Did you:
Copy the file derbyclient.jar from that folder to your TOMCAT_ROOT/lib
folder (if you're using Tomcat 5.x, install into
TOMCAT_ROOT/common/lib). This installs the Derby JDBC driver into
Tomcat for use in a DataSource.
You need the derbyclient.jar in the classpath.
Related
I'm getting a provision error when using PostgreSQL JDBC on GraphDB. Actually, I created a connection between postgresql and Graphdb by a virtual repository, and I made a ODBC file which includes the RDF mapping information.
Expected: Normaly I can browse PostgreSQL data's hierarchy and so on in GraphDB.
Error: The connection was fine and the repository was created successfully, but when I tried to browse the data, I got this error:
Actions that I did: I did go /opt/graphdb-free/app/lib/plugins/dependencies-plugin/dependencies-plugin.jar to modify the dependency parameter, but it didn't change anything. I did checked the syntax of ODBC file and I don't see anything wrong there.
Anyone have been though this? Was I in the right place to modify the dependency? Or it's something else?
I am pretty new to java DB and I'm trying to set up Java DB in NetBeans IDE using this tutorial: https://netbeans.org/kb/docs/ide/java-db.html
During the step, where it tells to create database, I get such an error:
An error occurred while creating the database: java.lang.ClassNotFoundException: org.apache.derby.jdbc.Clientdriver
How do I fix this issue?
Which version of Derby / JavaDB are you using?
If it is 10.15.1.3, see this response: Where is org.apache.derby.jdbc.ClientDriver for version 10.15.1.3?
Within Netbeans there seems to be the same issue with ClientDriver. As a workaround, download and use Derby 10.14.2.0 instead. A Netbeans bug report Apache JIRA Netbeans-3424 (https://issues.apache.org/jira/browse/NETBEANS-3424) has been submitted.
I found it in lib\derbytools.jar\org\apache\derby\jdbc
copied the entire jdbc folder and pasted in lib\derbyclient.jar\org\apache\derby
then it works.
Goodbye.
I've installed Talend ESB 6.5.1 and am trying to connect to a SQL Server database.
I tried using the JTDS driver, but that didn't work, and it appeared that I needed a DLL that wasn't included in the , and do I installed the pure java MS driver instead.
Talend has put the MS driver into Studio\workspace\xxx\temp\dbWizard having renamed it, but when I try to use it I get
Database connection is failed.
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.talend.core.model.metadata.builder.database.JDBCDriverLoader.getConnection(JDBCDriverLoader.java:195)
...
It looks like Talend has put the jdbc driver somewhere, but it not referencing it correctly.
Any ideas what I need to do to get Talend to find it? (I've looked inside the .jar file and the class is definitely there.)
(Taking the generated JDBC URL and using this directly in a tJDBCInput with the driver jar selected works fine... bizarre)
The location where your jar was put does not look familiar. Try deleting all the jtds jar versions in the following locations :
<Talend root folder>\configuration\.m2\repository\org\talend\libraries
<Talend root folder>\lib\java
And restart your studio. When you go back to your component, you'll see an install button. You should be able to download and install the jar.
I am trying to connect my Cassandra database to Eclipse. I was created a table in Cassandra using Terminal. Now I want to get that table contents to the Eclipse console terminal. How to connect my Cassandra database to Eclipse. I am using the Ubuntu system. Please help me.
You can go with setup using following steps:
First go to market place and add DBeaver Plugin in you Eclipse
Now Connect your cassandra Database:
Create a JDBC Data Source for Cassandra Data
Follow the steps below to load the driver JAR in DBeaver.
Setup Driver Manager:
Open the DBeaver application and, in the Databases menu, select the Driver Manager option. Click New to open the Create New Driver form.
In the Driver Name box, give your Database name or any preffered name.
Download cassandra-jdbc jar
To add Driver jar, click Add File.and path to cassandra-jdbc jar
Click the Find Class button and select the CassandraDriver class from the results. This will automatically fill the Class Name field at the top of the form.
Add jdbc:cassandra: in the URL Template field.
Create New Connection
1.Click new Connection link and select recently created cassandra driver among the available drivers.
2.Provide JDBC url,username and password.
3.Click test connection
For Detailed Reference https://www.cdata.com/kb/tech/cassandra-jdbc-dbvr.rst
Best of Luck!!!!
I am using JBoss AS 7.1.1.Final as my application server.
I have posted my question on the JBoss Community user forum: question-here
Reproduced below:
Installed AS 7.1.1.Final on my MacBook Pro.
Downloaded the Quickstart examples. Was able to successfully deploy and test helloworld, jboss-as-greeter wars.
Then i set up the postgresql database engine to try jboss-as-cmt example. I was able to compile and deploy it.
Everything works great except for one thing - i am unable to connect to the postgresql database from the h2console web-app that is shipped with the application server.
The jboss-as-cmt war works perfectly i.e i am able to add customers to the invoice. I can psql into the db engine and i can see all the records. My only problem is that i can't use h2console webapp to get into my jboss-as-cmt postgres database i created.
I am using:
"org.postgresql.Driver" for the Driver Class field.
"jdbc:postgresql://127.0.0.1:5432/jboss-as-cmt" for the JDBC URL. This is the same as my connection-url value set in the standalone-full.xml config file.
"sa" for username and password.
When i press the "Test Connection" button on the h2console app, unfortunately i see -
Class "org.postgresql.Driver" not found [90086-161]
org.h2.message.DbException: Class "org.postgresql.Driver" not found [90086-161]
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.util.Utils.loadUserClass(Utils.java:429)
at org.h2.util.JdbcUtils.getConnection(JdbcUtils.java:146)
at org.h2.server.web.WebServer.getConnection(WebServer.java:653)
at org.h2.server.web.WebApp.test(WebApp.java:839)
at org.h2.server.web.WebApp.process(WebApp.java:215)
at org.h2.server.web.WebApp.processRequest(WebApp.java:164)
at org.h2.server.web.WebServlet.doGet(WebServlet.java:118)
at org.h2.server.web.WebServlet.doPost(WebServlet.java:153)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.h2.jdbc.JdbcSQLException: Class "org.postgresql.Driver" not found [90086-161]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
... 24 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver from [Module "com.h2database.h2:main" from local module loader #b4e29b (roots: /Users/avyayatek/Downloads/jboss-as-7.1.1.Final/modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.h2.util.Utils.loadUserClass(Utils.java:424)
... 22 more
I am able to establish a successful connection from the jboss admin management console (http://localhost:9990/console) to the datasource. On the datasources profile panel, i have the name of the datasource set to "postgresDS", jndi set to "java:jboss/postgresDS". Connection URL is same as what i am use on the h2console - "jdbc:postgresql://127.0.0.1:5432/jboss-as-cmt"
I don't know why h2console is not connecting to the postgresql db engine. It makes a successful connection to the h2 in-memory database that is used in the jboss-as-greeter example.
I have placed the JDBC driver in the $JBOSS_HOME/modules/org/postgresql/main folder. Created the module.xml there. There is a Driver.class file inside the jar in ~/org/postgresql/ folder. I have modified the $JBOSS_HOME/standalone/configuration/standalone-full.xml to add the postgresql related datasource and driver sections.
As i said, i can build jboss-as-cmt and deploy and it works as expected. If i could make the h2console connect to this postgresql database, it will give me some peace.
I am a newbie to JBoss and server side stuff in general.
I have attached some pics for reference.
Thanks for your time.
Any thoughts is highly appreciated. Thanks for your insights and time.
Firstly, thanks to #ThomasMueller whose comment encouraged me to dig further and arriving at a functional solution. And also thanks to Wolf-Dieter on JBoss Community page for pointing me in the right direction. So, my sincere suggestion to #MarkRotteveel is that it does not hurt to have postings at credible forums and when we find a solution, everyone benefits.
This is what worked for me:
Thanks for the link to the source, i created the h2console from the source and this time, i placed the postgres JDBC driver jar file in the WEB-INF/lib folder. Now, i am able to use the h2console to connect to postgresql database.
The h2console app that ships with the quickstart does not have any library jars in the WEB-INF/lib folder. Instead it specifies the dependencies in the META-INF/MANIFEST.mf file. I am positive both the h2 and postgres drivers are loaded while the JBoss starts - i can see the logs. But for some reason, this app only recognizes the h2 driver and fails to recognize the postgres driver. Looking at the source file, i am fairly positive that there is no "hardcoding" anywhere in there. So, it's still a mystery to me.
An alternative to h2console tool - SQUirrel.
Thanks All. Hope this helps someone - not just limited to SO.
A driver can register itself as a handler for multiple JDBC protocols. It might have changed but at one point H2 would register itself as a handler for jdbc:postgresql - not entirely unreasonable since H2 can be run in PostgreSQL emulation mode. You would be fine if you used the DriverManager directly (since it only requires the url) but have problems if you used a connection manager (which wants a driver classpath) since the driver is NOT org.postgresql.Driver.
This also caused problems if you had both h2 and postgresql drivers in your classpath. I don't remember if it's "first one registered" or "last one registered" but which driver you got from the DriverManager would depend on the order the jars were loaded. It caused a lot of grief and one reason I got into the habit of always defining a DataSource that explicitly named the classpath to use. It's a bit of overkill with a one-off app that only needs a single connection but it eliminates the ambiguity.
As for the particular problem I just add the jars to the java classpath. I have a small bash shell script that puts about a dozen jars onto the classpath and it allows me to connect to large number of databases without a problem. It avoids the need to rebuild the h2 jar every time I need to update one of the drivers.