Problème avec Struts 1 et dataSource
Bonjour tout le monde,
J'ai une application avec struts 1, et j'essaie de configurer une datasource mysql, j'ai essayé deux méthodes mais j'ai pas réussit:
1) dans struts config j'ai mis :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <data-sources>
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource" key="dbsource">
<set-property property="driverClassName" value="com.mysql.jdbc.Driver"/>
<set-property property="url" value="jdbc:mysql://localhost:3306/gestion_production?autoReconnect=true" />
<set-property property="username" value="pankaj"/>
<set-property property="password" value="pankaj123"/>
<set-property property="maxActive" value="200"/>
<set-property property="maxWait" value="5000"/>
<set-property property="defaultAutoCommit" value="false"/>
<set-property property="defaultReadOnly" value="false"/>
</data-source>
</data-sources> |
et dans ma class action j'ai mis:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public ActionForward
execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
javax.sql.DataSource dataSource;
java.sql.Connection myConnection;
try {
dataSource = getDataSource(request);
myConnection = dataSource.getConnection();
// do what you wish with myConnection
} catch (SQLException sqle) {
getServlet().log("Connection.process", sqle);
} finally {
//enclose this in a finally block to make
//sure the connection is closed
try {
myConnection.close();
} catch (SQLException e) {
getServlet().log("Connection.close", e);
}
}
}; |
ca ne compile pas la méthode getDataSource(request);
et la deuxième méthode j'ai fait :
Dans le fichier context.xml
Code:
1 2 3 4 5 6 7 8 9
| <Context>
<Resource name="jdbc/gestion_production" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000"
username="pankaj" password="pankaj123"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/gestion_production"/>
</Context> |
et dans web.xml
Code:
1 2 3 4 5 6
| <resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>jdbc/gestion_production</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref> |
et dans la class action:
Code:
1 2 3
| @Resource(name="jdbc/gestion_production")
private DataSource ds;
Connection con = ds.getConnection(); |
et ça donne nulle pointer exception au niveau de ds, sachant que j'ai copié le connecteur dans tomcat.
SVP avez vous une idée?merci d'avance.