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(); }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 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 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 <%@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(); } %>
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 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(); } } }
Merci de votre aide !!
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
Partager