[jboss-user] [JBoss Seam] - Re: WebRemote inconsistencies

ZeddMaxim do-not-reply at jboss.com
Thu Aug 3 09:05:58 EDT 2006


I think I have found the problem.  It is mostly my fault, but I think a change or two in InterfaceGenerator.appendComponentSource() would ease a lot of people's headaches in the future.

My WebRemote methods are in a SFSB, with both a remote and local interface.  However, the remote and local interfaces are not the same (more methods are exposed via the local than remote, including my WebRemote methods).  The culprit in this situation lies with the following snippet from that method:

if ((component.getType().equals(ComponentType.STATEFUL_SESSION_BEAN) ||
  |         component.getType().equals(ComponentType.STATELESS_SESSION_BEAN)) &&
  |         component.getBusinessInterfaces().size() > 0)
  |     {
  |       type = component.getBusinessInterfaces().iterator().next();
  |     }

Since the method getBusinessInterfaces() returns a Set, which is not ordered, and I have 2 interfaces on my SFSB, I have (roughly) a 50/50 chance of getting my local interface returned first, which contains my WebRemote method stubs.  If my remote interface is returned first, no stubs.

The solution for me is easy at this point.  Expose my WebRemote methods in the remote interface as well, and it then does not matter which it grabs first.  

However, in the long run, would it not make more sense to iterate all of the stateless/ful session bean's interfaces looking for WebRemote methods?

Incidentally, I admit it is not a common use case to have your local and remote interfaces be different, but the case still seems valid.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3962827#3962827

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3962827



More information about the jboss-user mailing list