Hello I try to apply ssl to rmi communication for stateless session beans. So using documentation I made steps like below:
1) Generating file test.keystore using jboss tool (like example in documentation) 2) Adding to jboss-service.xml lines like below | <!-- =============================================================================================================== | SSL | =================================================================================================================== --> | | | <mbean code="org.jboss.security.plugins.JaasSecurityDomain" name="jboss.security:service=JaasSecurityDomain,domain=RMI+SSL"> | <constructor> | <arg type="java.lang.String" value="RMI+SSL"/> | </constructor> | <attribute name="KeyStoreURL">test.keystore</attribute> | <attribute name="KeyStorePass">testPassword</attribute> | </mbean> | <mbean code="org.jboss.invocation.jrmp.server.JRMPInvoker" name="jboss:service=invoker,type=jrmp,socketType=SSL"> | <attribute name="RMIObjectPort">14445</attribute> | <attribute name="RMIClientSocketFactory">org.jboss.security.ssl.RMISSLClientSocketFactory</attribute> | <attribute name="RMIServerSocketFactory">org.jboss.security.ssl.RMISSLServerSocketFactory</attribute> | <attribute name="SecurityDomain">java:/jaas/RMI+SSL</attribute> | <depends>jboss.security:service=JaasSecurityDomain,domain=RMI+SSL</depends> | </mbean> Next step: 3) Adding to standardjboss.xml lines like below: | <!-- ===================================================================== --> | <!-- SSL START --> | <!-- ===================================================================== --> | | <invoker-proxy-binding> | <name>stateless-ssl-rmi-invoker</name> | <invoker-mbean>jboss:service=invoker,type=jrmp,socketType=SSL</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> | | <!-- ===================================================================== --> | <!-- SSL END --> | <!-- ===================================================================== --> 4) Next in this file I've changed a line <invoker-proxy-binding-name>stateless-rmi-invoker</invoker-proxy-binding-name> for Standard Stateless SessionBean on <invoker-proxy-binding-name>stateless-ssl-rmi-invoker</invoker-proxy-binding-name> like below | <container-configuration> | <container-name>Standard Stateless SessionBean</container-name> | <call-logging>false</call-logging> | <invoker-proxy-binding-name>stateless-ssl-rmi-invoker</invoker-proxy-binding-name> | <container-interceptors> | <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor> | <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor> | <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor> | <!-- CMT --> | <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor> | <interceptor transaction="Container">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor> | <interceptor transaction="Container">org.jboss.ws.server.ServiceEndpointInterceptor</interceptor> | <interceptor transaction="Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor> | <!-- BMT --> | <interceptor transaction="Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor> | <interceptor transaction="Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor> | <interceptor transaction="Bean">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor> | <interceptor transaction="Bean">org.jboss.ws.server.ServiceEndpointInterceptor</interceptor> | <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor> | </container-interceptors> | <instance-pool>org.jboss.ejb.plugins.StatelessSessionInstancePool</instance-pool> | <instance-cache></instance-cache> | <persistence-manager></persistence-manager> | <container-pool-conf> | <MaximumSize>100</MaximumSize> | </container-pool-conf> | </container-configuration> | After that I stared jboss I've received an exception like below: | 13:31:03,024 WARN [ServiceController] Problem starting service jboss.j2ee:jndiN | ame=oe3/SessionController,service=EJB | java.lang.RuntimeException: invoker is null: jboss:service=invoker,type=jrmp,soc | ketType=SSL | at org.jboss.proxy.ejb.ProxyFactory.setupInvokers(ProxyFactory.java:258) | | at org.jboss.proxy.ejb.ProxyFactory.start(ProxyFactory.java:242) | at org.jboss.ejb.SessionContainer.startInvokers(SessionContainer.java:44 | 0) | at org.jboss.ejb.SessionContainer.startService(SessionContainer.java:399 | ) | at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS | upport.java:289) | at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB | eanSupport.java:245) | at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces | sorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch | er.java:155) | at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) | at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker. | java:260) | at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) | at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceControl | ler.java:974) | at $Proxy0.start(Unknown Source) | at org.jboss.system.ServiceController.start(ServiceController.java:417) | at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces | sorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch | er.java:155) | Problem is when I remove my ear application and start again jboss, everything will start appropriate without any exception. Next when I deploy my ear application, deploy will finish without any exception too, and all application works fine without any problems. Tested on jboss 4.0.4 RC1 and jboss 4.0.4 GA Thanks for any suggestions. Best regards Sebastian. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3952315#3952315 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3952315 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user