Bonjour à tous,

j'ai un EJB de test(tout ce qu'il y a de plus simple) sur un serveur weblogic.

Lorsque j'y accède depuis une page de test que j'ai inclue dan l'ear ça marche, mais lorsque j'y accède depuis une classe avec un main (en dehors du serveur) j'ai une erreur.

Merci !! Je ne comprend pas ce que j'ai mal fait -_-''''

l'EJB :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
package fr;
import javax.ejb.Remote;
 
@Remote
public interface TestRemote {
		public String test();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
package fr;
 
import javax.ejb.Stateless;
 
/**
 * Session Bean implementation class Test
 */
@Stateless(mappedName = "Test")
public class Test implements TestRemote {
	@Override
	public String test() {
		return "test OK";
	}
}
La JSP déployer sur le serveur qui marche :
Code : 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
<%@page import="java.util.Properties"%>
 
<%@page import="javax.naming.Context"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.NamingException"%>
<%@page import="fr.TestRemote"%>
 
 
<%System.out.println("test");
		Properties properties = new Properties();
		properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
		properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
 
		try {
			Context context = new InitialContext(properties);
			TestRemote beanInstance = (TestRemote)context.lookup("Test#fr.TestRemote");
			System.out.println(beanInstance.test());
		} catch (NamingException e) {
			 e.printStackTrace();
		}
%>
La classe avec le main() qui plante :
Code : 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
package com.test;
 
import java.util.Hashtable;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
import fr.TestRemote;
 
public class Main {
 
	Context context = null;
 
	/**
         * @param args
         */
	public static void main(String[] args) {
		System.out.println("test");
		Hashtable props = new Hashtable();
		props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
		props.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");
 
		Context ctx = null;
 
		try {
			Context context = new InitialContext(props);
 
			TestRemote beanInstance = (TestRemote) context.lookup("Test#fr.TestRemote");
			System.out.println(beanInstance.test());
		} catch (NamingException e) {
			e.printStackTrace();
		}
 
	}
 
}
et l'erreur :
Code : 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
40
41
42
43
44
45
46
47
48
49
 
test
15 oct. 2009 12:33:58 com.sun.corba.se.impl.encoding.CDRInputStream_1_0 read_value
ATTENTION: "IOP00810210: (MARSHAL) Error from readValue on ValueHandler in CDRInputStream"
org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 210 completed: Maybe
	at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadError(ORBUtilSystemException.java:6472)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1048)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:873)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:863)
	at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:269)
	at com.sun.corba.se.impl.util.Utility.readAbstractAndNarrow(Utility.java:948)
	at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1986)
	at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
	at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
	at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
	at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
	at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
	at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:249)
	at com.sun.corba.se.impl.corba.TCUtility.unmarshalIn(TCUtility.java:269)
	at com.sun.corba.se.impl.corba.AnyImpl.read_value(AnyImpl.java:559)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:739)
	at com.sun.corba.se.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:220)
	at weblogic.corba.cos.naming._NamingContextAnyStub.resolve_any(_NamingContextAnyStub.java:81)
	at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:208)
	at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:168)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at com.test.Main.main(Main.java:31)
Caused by: java.lang.AssertionError: java.lang.ClassNotFoundException: fr.TestRemote
	at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:57)
	at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject(RemoteBusinessIntfProxy.java:205)
	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:597)
	at com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
	at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
	at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
	at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
	at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
	at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
	... 23 more
Caused by: java.lang.ClassNotFoundException: fr.TestRemote
	at weblogic.ejb.container.deployer.RemoteBizIntfClassLoader.getClassBytes(RemoteBizIntfClassLoader.java:151)
	at weblogic.ejb.container.deployer.RemoteBizIntfClassLoader.loadClass(RemoteBizIntfClassLoader.java:96)
	at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:54)
	... 34 more
Merci de votre aide !!