Zdravim,

Nesetkal se zde nahodou nekdo s problemem s volanim metod na remote (staleless) 
session beanu pres JBoss klient, kdy volani na klientu konci s:

java.lang.NullPointerException
        at 
org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:421)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
        at 
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
      ...
        at 
org.jboss.invocation.pooled.server.ServerThread.run(ServerThread.java:156)
Caused by: java.lang.NullPointerException
        at 
org.jboss.ejb.plugins.CallValidationInterceptor.validateArguments(CallValidationInterceptor.java:73)
        at 
org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:62)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
        ... 16 more

A na serveru s:

2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR] 
java.lang.ClassNotFoundException: No ClassLoaders found for: boolean

^^^ Tohle je asi nejzajimavejsi

2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR]     
at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306)
...
2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR]     
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)

2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR]     
at 
org.jboss.invocation.pooled.interfaces.PooledMarshalledValue.get(PooledMarshalledValue.java:93)

2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR]     
at 
org.jboss.invocation.pooled.interfaces.PooledMarshalledInvocation.getArguments(PooledMarshalledInvocation.java:165)

2007-05-15 11:49:17,109 ERROR (PooledInvokerThread-192.168.1.65-3) [STDERR]     
at org.jboss.ejb.Container.invoke(Container.java:918)

Dle mych experimentu ma JBoss klient problem s volanim metod, ktere maji 
alespon jeden argument primitivniho typu(odzkouseno s boolean, int, ...). Pokud 
volana metoda vraci primitivni typ, problem uz neni. Pokud upravim hlavicky 
metod a misto primitivnich typu argumentu pouziji prislusne wrappery (Boolean,, 
Integer, ...), problem zmizi.

Navic se toto chovani vyskytuje jen pri volani pres JBoss klienta. Pokud volam 
metody treba z JSP na serveru, problem neni. Ale to muze byt i diky nastaveni 
"call-by-reference", kdy se predavane parametry nevaliduji/neserializuji apod.

Trochu jsem popis zjednodusil v tom, ze v mem pripade se volani metod na 
vzdalenych business objektech provadi pres jediny genericky fasadni bean majici 
jedinou metodou invokeBOMethod(Class boType, String method, Class[] argTypes, 
Object[] args), takze ty primitivni typy a hodnoty jsou na vzdaleny session 
bean predavany uvnitr poli. IMO by toto nemelo hrat zasadni roli.

Dekuji za pripadna nakopnuti,
Honza

PS: v Jboss JIRA/Google jsem o tomto problemu moc nenasel. Vetsina podobnych 
problemu je kolem neprimitivnich trid, coz je vetsinou problem s nastavenim 
classpath/rozdilnyma verzema trid na serveru/klientu apod.

Odpovedet emailem