[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Just a case of a cyclic dependency, looks like. Try out @IgnoreDependency? In the future, provide the error stack trace so we can see what's up. ;) S, ALR View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141821#4141821 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141821 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Oke, heres the stacktrace: 2008-04-04 18:38:42,531 WARN [org.jboss.ejb3.LocalProxy] Container jboss.j2ee:ear=phonemessage-1.0.0.ear,jar=phonemessage-engine-1.0.0.jar,name=CallHandlerServiceBean,service=EJB3,VMID=ff2143713a7260c3:-350bd643:1191a4ce5d2:-7ffd is not yet available 2008-04-04 18:38:42,531 ERROR [com.thespeechcorporation.service.timer.ScheduleBean] Unable to handle timer: null java.lang.reflect.InvocationTargetException 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.thespeechcorporation.service.timer.ScheduleBean.handleTimeout(ScheduleBean.java:273) 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 org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:108) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.callTimeout(StatelessContainer.java:175) at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:561) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Caused by: javax.ejb.EJBException: Invalid (i.e. remote) invocation of local interface (null container) at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:80) at $Proxy88.deliver(Unknown Source) ... 34 more View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141822#4141822 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141822 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Much more helpful. Caused by: javax.ejb.EJBException: Invalid (i.e. remote) invocation of local interface (null container) | at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:80) | at $Proxy88.deliver(Unknown Source) Looks like someone's doing spookiness. ;) Probably gotta post the code showing what you're doing here too, but the error at face value reads simple enough. Are you grabbing the local proxy via JNDI from a separate JVM? Local and Remote pertain to JVMs - local is only inter-JVM calls. Anything else is remote, regardless of the physical location of the runtime. Pass-by-value and network marshalling are required, and local passes references. S, ALR View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141825#4141825 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141825 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Oke, going to put in some background: Instance A: From boot.log: 15:56:18,265 DEBUG [ServiceCreator] Created bean: jboss:service=Naming 15:56:18,265 DEBUG [ServiceConfigurator] CallByValue set to false in jboss:service=Naming 15:56:18,266 DEBUG [ServiceConfigurator] Port set to 1099 in jboss:service=Naming 15:56:18,267 DEBUG [ServiceConfigurator] BindAddress set to 127.0.0.106 in jboss:service=Naming 15:56:18,267 DEBUG [ServiceConfigurator] RmiPort set to 1098 in jboss:service=Naming 15:56:18,268 DEBUG [ServiceConfigurator] RmiBindAddress set to 127.0.0.106 in jboss:service=Naming Instance B: From boot.log: 15:57:29,698 DEBUG [ServiceCreator] Created bean: jboss:service=Naming 15:57:29,698 DEBUG [ServiceConfigurator] CallByValue set to false in jboss:service=Naming 15:57:29,699 DEBUG [ServiceConfigurator] Port set to 1099 in jboss:service=Naming 15:57:29,700 DEBUG [ServiceConfigurator] BindAddress set to 127.0.0.107 in jboss:service=Naming 15:57:29,701 DEBUG [ServiceConfigurator] RmiPort set to 1098 in jboss:service=Naming 15:57:29,701 DEBUG [ServiceConfigurator] RmiBindAddress set to 127.0.0.107 in jboss:service=Naming I can telnet to both, so I guess those are running fine. In instance A, I have a method that does this (basically setting up some context to be used for the callback/invocation as soon the timer goes off at B): public void schedule(...) { ... Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, org.jnp.interfaces.NamingContextFactory); props.put(Context.PROVIDER_URL, 127.0.0.106:1099); ... ScheduleRequest request = new ScheduleRequest(); request.setApplicationContext(phoneMessage.getId()); request.setStartTime(startTime); request.setEndTime(endTime); request.setAverageDuration(new Long(duration).intValue()); request.setCallbackMethod(deliver); request.setJndiContext(props); request.setJndiReferenceLookup(CallHandlerService.class.getName()); request.setPreferredDeliveryDate(phoneMessage.getPreferredDeliveryDate()); request.setTimezone(phoneMessage.getTimeZone()); request.setTotalCalls(this.phoneMessageRepository.getNumberOfRecipients(phoneMessage.getId())); this.getScheduler().schedule(request); if (log.isInfoEnabled()) { log.info(Done scheduling PhoneMesage with id: + phoneMessage.getId()); } } As you can see, I am avoiding cyclic dependencies, as I try to keep the applications 'unaware' of each other, by passing primitives. From the logs in A, I do see the scheduling is done. The lookup is done as follow: protected Scheduler getScheduler() { return (Scheduler) this.lookupService(Scheduler.class.getName()); } protected Object lookupService(String serviceName) { // Set security policy if(System.getSecurityManager() == null) { this.log.info(Using security policy file: + System.getProperty(java.security.policy)); System.setSecurityManager(new RMISecurityManager()); } Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, org.jnp.interfaces.NamingContextFactory); props.put(Context.PROVIDER_URL, jnp://127.0.0.107:1099); try { this.log.info(Lookup called in CallHandlerServiceBean...); Context ctx = new InitialContext(props); return ctx.lookup(serviceName); } catch (NamingException e) { log.fatal(Unable to lookup service interface: + serviceName); e.printStackTrace(); } return null; } The callback method: public void deliver(Serializable applicationContext, int numberOfCalls) { this.log.info(Deliver called with serializable: + applicationContext); ... } In instance B: @Timeout public void handleTimeout(Timer timer) { // Fetch context from timer if(timer.getInfo() instanceof ScheduleContext) { try { ScheduleContext scheduleContext = (ScheduleContext) timer.getInfo(); // Set security policy if(System.getSecurityManager() == null) { if(this.log.isDebugEnabled()) { this.log.debug(Using security policy file: + System.getProperty(java.security.policy)); } System.setSecurityManager(new RMISecurityManager()); } // Obtain reference of remote interface if(this.log.isDebugEnabled()) { this.log.debug(Lookup called in ScheduleBean...); } InitialContext initialContext = new InitialContext(scheduleContext.getJndiContext()); Object remoteInterface = initialContext.lookup(scheduleContext.getJndiReferenceLookup()); if(this.log.isDebugEnabled()) { this.log.debug(Lookup result (using: + scheduleContext.getJndiContext().getProperty(Context.PROVIDER_URL) + ): + remoteInterface); } //
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
moksha2007 wrote : | request.setJndiReferenceLookup(CallHandlerService.class.getName()); Does this point to a Local Business interface? Check out JNDIView in the JMX Console. If so, that would explain the error. S, ALR View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141828#4141828 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141828 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
From which instance you'd like to know the JNDI settings? But the code/annotation is configured for both: | @Stateless | @Local({CallHandlerService.class}) | @Remote({CallHandlerService.class}) | @Interceptors({NullReferenceCheck.class}) | public class CallHandlerServiceBean implements CallHandlerService { | Some snippets from server.log in instance A: 2008-04-04 18:37:45,858 DEBUG [org.jboss.ejb3.Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.ejb.LocalBinding to com.phonemessage.service.CallHandlerServiceBean [EMAIL PROTECTED] 2008-04-04 18:37:45,859 DEBUG [org.jboss.ejb3.Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.ejb.RemoteBinding to com.phonemessage.service.CallHandlerServiceBean [RemoteBindingImpl:, jndi=com.phonemessage.service.CallHandlerService, stack=, bindUrl=, proxyFactory=interface org.jboss.ejb3.remoting.RemoteProxyFactory] 2008-04-04 18:37:45,864 DEBUG [org.jboss.ejb3.Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.ejb.RemoteBinding to com.phonemessage.service.CallHandlerServiceBean [RemoteBindingImpl:, jndi=com.phonemessage.service.CallHandlerService, stack=, bindUrl=, proxyFactory=interface org.jboss.ejb3.remoting.RemoteProxyFactory] 2008-04-04 18:37:45,865 DEBUG [org.jboss.ejb3.Ejb3AnnotationHandler] found EJB3: ejbName=CallHandlerServiceBean, class=com.phonemessage.service.CallHandlerServiceBean, type=STATELESS 2008-04-04 18:37:47,483 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:ear=phonemessage-1.0.0.ear,jar=phonemessage-engine-1.0.0.jar,name=CallHandlerServiceBean,service=EJB3 2008-04-04 18:37:47,487 INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: com.phonemessage.service.CallHandlerServiceBean ejbName: CallHandlerServiceBean 2008-04-04 18:37:47,506 DEBUG [org.jboss.ejb3.stateless.BaseStatelessProxyFactory] Binding proxy for CallHandlerServiceBean in JNDI at com.phonemessage.service.CallHandlerService 2008-04-04 18:37:47,515 DEBUG [org.jboss.ejb3.stateless.BaseStatelessProxyFactory] Binding proxy for CallHandlerServiceBean in JNDI at com.phonemessage.service.CallHandlerService 2008-04-04 18:37:47,520 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=phonemessage-1.0.0.ear,jar=phonemessage-engine-1.0.0.jar,name=CallHandlerServiceBean,service=EJB3 2008-04-04 18:37:47,520 INFO [org.jboss.ejb3.JmxKernelAbstraction] jboss.j2ee:ear=phonemessage-1.0.0.ear,jar=phonemessage-engine-1.0.0.jar,name=CallHandlerServiceBean,service=EJB3 The JNDI view, using JMX on instance A shows: | com.phonemessage.service.CallHandlerService (proxy: $Proxy95 implements interface com.phonemessage.service.CallHandlerService,interface org.jboss.ejb3.JBossProxy) | Does that answer the question? I'd like to emphasize when deploying both ears in a single instance, the code works (given the JNDI is changed localhost:1099) for a local development machine. However, that is not the situation on the production machine. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141832#4141832 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141832 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Now to think of it, Could it be that: Adding some JNDI property to search for a remote proxy will solve it? If so, how and what do I do that? or I split the local and remote interface, so they come with unique names. That will 'force' the lookup in obtaining the right proxy. Your thoughts? View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141834#4141834 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141834 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Problem solved, by enforcing lookup of remote interface. I did this by changing the name of the interface to: CallHandlerServiceRemote. Hopefully others are helped by this as well. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141836#4141836 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141836 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Yes, you arrived at the solution. Here you have: @Local({CallHandlerService.class}) | @Remote({CallHandlerService.class}) Which your version of JBoss has allowed, but in fact this is prohibited: EJB3 Core Specification 4.6.6 wrote : The same business interface cannot be both a local and a remote business interface of the bean. I can't find the JIRA for this at the moment, but it's been fixed and now cites an error on deployment. S, ALR View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141837#4141837 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141837 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
Thats ok, anyways I want to thank you for the support/effort! View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141848#4141848 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141848 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB 3.0] - Re: ejb3.0 problem, container not yet available??
http://jira.jboss.org/jira/browse/EJBTHREE-751 View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4141857#4141857 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4141857 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user