Bonjour,
Je suis étudiant en informatique et j'ai un projet a rendre dans très peu de temps (oui comme tous les étudiants je le fait à la dernière minute et c'est mal).
Ce projet consiste à faire un pseudo site d'e-Commerce en jsp en utilisant des bean et pool de socket et tout le tralala. Et point important, d'utiliser Oracle WebLogic, et pointBase pour la base de données.

J'ai donc crée ma base dans pointBase, j'ai crée une datasource depuis ma console d'administration WebLogic.

Caractèristique de la dataSource :
Général :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Name = mabase
JNDI Name = mabase
Row Prefetch Enabled = false
Row Prefetch Size = 48
Stream Chunk Size = 256
Connection Pool :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
URL = jdbc:pointbase:server://localhost:9092/mabase
Driver Class Name = com.pointbase.xa.xaDataSource
Properties = user=weblogic
                 databaseName=jdbc:pointbase:server://localhost:9092/mabase
Initial Capacity = 1
Maximum Capacity = 15
Capacity Increment = 1
Statement Cache Type = LRU
Statement Cache Size = 10
Test Connections On Reserve = true

Maintenant pour me connecter à la base par cette data source j'ai une classe AccesBase :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package mabase;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import Item.Item_I;
 
 
public class AccesBase {
 
	private Connection getConnection() throws NamingException, SQLException {
		InitialContext ic = new InitialContext();
		DataSource ds = (DataSource)ic.lookup("mabase");
		Connection c = ds.getConnection();
		return c;
		}
 
	public ArrayList<Item_I> obtenirTout() {	
		ArrayList<Item_I> res = new ArrayList<Item_I>();
		try {
			Connection c = getConnection();
			Statement st = c.createStatement();
			ResultSet rs = st.executeQuery("select SKU,NAME,DESCRIPTION,PRICE from ITEMS");
			while (rs.next()) {
				res.add(new bean.Item(rs.getString("SKU"), rs.getString("NAME"), rs.getString("DESCRIPTION"),rs.getFloat("PRICE")));
				}
			rs.close();
			st.close();
			c.close();
			} 
		catch (NamingException e) {	e.printStackTrace();} 
		catch (SQLException e) {e.printStackTrace();}
		return res;
		}
	}

Et ma page jsp qui utilise la classe AccesBase est celle ci :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.*,mabase.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="Item.Item_I"%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Essai JDBC</title>
	</head>
	<body>
		<table>
		Tableau des articles<%
		AccesBase base = new AccesBase();
		ArrayList<Item_I>	list = base.obtenirTout();
		%><%=list.size() %><%
		Iterator<Item_I> it = list.iterator();
		while (it.hasNext()) {
			Item_I i = it.next();%>
			<tr>
				<td><%=i.getSKU()%></td>
				<td><%=i.getName()%></td>
				<td><%=i.getDescription()%></td>
				<td><%=i.getPrix()%>€</td>
			</tr><%
			}%>
		</table>
	</body>
</html>

M'ai j'ai une erreur au niveau de DataSource ds = (DataSource)ic.lookup("mabase"); ( dans la classe AccesBase)

L'erreur renvoyé est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
javax.naming.NameNotFoundException: Unable to resolve 'mabase'. Resolved ''; remaining name 'mabase'
	at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
	at weblogic.jndi.i...............
Je ne comprend pas du tout pourquoi ça ne marche pas. Je sèche totalement.

Merci d'avance