Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: How to change remote JNDI-name in Jonas

Stefaan Somers <[email protected]> Fri, 26 Aug 2011 14:38:16 +0200
Newsgroups gmane.comp.java.objectweb.jonas
Message-ID <CA+N_TpWDQVNb+fK0zY=Pj4z3HTGOiQPDN2vP646S25i7i87=Dg@mail.gmail.com>
--20cf30780c68cef8e804ab67d1ac
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Can you have a look at the following EAR-file. When running the
followin URL, it gives me the error :
        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=
(ApplicationFilterCh
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Applica=
tionFilterChain.java
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWra=
pperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardCon=
textValve.java:191)
        at org.ow2.jonas.web.tomcat6.CheckOpenResourcesValve.invoke(CheckOp=
enResourcesValve.jav
        at org.ow2.jonas.web.tomcat6.tx.TransactionValve.invoke(Transaction=
Valve.java:90)
        at org.ow2.jonas.web.tomcat6.ResetAuthenticationValve.invoke(ResetA=
uthenticationValve.j
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostVa=
lve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVa=
lve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngi=
neValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapte=
r.java:340)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor=
.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.=
process(Http11Protoc
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.ja=
va:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassCastException: $Proxy52 cannot be cast to
be.sso.test.ParametersLocal


When debugging in Eclipse, I see I get the remote interface back.

Greetings,

Stefaan Somers

On 26 August 2011 14:13, Florent BENOIT <[email protected]> wrote:
> =A0 =A0Hi,
>
> If your bean has only one interface (and if it's a local interface) then
> mappedName will be applied on the local interface
>
> Regards,
>
> Florent
>
> On 08/26/2011 12:28 PM, Stefaan Somers wrote:
>>
>> If you use mappedname, you only get the Remote Interface and not the
>> local.
>>
>> On 26 August 2011 11:54, Florent BENOIT<[email protected]> =A0wrote=
:
>>>
>>> =A0 =A0Hi,
>>>
>>> You may apply the same rule for local bean
>>>
>>>
>>> Regards,
>>>
>>> Florent
>>>
>>> On 08/26/2011 11:28 AM, Stefaan Somers wrote:
>>>>
>>>> Hi,
>>>>
>>>> using the ejb-jar.xml, and defining the same class as a different bean
>>>> using the mappedName worked. So I can access the remote bean now with
>>>> a specific name.
>>>> Now I have a similar problem with the local bean. Is there any way I
>>>> can make a difference in naming there???
>>>>
>>>> Greetings,
>>>>
>>>> Stefaan Somers
>>>>
>>>> <?xml version=3D"1.0" encoding=3D"UTF-8"?>
>>>> <ejb-jar version=3D"3.0" xmlns=3D"http://java.sun.com/xml/ns/javaee"
>>>> xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"
>>>> xsi:schemaLocation=3D"http://java.sun.com/xml/ns/javaee
>>>> http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
>>>> =A0 <display-name>
>>>> EducationEJB3Beans</display-name>
>>>> <enterprise-beans>
>>>> <session>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<display-name>ParametersRemote</display=
-name>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<ejb-name>ParametersRemote</ejb-name>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<mapped-name>MyApp_ParametersRemote</ma=
pped-name>
>>>> =A0 =A0 =A0 =A0 =A0<business-remote>be.sso.test.ParametersRemote</busi=
ness-remote>
>>>> =A0 =A0 =A0 =A0 =A0<ejb-class>be.sso.test.Parameters</ejb-class>
>>>> =A0 =A0 =A0 =A0 =A0<session-type>Stateless</session-type>
>>>>
>>>> </session>
>>>> <session>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<display-name>ParametersLocal</display-=
name>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<ejb-name>MyApp_ParametersLocal</ejb-na=
me>
>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0<mapped-name>MyApp_ParametersLocal</map=
ped-name>
>>>>
>>>> =A0<business-local>be.sso.test.ParametersLocal</business-local>
>>>> =A0 =A0 =A0 =A0 =A0<ejb-class>be.sso.test.Parameters</ejb-class>
>>>> =A0 =A0 =A0 =A0 =A0<session-type>Stateless</session-type>
>>>>
>>>>
>>>>
>>>> </session>
>>>> </enterprise-beans>
>>>> =A0</ejb-jar>
>>>>
>>>> On 9 August 2011 14:52, Guillaume Sauthier (OW2)
>>>> <[email protected]> =A0 =A0wrote:
>>>>>
>>>>> OK I think got it.
>>>>> The problem with mappedName attribute is that we have only 1 value th=
at
>>>>> 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>
>>>>> =A0 <local>MyLocalBean</local>
>>>>> =A0 <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& =A0 =A0ClassN=
ame 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 wh=
en
>>>>>> 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]> =A0 =A0wrote:
>>>>>>>
>>>>>>> EasyBeans (the EJB3 container in JOnAS) gives priority to beans fou=
nd
>>>>>>> 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 ab=
le
>>>>>>>> to uniquely identify the 2 remote JNDI interfaces to the 2 differe=
nt
>>>>>>>> applications. That's why we are using "mappedName"
>>>>>>>>
>>>>>>>> Greetings,
>>>>>>>>
>>>>>>>> Stefaan Somers
>>>>>>>>
>>>>>>>> On 9 August 2011 11:55, Guillaume Sauthier (OW2)
>>>>>>>> <[email protected]> =A0 =A0wrote:
>>>>>>>>>
>>>>>>>>> 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]> =A0 =A0wrote:
>>>>>>>>>>>
>>>>>>>>>>> Can't you change your Calculator.java to something like this:
>>>>>>>>>>>
>>>>>>>>>>> It's much more easier to read :)
>>>>>>>>>>>
>>>>>>>>>>> /**
>>>>>>>>>>> =A0* Session Bean implementation class Calculator
>>>>>>>>>>> =A0*/
>>>>>>>>>>> @Stateless
>>>>>>>>>>> public class Calculator implements CalculatorRemote,
>>>>>>>>>>> CalculatorLocal
>>>>>>>>>>> {
>>>>>>>>>>>
>>>>>>>>>>> =A0 @EJB
>>>>>>>>>>> =A0 private ParametersLocal params;
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> =A0 =A0 /**
>>>>>>>>>>> =A0 =A0 =A0* Default constructor.
>>>>>>>>>>> =A0 =A0 =A0*/
>>>>>>>>>>> =A0 =A0 public Calculator() {
>>>>>>>>>>>
>>>>>>>>>>> =A0 =A0 }
>>>>>>>>>>>
>>>>>>>>>>> =A0 =A0 @Override
>>>>>>>>>>> =A0 =A0 public String returnMessage() {
>>>>>>>>>>> =A0 =A0 =A0 =A0 result =3D parameters.getParameter();
>>>>>>>>>>> =A0 =A0 =A0 =A0 return "It's all being calculated :" + result;
>>>>>>>>>>> =A0 =A0 }
>>>>>>>>>>>
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> 2011/8/9 Stefaan Somers<[email protected]>
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Guillaume,
>>>>>>>>>>>> Thnks for responding. I'm already banging my head for a few da=
ys
>>>>>>>>>>>> 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
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> be.sso.test.Calculator.original$EasyBeans$returnMessage(Calcul=
ator.java:34)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator=
.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(=
Unknown
>>>>>>>>>>>> Source)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.transaction.interceptors.CMTRequiredTransact=
ionInterceptor.intercept(CMTRequiredTransactionInterceptor.java:110)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator=
.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(=
Unknown
>>>>>>>>>>>> Source)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.jonas.jndi.interceptors.impl.easybeans.ResourceChecker=
Interceptor.intercept(ResourceCheckerInterceptor.java:103)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator=
.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(=
Unknown
>>>>>>>>>>>> Source)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.jonas.ejb.easybeans.JOnASENCInterceptor.intercept(JOnA=
SENCInterceptor.java:67)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calculator=
.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.proceed(=
Unknown
>>>>>>>>>>>> Source)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at be.sso.test.Calculator.returnMessage(Calcula=
tor.java)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at sun.reflect.NativeMethodAccessorImpl.invoke0=
(Native
>>>>>>>>>>>> Method)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess=
orImpl.java:39)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth=
odAccessorImpl.java:25)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at java.lang.reflect.Method.invoke(Method.java:=
597)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.container.session.stateless.StatelessSession=
Factory.localCall(StatelessSessionFactory.java:161)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.container.session.SessionFactory.rpcInvoke(S=
essionFactory.java:237)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.rpc.rmi.server.RMIServerRPCImpl.getEJBRespon=
se(RMIServerRPCImpl.java:106)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.rpc.rmi.client.RMIClientRPC.sendEJBRequest(R=
MIClientRPC.java:105)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler.invo=
ke(ClientRPCInvocationHandler.java:195)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler.invo=
ke(ClientRPCInvocationHandler.java:111)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at $Proxy62.returnMessage(Unknown Source)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>> be.sso.servlet.CalculateServlet.doGet(CalculateServlet.java:40=
)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt=
er(ApplicationFilterChain.java:290)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli=
cationFilterChain.java:206)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW=
rapperValve.java:233)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardC=
ontextValve.java:191)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.jonas.web.tomcat6.CheckOpenResourcesValve.invoke(Check=
OpenResourcesValve.java:73)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.jonas.web.tomcat6.tx.TransactionValve.invoke(Transacti=
onValve.java:90)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.ow2.jonas.web.tomcat6.ResetAuthenticationValve.invoke(Rese=
tAuthenticationValve.java:95)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHost=
Valve.java:127)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport=
Valve.java:102)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn=
gineValve.java:109)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap=
ter.java:340)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Process=
or.java:857)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle=
r.process(Http11Protocol.java:588)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.=
java:489)
>>>>>>>>>>>> =A0 =A0 =A0 =A0at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 9 August 2011 10:45, Guillaume Sauthier (OW2)
>>>>>>>>>>>> <[email protected]> =A0 =A0wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 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
>>>
>
>

--20cf30780c68cef8e804ab67d1ac
Content-Type: application/octet-stream; name="EducationEJB3Ear.ear"
Content-Disposition: attachment; filename="EducationEJB3Ear.ear"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_grt5dfh40

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
AAAAAAUABQBFAQAAjyAAAAAA
--20cf30780c68cef8e804ab67d1ac--