jrmp invoker issue
by Jaroslaw Kijanowski
Hello,
there's a test, org.jboss.test.pooled.test.BeanStressTestCase, which fails because StatelessSession isn't bound. The original testsuite/src/resources/pooled/META-INF/jboss.xml file looks like this:
****************************
<jboss>
<enterprise-beans>
<session>
<ejb-name>StatelessSession</ejb-name>
<jndi-name>StatelessSession</jndi-name>
<invoker-bindings>
<invoker>
<invoker-proxy-binding-name>stateless-pooled-invoker</invoker-proxy-binding-name>
<jndi-name>PooledStatelessSession</jndi-name>
</invoker>
</invoker-bindings>
</session>
.
.
.
<invoker-proxy-bindings>
<invoker-proxy-binding>
<name>stateless-pooled-invoker</name>
<invoker-mbean>jboss:service=invoker,type=pooled</invoker-mbean>
<proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
<proxy-factory-config>
<client-interceptors>
<home>
<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</home>
<bean>
<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</bean>
</client-interceptors>
</proxy-factory-config>
</invoker-proxy-binding>
****************************
But this isn't enough to bind StatelessSession (PooledStatelessSession is bound right). Exception is thrown. I looked in the 4_0_4 Branch on jboss.xml and I added these missing lines of code to jboss.xml:
****************************************
<jboss>
<enterprise-beans>
<session>
<ejb-name>StatelessSession</ejb-name>
<jndi-name>StatelessSession</jndi-name>
<invoker-bindings>
<invoker>
<invoker-proxy-binding-name>stateless-pooled-invoker</invoker-proxy-binding-name>
<jndi-name>PooledStatelessSession</jndi-name>
</invoker>
<!-- copied from jboss.xml in JBAS 4_0_4 -->
<invoker>
<invoker-proxy-binding-name>stateless-rmi-invoker</invoker-proxy-binding-name>
<jndi-name>StatelessSession</jndi-name>
</invoker>
<!-- end -->
</invoker-bindings>
</session>
****************************************
But the test fails again, because I can't use "stateless-rmi-invoker", because it is no longer defined in server/src/etc/conf/default/standardjboss.xml in JBAS 5.0.0beta, why?
I've copied the following section from JBAS4_0_4 to JBAS5 and now the test works fine. But is this the right way?
****************************************
<invoker-proxy-binding>
<name>stateless-rmi-invoker</name>
<invoker-mbean>jboss:service=invoker,type=jrmp</invoker-mbean>
<proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
<proxy-factory-config>
<client-interceptors>
<home>
<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
<interceptor call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
</home>
<bean>
<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
<interceptor call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
</bean>
</client-interceptors>
</proxy-factory-config>
</invoker-proxy-binding>
Thanks,
Jaroslaw
18 years, 4 months