Re: Re: Re: Re: Re: Re: Re: Re: How to change remote JNDI-name in Jonas
"Guillaume Sauthier (OW2)" <[email protected]> Tue, 9 Aug 2011 14:52:06 +0200
| Newsgroups | gmane.comp.java.objectweb.jonas |
|---|---|
| Message-ID | <CAG1yf3PErh1587uTL-d5awR5dbudN_J5QMm8o3eovT7K7qaHVg@mail.gmail.com> |
--0016e6d64697f99e9a04aa1207d4
Content-Type: text/plain; charset=ISO-8859-1
OK I think got it.
The problem with mappedName attribute is that we have only 1 value that must
be used for all our interfaces: local/remote/ws/...
So, there are names clashes when you specify mappedname and you have
multiple interfaces.
EJB3 Spec is not good on this point :'(
So it seems we have very few options right now:
* Separate your applications on independant JOnAS (separate JNDI registry
means no clashes)
* Mutualize your EJB between your applications so that there is only 1
instance of your bean
But this is an interesting use case that we would like to support, so i
would be grateful if you could open a JIRA explaining the issue.
For the more long term, we may come with a more elegant solution:
Customize the naming strategy to differentiate JNDI names from beans in
different applications:
something that could be placed in the easybeans.xml file (either in global
or ejbjar configuration)
<strategy>${beanName}-${beanInterface}@${beanMode}</strategy>
or
<mapped-names>
<local>MyLocalBean</local>
<remote>MyRemoteBean</remote>
</mapped-names>
Thanks
--G
2011/8/9 Stefaan Somers <[email protected]>
> Guillaume,
>
> OK but if 2 Beans normally have the same package-name & ClassName in 2
> different applications (different jar-components), there can be only 1
> JNDI-entry for the remote interface. So there is the danger that 1
> application is going to the wrong JNDI-entry.
>
>
> For example we have 2 applications with each an account-component
> (with Account-bean that is used for logon information). Last time when
> I deployed the 2 applications, the one application was using the
> account-data from the other application.
>
> I hope it's a bit clear for you??
>
> Greetings,
>
> Stefaan Somers
>
> On 9 August 2011 13:51, Guillaume Sauthier (OW2)
> <[email protected]> wrote:
> > EasyBeans (the EJB3 container in JOnAS) gives priority to beans found in
> the
> > same application if there is multiple match.
> > The EJB3 spec mandates that behavior so you're safe :)
> > Just make a try.
> > --G
> >
> > 2011/8/9 Stefaan Somers <[email protected]>
> >>
> >> But,
> >>
> >> our applications are generated, so we can have for example 2
> >> account-beans in 2 different applications. Therefore we must be able
> >> to uniquely identify the 2 remote JNDI interfaces to the 2 different
> >> applications. That's why we are using "mappedName"
> >>
> >> Greetings,
> >>
> >> Stefaan Somers
> >>
> >> On 9 August 2011 11:55, Guillaume Sauthier (OW2)
> >> <[email protected]> wrote:
> >> > You should also remove your mapped names (don't needed anymore because
> >> > you
> >> > rely on the container to find the right interface for you).
> >> >
> >> > --G
> >> >
> >> > 2011/8/9 Stefaan Somers <[email protected]>
> >> >>
> >> >> Hello,
> >> >>
> >> >> I'v tried that too, but it also injects the remote-bean then instead
> >> >> of the local-bean.
> >> >>
> >> >> Greetings,
> >> >>
> >> >> Stefaan Somers
> >> >>
> >> >> On 9 August 2011 11:04, Guillaume Sauthier (OW2)
> >> >> <[email protected]> wrote:
> >> >> > Can't you change your Calculator.java to something like this:
> >> >> >
> >> >> > It's much more easier to read :)
> >> >> >
> >> >> > /**
> >> >> > * Session Bean implementation class Calculator
> >> >> > */
> >> >> > @Stateless
> >> >> > public class Calculator implements CalculatorRemote,
> CalculatorLocal
> >> >> > {
> >> >> >
> >> >> > @EJB
> >> >> > private ParametersLocal params;
> >> >> >
> >> >> >
> >> >> > /**
> >> >> > * Default constructor.
> >> >> > */
> >> >> > public Calculator() {
> >> >> >
> >> >> > }
> >> >> >
> >> >> > @Override
> >> >> > public String returnMessage() {
> >> >> > result = parameters.getParameter();
> >> >> > return "It's all being calculated :" + result;
> >> >> > }
> >> >> >
> >> >> > }
> >> >> >
> >> >> > 2011/8/9 Stefaan Somers <[email protected]>
> >> >> >>
> >> >> >> Hi Guillaume,
> >> >> >> Thnks for responding. I'm already banging my head for a few days
> >> >> >> with
> >> >> >> this problem. So any help would be most welcome.
> >> >> >>
> >> >> >> I've included a sample project. For the Parameters-bean I use the
> >> >> >> mappedName parameter, since I need to give it a unique-name.
> >> >> >>
> >> >> >> If I try to get the Local Parameters-bean with the
> Calculator-bean,
> >> >> >> it
> >> >> >> gives me the following exception :
> >> >> >>
> >> >> >> java.lang.ClassCastException: $Proxy63 cannot be cast to
> >> >> >> be.sso.test.ParametersLocal
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> be.sso.test.Calculator.original$EasyBeans$returnMessage(Calculator.java:34)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(Unknown
> >> >> >> Source)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.transaction.interceptors.CMTRequiredTransactionInterceptor.intercept(CMTRequiredTransactionInterceptor.java:110)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(Unknown
> >> >> >> Source)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.jonas.jndi.interceptors.impl.easybeans.ResourceCheckerInterceptor.intercept(ResourceCheckerInterceptor.java:103)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(Unknown
> >> >> >> Source)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.jonas.ejb.easybeans.JOnASENCInterceptor.intercept(JOnASENCInterceptor.java:67)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(Unknown
> >> >> >> Source)
> >> >> >> at be.sso.test.Calculator.returnMessage(Calculator.java)
> >> >> >> 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.ow2.easybeans.container.session.stateless.StatelessSessionFactory.localCall(StatelessSessionFactory.java:161)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.container.session.SessionFactory.rpcInvoke(SessionFactory.java:237)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.rpc.rmi.server.RMIServerRPCImpl.getEJBResponse(RMIServerRPCImpl.java:106)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.rpc.rmi.client.RMIClientRPC.sendEJBRequest(RMIClientRPC.java:105)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler.invoke(ClientRPCInvocationHandler.java:195)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler.invoke(ClientRPCInvocationHandler.java:111)
> >> >> >> at $Proxy62.returnMessage(Unknown Source)
> >> >> >> at
> >> >> >> be.sso.servlet.CalculateServlet.doGet(CalculateServlet.java:40)
> >> >> >> at
> >> >> >> javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
> >> >> >> at
> >> >> >> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.jonas.web.tomcat6.CheckOpenResourcesValve.invoke(CheckOpenResourcesValve.java:73)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.jonas.web.tomcat6.tx.TransactionValve.invoke(TransactionValve.java:90)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.ow2.jonas.web.tomcat6.ResetAuthenticationValve.invoke(ResetAuthenticationValve.java:95)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
> >> >> >> at
> >> >> >>
> >> >> >>
> >> >> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> >> >> >> at
> >> >> >>
> >> >> >>
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >> >> >> at java.lang.Thread.run(Thread.java:619)
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> On 9 August 2011 10:45, Guillaume Sauthier (OW2)
> >> >> >> <[email protected]> wrote:
> >> >> >> > Can't you rely on container's injection (@EJB) ?
> >> >> >> > --G
> >> >> >> >
> >> >> >> > 2011/8/9 Stefaan Somers <[email protected]>
> >> >> >> >>
> >> >> >> >> Hi all,
> >> >> >> >>
> >> >> >> >> I need to change the remote jndi-name of a Stateless Session
> Bean
> >> >> >> >> .
> >> >> >> >> Default the naming for jonas is :
> >> >> >> >>
> >> >> >> >> SessionBean.class.getName()
> >> >> >> >> + "_" + SessionBeanInterface.class.getName() + "@Remote"
> >> >> >> >>
> >> >> >> >> How can I change this. If I add the attribute mappedName in the
> >> >> >> >> @Stateless-annotation, I cannot get to the Local Interface
> >> >> >> >> anymore.
> >> >> >> >> And I need to be able to get to both.
> >> >> >> >>
> >> >> >> >> Greetings,
> >> >> >> >>
> >> >> >> >> Stefaan Somers
> >> >> >> >
> >> >> >> >
> >> >> >
> >> >> >
> >> >
> >> >
> >
> >
>
--0016e6d64697f99e9a04aa1207d4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
OK I think got it.<br>The problem with mappedName attribute is that we have=
only 1 value that must be used for all our interfaces: local/remote/ws/...=
<br>So, there are names clashes when you specify mappedname and you have mu=
ltiple interfaces.<br>
EJB3 Spec is not good on this point :'(<br><br>So it seems we have very=
few options right now:<br>* Separate your applications on independant JOnA=
S (separate JNDI registry means no clashes)<br>* Mutualize your EJB between=
your applications so that there is only 1 instance of your bean<br>
<br>But this is an interesting use case that we would like to support, so i=
would be grateful if you could open a JIRA explaining the issue.<br>For th=
e more long term, we may come with a more elegant solution:<br>Customize th=
e naming strategy to differentiate JNDI names from beans in different appli=
cations:<br>
something that could be placed in the easybeans.xml file (either in global =
or ejbjar configuration)<br><strategy>${beanName}-${beanInterface}@${=
beanMode}</strategy><br>or<br><mapped-names><br>=A0 <local&g=
t;MyLocalBean</local><br>
=A0 <remote>MyRemoteBean</remote><br></mapped-names><br><=
br>Thanks<br>--G<br><br><div class=3D"gmail_quote">2011/8/9 Stefaan Somers =
<span dir=3D"ltr"><<a href=3D"mailto:[email protected]">stefaan.s=
[email protected]</a>></span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;">Guillaume,<br>
<br>
OK but if 2 Beans normally have the same package-name & ClassName in 2<=
br>
different applications (different jar-components), there can be only 1<br>
JNDI-entry for the remote interface. So there is the danger that 1<br>
application is going to the wrong JNDI-entry.<br>
<br>
<br>
For example we have 2 applications with each an account-component<br>
(with Account-bean that is used for logon information). Last time when<br>
I deployed the 2 applications, the one application was using the<br>
account-data from the other application.<br>
<br>
I hope it's a bit clear for you??<br>
<br>
Greetings,<br>
<br>
Stefaan Somers<br>
<br>
On 9 August 2011 13:51, Guillaume Sauthier (OW2)<br>
<div><div></div><div class=3D"h5"><<a href=3D"mailto:guillaume.sauthier@=
ow2.org">[email protected]</a>> wrote:<br>
> EasyBeans (the EJB3 container in JOnAS) gives priority to beans found =
in the<br>
> same application if there is multiple match.<br>
> The EJB3 spec mandates that behavior so you're safe :)<br>
> Just make a try.<br>
> --G<br>
><br>
> 2011/8/9 Stefaan Somers <<a href=3D"mailto:[email protected]=
">[email protected]</a>><br>
>><br>
>> But,<br>
>><br>
>> our applications are generated, so we can have for example 2<br>
>> account-beans in 2 different applications. Therefore we must be ab=
le<br>
>> to uniquely identify the 2 remote JNDI interfaces to the 2 differe=
nt<br>
>> applications. That's why we are using "mappedName"<b=
r>
>><br>
>> Greetings,<br>
>><br>
>> Stefaan Somers<br>
>><br>
>> On 9 August 2011 11:55, Guillaume Sauthier (OW2)<br>
>> <<a href=3D"mailto:[email protected]">guillaume.sauthi=
[email protected]</a>> wrote:<br>
>> > You should also remove your mapped names (don't needed an=
ymore because<br>
>> > you<br>
>> > rely on the container to find the right interface for you).<b=
r>
>> ><br>
>> > --G<br>
>> ><br>
>> > 2011/8/9 Stefaan Somers <<a href=3D"mailto:stefaan.somers@=
gmail.com">[email protected]</a>><br>
>> >><br>
>> >> Hello,<br>
>> >><br>
>> >> I'v tried that too, but it also injects the remote-be=
an then instead<br>
>> >> of the local-bean.<br>
>> >><br>
>> >> Greetings,<br>
>> >><br>
>> >> Stefaan Somers<br>
>> >><br>
>> >> On 9 August 2011 11:04, Guillaume Sauthier (OW2)<br>
>> >> <<a href=3D"mailto:[email protected]">guillau=
[email protected]</a>> wrote:<br>
>> >> > Can't you change your Calculator.java to somethi=
ng like this:<br>
>> >> ><br>
>> >> > It's much more easier to read :)<br>
>> >> ><br>
>> >> > /**<br>
>> >> > =A0* Session Bean implementation class Calculator<br=
>
>> >> > =A0*/<br>
>> >> > @Stateless<br>
>> >> > public class Calculator implements CalculatorRemote,=
CalculatorLocal<br>
>> >> > {<br>
>> >> ><br>
>> >> > =A0 @EJB<br>
>> >> > =A0 private ParametersLocal params;<br>
>> >> ><br>
>> >> ><br>
>> >> > =A0=A0=A0 /**<br>
>> >> > =A0=A0=A0=A0 * Default constructor.<br>
>> >> > =A0=A0=A0=A0 */<br>
>> >> > =A0=A0=A0 public Calculator() {<br>
>> >> ><br>
>> >> > =A0=A0=A0 }<br>
>> >> ><br>
>> >> > =A0=A0=A0 @Override<br>
>> >> > =A0=A0=A0 public String returnMessage() {<br>
>> >> > =A0=A0=A0 =A0=A0=A0 result =3D parameters.getParamet=
er();<br>
>> >> > =A0=A0=A0 =A0=A0=A0 return "It's all being =
calculated :" + result;<br>
>> >> > =A0=A0=A0 }<br>
>> >> ><br>
>> >> > }<br>
>> >> ><br>
>> >> > 2011/8/9 Stefaan Somers <<a href=3D"mailto:stefaa=
[email protected]">[email protected]</a>><br>
>> >> >><br>
>> >> >> Hi Guillaume,<br>
>> >> >> Thnks for responding. I'm already banging my=
head for a few days<br>
>> >> >> with<br>
>> >> >> this problem. So any help would be most welcome.=
<br>
>> >> >><br>
>> >> >> I've included a sample project. For the Para=
meters-bean I use the<br>
>> >> >> mappedName parameter, since I need to give it a =
unique-name.<br>
>> >> >><br>
>> >> >> If I try to get the Local Parameters-bean with t=
he Calculator-bean,<br>
>> >> >> it<br>
>> >> >> gives me the following exception :<br>
>> >> >><br>
>> >> >> java.lang.ClassCastException: $Proxy63 cannot be=
cast to<br>
>> >> >> be.sso.test.ParametersLocal<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> be.sso.test.Calculator.original$EasyBeans$return=
Message(Calculator.java:34)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.gen.invocationcontext.be.sso.t=
est.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE19429=
50347.proceed(Unknown<br>
>> >> >> Source)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.transaction.interceptors.CMTRe=
quiredTransactionInterceptor.intercept(CMTRequiredTransactionInterceptor.ja=
va:110)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.gen.invocationcontext.be.sso.t=
est.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE19429=
50347.proceed(Unknown<br>
>> >> >> Source)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.jonas.jndi.interceptors.impl.easybeans.R=
esourceCheckerInterceptor.intercept(ResourceCheckerInterceptor.java:103)<br=
>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.gen.invocationcontext.be.sso.t=
est.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE19429=
50347.proceed(Unknown<br>
>> >> >> Source)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.jonas.ejb.easybeans.JOnASENCInterceptor.=
intercept(JOnASENCInterceptor.java:67)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.gen.invocationcontext.be.sso.t=
est.Calculator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE19429=
50347.proceed(Unknown<br>
>> >> >> Source)<br>
>> >> >> =A0 =A0 =A0 =A0at be.sso.test.Calculator.returnM=
essage(Calculator.java)<br>
>> >> >> =A0 =A0 =A0 =A0at sun.reflect.NativeMethodAccess=
orImpl.invoke0(Native<br>
>> >> >> Method)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> sun.reflect.NativeMethodAccessorImpl.invoke(Nati=
veMethodAccessorImpl.java:39)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(=
DelegatingMethodAccessorImpl.java:25)<br>
>> >> >> =A0 =A0 =A0 =A0at java.lang.reflect.Method.invok=
e(Method.java:597)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.container.session.stateless.St=
atelessSessionFactory.localCall(StatelessSessionFactory.java:161)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.container.session.SessionFacto=
ry.rpcInvoke(SessionFactory.java:237)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.rpc.rmi.server.RMIServerRPCImp=
l.getEJBResponse(RMIServerRPCImpl.java:106)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.rpc.rmi.client.RMIClientRPC.se=
ndEJBRequest(RMIClientRPC.java:105)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.proxy.client.ClientRPCInvocati=
onHandler.invoke(ClientRPCInvocationHandler.java:195)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.easybeans.proxy.client.ClientRPCInvocati=
onHandler.invoke(ClientRPCInvocationHandler.java:111)<br>
>> >> >> =A0 =A0 =A0 =A0at $Proxy62.returnMessage(Unknown=
Source)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >> be.sso.servlet.CalculateServlet.doGet(CalculateS=
ervlet.java:40)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >> javax.servlet.http.HttpServlet.service(HttpServl=
et.java:617)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >> javax.servlet.http.HttpServlet.service(HttpServl=
et.java:717)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.ApplicationFilterChain.=
internalDoFilter(ApplicationFilterChain.java:290)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.ApplicationFilterChain.=
doFilter(ApplicationFilterChain.java:206)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.StandardWrapperValve.in=
voke(StandardWrapperValve.java:233)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.StandardContextValve.in=
voke(StandardContextValve.java:191)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.jonas.web.tomcat6.CheckOpenResourcesValv=
e.invoke(CheckOpenResourcesValve.java:73)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.jonas.web.tomcat6.tx.TransactionValve.in=
voke(TransactionValve.java:90)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.ow2.jonas.web.tomcat6.ResetAuthenticationVal=
ve.invoke(ResetAuthenticationValve.java:95)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.StandardHostValve.invok=
e(StandardHostValve.java:127)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.valves.ErrorReportValve.invo=
ke(ErrorReportValve.java:102)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.core.StandardEngineValve.inv=
oke(StandardEngineValve.java:109)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.catalina.connector.CoyoteAdapter.serv=
ice(CoyoteAdapter.java:340)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.coyote.http11.Http11Processor.process=
(Http11Processor.java:857)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >><br>
>> >> >> org.apache.coyote.http11.Http11Protocol$Http11Co=
nnectionHandler.process(Http11Protocol.java:588)<br>
>> >> >> =A0 =A0 =A0 =A0at<br>
>> >> >><br>
>> >> >> org.apache.tomcat.util.net.JIoEndpoint$Worker.ru=
n(JIoEndpoint.java:489)<br>
>> >> >> =A0 =A0 =A0 =A0at java.lang.Thread.run(Thread.ja=
va:619)<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> On 9 August 2011 10:45, Guillaume Sauthier (OW2)=
<br>
>> >> >> <<a href=3D"mailto:[email protected]=
">[email protected]</a>> wrote:<br>
>> >> >> > Can't you rely on container's injec=
tion (@EJB) ?<br>
>> >> >> > --G<br>
>> >> >> ><br>
>> >> >> > 2011/8/9 Stefaan Somers <<a href=3D"mail=
to:[email protected]">[email protected]</a>><br>
>> >> >> >><br>
>> >> >> >> Hi all,<br>
>> >> >> >><br>
>> >> >> >> I need to change the remote jndi-name o=
f a Stateless Session Bean<br>
>> >> >> >> .<br>
>> >> >> >> Default the naming for jonas is :<br>
>> >> >> >><br>
>> >> >> >> SessionBean.class.getName()<br>
>> >> >> >> + "_" + SessionBeanInterface.=
class.getName() + "@Remote"<br>
>> >> >> >><br>
>> >> >> >> How can I change this. If I add the att=
ribute mappedName in the<br>
>> >> >> >> @Stateless-annotation, I cannot get to =
the Local Interface<br>
>> >> >> >> anymore.<br>
>> >> >> >> And I need to be able to get to both.<b=
r>
>> >> >> >><br>
>> >> >> >> Greetings,<br>
>> >> >> >><br>
>> >> >> >> Stefaan Somers<br>
>> >> >> ><br>
>> >> >> ><br>
>> >> ><br>
>> >> ><br>
>> ><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br>
--0016e6d64697f99e9a04aa1207d4--