This is just to get you started if you are interested in the above configuration. I spent a lot of time exploring many forums for the errors encountered meanwhile which I try to dump here.
First you need following packages:
1. tomcat, tomcat-webapps, tomcat-admin-webapps -- try to get through yum or apt-get repositories.
2. mysql -- again try to do the same to get it
Start all the services:
To check if these things are working properly:
1. mysql:
Note: there is no space between "-u" and "user".
This should show the present databases created by the specified user.
Alternatively you can access the mysql from the browser through:
http://localhost/phpMyAdmin/
For this will need the package "phpmyadmin" installed. Make sure, each time you do some administrative changes, restart services.
2. tomcat:
You should be able to view the examples provided by the tomcat in the browser. To start with a new project, the place of interest will be "webapps" directory where you have to put your project root directory. Create a directory say "test" in "webapps" and in which create a small static html page say "test.html". Try to access the page from your browser with URL
http://localhost:8080/test/test.html
With that you are ready with your basic set up and should move forward with the mysql integration.
Now the basic page which accesses some table of a mysql database is shown below:
In summary, the above code gets a string from the previous page some input in terms of form data. Tries to access the database and gets all the records where col1 value is equal to input and prints it.
If you get some java-like errors saying that MySQL is unknown class then you should perform following operations.
The files of interest is:
/usr/share/tomcat/conf/catalina.policy
First you should grant the permission to access the mysql.
And then make mysql known to tomcat by adding jar in classpath and for that, put mysql-connector-xyz.jar in tomcat_home/lib directory. Add its reference to the classpath by adding following line in tomcat_home/bin/catalina-tasks.xml between
and restart tomcat service!
First you need following packages:
1. tomcat, tomcat-webapps, tomcat-admin-webapps -- try to get through yum or apt-get repositories.
2. mysql -- again try to do the same to get it
Start all the services:
service mysqld start service httpd start service tomcat start
To check if these things are working properly:
1. mysql:
mysql -hlocalhost -uuser -ppassword -e "show databases;"
Note: there is no space between "-u" and "user".
This should show the present databases created by the specified user.
Alternatively you can access the mysql from the browser through:
http://localhost/phpMyAdmin/
For this will need the package "phpmyadmin" installed. Make sure, each time you do some administrative changes, restart services.
2. tomcat:
You should be able to view the examples provided by the tomcat in the browser. To start with a new project, the place of interest will be "webapps" directory where you have to put your project root directory. Create a directory say "test" in "webapps" and in which create a small static html page say "test.html". Try to access the page from your browser with URL
http://localhost:8080/test/test.html
With that you are ready with your basic set up and should move forward with the mysql integration.
Now the basic page which accesses some table of a mysql database is shown below:
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page import="java.sql.*" %> <form> <head> <title>Testing the structure of jsp, mysql and tomcat!</title> <style> * { font-size: 12px; font-family: Verdana } </style> </head> <div> <% Statement stmt = null; Connection con = null; ResultSet resultSet = null; String url = "jdbc:mysql://localhost/dbname?characterEncoding=UTF-8"; %>lang1 <h2>Display of data from Database</h2> <table> <tr> <th>col1</th> <th>col2</th> <th>col3</th> <th>col4</th> </tr> <% try { String input = request.getParameter("lang1"); Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url, "username", "passwd"); stmt = con.createStatement(); resultSet = stmt.executeQuery("select * from table where col1 = \""+input+"\""); while (resultSet.next()) {%> <tr> <td><%=resultSet.getString(1)%></td> <td><%=resultSet.getString(2)%></td> <td><%=resultSet.getFloat(3)%></td> <td><%=resultSet.getInt(4)%></td> </tr> <%} } catch (SQLException e) { e.printStackTrace(System.out); } finally { try {stmt.close();} catch (Exception e) { } try {resultSet.close();} catch (Exception e) { } try { if (null != con) {con.close();} } catch (SQLException ex) { ex.printStackTrace(System.out); } } %> </table> </form> </body> </html>
The files of interest is:
/usr/share/tomcat/conf/catalina.policy
First you should grant the permission to access the mysql.
grant codeBase "file:${catalina.base}/webapps/test/-" { permission java.net.SocketPermission "localhost:8080", "connect"; };
And then make mysql known to tomcat by adding jar in classpath and for that, put mysql-connector-xyz.jar in tomcat_home/lib directory. Add its reference to the classpath by adding following line in tomcat_home/bin/catalina-tasks.xml between
<fileset file="${catalina.home}/lib/mysql-connector-xyz.jar"></fileset>
and restart tomcat service!
No comments:
Post a Comment