Toon posts:

[EJB] ClassCastException: $Proxy129

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik krijg een ClassCastException: $Proxy129 met de volgende stacktrace:

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
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
09:29:04,609 INFO  [STDOUT] StoringsmelderBean ejbCreate
09:29:04,625 INFO  [STDOUT] StoringsmelderBean ejbCreate
09:29:04,640 INFO  [STDOUT] StoringsmelderBean getAllUsers
09:29:04,687 ERROR [LogInterceptor] RuntimeException:
java.lang.ClassCastException: $Proxy129
        at ejb.java.storingsmelder.StoringsmelderBean.copyUsersToDetails(Storing
smelderBean.java:212)
        at ejb.java.storingsmelder.StoringsmelderBean.getAllUsers(Storingsmelder
Bean.java:115)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(St
atefulSessionContainer.java:824)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:130)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
ke(CachedConnectionInterceptor.java:186)
        at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(State
fulSessionInstanceInterceptor.java:268)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
rceptor.java:107)
        at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:237)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:9
8)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:208)
        at org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContaine
r.java:380)
        at org.jboss.ejb.Container.invoke(Container.java:738)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
        at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:99)
        at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.jav
a:102)
        at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
java:77)
        at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:8
0)
        at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSession
Interceptor.java:117)
        at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
        at $Proxy127.getAllUsers(Unknown Source)
        at org.apache.jsp.storingsmelderUsers$jsp._jspService(storingsmelderUser
s$jsp.java:137)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspSer
vlet.java:201)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
81)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360
)
        at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicati
onHandler.java:294)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5
58)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
        at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplication
Context.java:507)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
        at org.mortbay.http.HttpServer.service(HttpServer.java:863)
        at org.jboss.jetty.Jetty.service(Jetty.java:460)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
        at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:
201)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
09:29:04,687 WARN  [jbossweb] WARNING: Exception for /jspweb/storingsmelderUsers
.jsp?: java.rmi.ServerException: RuntimeException; nested exception is:
        java.lang.ClassCastException: $Proxy129


Ik heb wat op het internet gezocht en ik heb het vermoeden dat het aan mijn lookup moet liggen... omdat ik uit verschillende verhalen denk te begrijpen dat mijn JNDI_Name waarschijnlijk niet goed opgezocht kan worden. In mijn JSP heb ik de volgende lookup:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
StoringsmelderHome storingsmelderHome = null;
    Hashtable env = new Hashtable(); 
    env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); 
    env.put(Context.PROVIDER_URL,"jnp://127.0.0.1:1099"); 
    InitialContext ctx = new InitialContext();
    Object objref = ctx.lookup(StoringsmelderHome.JNDI_NAME);
    storingsmelderHome =(StoringsmelderHome)javax.rmi.PortableRemoteObject.narrow
(objref, StoringsmelderHome.class);

    Storingsmelder storingsmelder =null;
    try
    {
        storingsmelder = storingsmelderHome.create();
    }
    catch (javax.ejb.NoSuchEntityException e)
    {
        e.printStackTrace();
    }


En in mijn SessionBean heb ik de volgende lookup naar de UserBean (Entity)
code:
1
2
3
4
5
6
7
8
9
10
11
12
public UserHome lookupUser() throws NamingException
    {
        Hashtable env = new Hashtable(); 
        env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); 
        env.put(Context.PROVIDER_URL,"jnp://127.0.0.1:1099"); 
        
        InitialContext ctx = new InitialContext();
        Object objref = ctx.lookup(UserHome.JNDI_NAME);
        
        home =(UserHome)javax.rmi.PortableRemoteObject.narrow(objref, UserHome.class);
        return (UserHome) objref;
    }


De eerste regel waar hij over zeurt in de stacktrace is de method copyUsersToDetails, die hieronder is weergegeven...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public ArrayList copyUsersToDetails(Collection users) 
    {
        ArrayList detailsList = new ArrayList();
        Iterator i = users.iterator();

        while (i.hasNext()) 
        {
    regel 212 -->   UserLocal user = (UserLocal) i.next();
            String details = user.toString(",");
            detailsList.add(details);
        }
        return detailsList;
   } // copyUsersToDetails


Weet iemand wat er eventueel fout gaat?? De tweede regel van de stacktrace zeurt hij over de method getAllUsers();, dit is volgens mij alleen omdat hier de method copyUsersToDetails aangeroepen wordt.
HELP!!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik denk dat je toch zelf even moeten leren om stacktraces te lezen en op te lossen ... Ook deze is weer buitengewoon simpel:

code:
1
UserLocal user = (UserLocal) i.next();

Het resultaat van i.next() is geen UserLocal. Zoek uit wat het wel is en waarheen je wel moet casten en je hebt de oplossing.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Dit zijn overigens typisch van die problemen die je krijgt als je met 'J2EE' an de slag gaat zonder een stevige basis in Java (J2SE) ...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
mijn excuses