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

"Guillaume Sauthier (OW2)" <[email protected]> Tue, 9 Aug 2011 11:04:36 +0200
Newsgroups gmane.comp.java.objectweb.jonas
Message-ID <CAG1yf3ONUqg80wXABOjGhB0C7K9rsi2qP=FHNde2dabe+tY54g@mail.gmail.com>
--20cf302ad6425ade4d04aa0edad0
Content-Type: text/plain; charset=ISO-8859-1

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
> >
> >
>

--20cf302ad6425ade4d04aa0edad0
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Can&#39;t you change your Calculator.java to something like this:<br><br>It=
&#39;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>=A0 @EJB<br>=A0 private ParametersLocal params;<br>=A0
<br>=A0=A0=A0 =A0<br>=A0=A0=A0 /**
<br>=A0=A0=A0=A0 * Default constructor.=A0
<br>=A0=A0=A0=A0 */
<br>=A0=A0=A0 public Calculator() {
<br>=A0=A0=A0=A0=A0=A0=A0=A0
<br>=A0=A0=A0 }
<br>=A0<br>=A0=A0=A0 @Override
<br>=A0=A0=A0 public String returnMessage() {
<br>=A0=A0=A0 =A0=A0=A0 result =3D parameters.getParameter();
<br>=A0=A0=A0 =A0=A0=A0 return &quot;It&#39;s all being calculated :&quot; =
+ result;
<br>=A0=A0=A0 }
<br>=A0<br>}<br><br><div class=3D"gmail_quote">2011/8/9 Stefaan Somers <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">stefaan.somer=
[email protected]</a>&gt;</span><br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class=3D"h5">Hi Guillaume,<br>
Thnks for responding. I&#39;m already banging my head for a few days with<b=
r>
this problem. So any help would be most welcome.<br>
<br>
I&#39;ve included a sample project. For the Parameters-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 the Calculator-bean, 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 be.sso.test.Calculator.original$EasyBeans$returnMessage(C=
alculator.java:34)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calcu=
lator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.pro=
ceed(Unknown<br>
Source)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.transaction.interceptors.CMTRequiredTra=
nsactionInterceptor.intercept(CMTRequiredTransactionInterceptor.java:110)<b=
r>
=A0 =A0 =A0 =A0at org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calcu=
lator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.pro=
ceed(Unknown<br>
Source)<br>
=A0 =A0 =A0 =A0at org.ow2.jonas.jndi.interceptors.impl.easybeans.ResourceCh=
eckerInterceptor.intercept(ResourceCheckerInterceptor.java:103)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calcu=
lator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.pro=
ceed(Unknown<br>
Source)<br>
=A0 =A0 =A0 =A0at org.ow2.jonas.ejb.easybeans.JOnASENCInterceptor.intercept=
(JOnASENCInterceptor.java:67)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.gen.invocationcontext.be.sso.test.Calcu=
lator.EasyBeansInvocationContextImplreturnMessageAROUNDINVOKE1942950347.pro=
ceed(Unknown<br>
Source)<br>
=A0 =A0 =A0 =A0at be.sso.test.Calculator.returnMessage(Calculator.java)<br>
=A0 =A0 =A0 =A0at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Metho=
d)<br>
=A0 =A0 =A0 =A0at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA=
ccessorImpl.java:39)<br>
=A0 =A0 =A0 =A0at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegatin=
gMethodAccessorImpl.java:25)<br>
=A0 =A0 =A0 =A0at java.lang.reflect.Method.invoke(Method.java:597)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.container.session.stateless.StatelessSe=
ssionFactory.localCall(StatelessSessionFactory.java:161)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.container.session.SessionFactory.rpcInv=
oke(SessionFactory.java:237)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.rpc.rmi.server.RMIServerRPCImpl.getEJBR=
esponse(RMIServerRPCImpl.java:106)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.rpc.rmi.client.RMIClientRPC.sendEJBRequ=
est(RMIClientRPC.java:105)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler=
.invoke(ClientRPCInvocationHandler.java:195)<br>
=A0 =A0 =A0 =A0at org.ow2.easybeans.proxy.client.ClientRPCInvocationHandler=
.invoke(ClientRPCInvocationHandler.java:111)<br>
=A0 =A0 =A0 =A0at $Proxy62.returnMessage(Unknown Source)<br>
=A0 =A0 =A0 =A0at be.sso.servlet.CalculateServlet.doGet(CalculateServlet.ja=
va:40)<br>
=A0 =A0 =A0 =A0at javax.servlet.http.HttpServlet.service(HttpServlet.java:6=
17)<br>
=A0 =A0 =A0 =A0at javax.servlet.http.HttpServlet.service(HttpServlet.java:7=
17)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.ApplicationFilterChain.internalD=
oFilter(ApplicationFilterChain.java:290)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.ApplicationFilterChain.doFilter(=
ApplicationFilterChain.java:206)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.StandardWrapperValve.invoke(Stan=
dardWrapperValve.java:233)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.StandardContextValve.invoke(Stan=
dardContextValve.java:191)<br>
=A0 =A0 =A0 =A0at org.ow2.jonas.web.tomcat6.CheckOpenResourcesValve.invoke(=
CheckOpenResourcesValve.java:73)<br>
=A0 =A0 =A0 =A0at org.ow2.jonas.web.tomcat6.tx.TransactionValve.invoke(Tran=
sactionValve.java:90)<br>
=A0 =A0 =A0 =A0at org.ow2.jonas.web.tomcat6.ResetAuthenticationValve.invoke=
(ResetAuthenticationValve.java:95)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.StandardHostValve.invoke(Standar=
dHostValve.java:127)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR=
eportValve.java:102)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.core.StandardEngineValve.invoke(Stand=
ardEngineValve.java:109)<br>
=A0 =A0 =A0 =A0at org.apache.catalina.connector.CoyoteAdapter.service(Coyot=
eAdapter.java:340)<br>
=A0 =A0 =A0 =A0at org.apache.coyote.http11.Http11Processor.process(Http11Pr=
ocessor.java:857)<br>
=A0 =A0 =A0 =A0at org.apache.coyote.http11.Http11Protocol$Http11ConnectionH=
andler.process(Http11Protocol.java:588)<br>
=A0 =A0 =A0 =A0at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndp=
oint.java:489)<br>
=A0 =A0 =A0 =A0at java.lang.Thread.run(Thread.java:619)<br>
<br>
<br>
<br>
On 9 August 2011 10:45, Guillaume Sauthier (OW2)<br>
&lt;<a href=3D"mailto:[email protected]">[email protected]=
g</a>&gt; wrote:<br>
&gt; Can&#39;t you rely on container&#39;s injection (@EJB) ?<br>
&gt; --G<br>
&gt;<br>
&gt; 2011/8/9 Stefaan Somers &lt;<a href=3D"mailto:[email protected]=
">[email protected]</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; I need to change the remote jndi-name of a Stateless Session Bean =
.<br>
&gt;&gt; Default the naming for jonas is :<br>
&gt;&gt;<br>
&gt;&gt; SessionBean.class.getName()<br>
&gt;&gt; + &quot;_&quot; + SessionBeanInterface.class.getName() + &quot;@Re=
mote&quot;<br>
&gt;&gt;<br>
&gt;&gt; How can I change this. If I add the attribute mappedName in the<br=
>
&gt;&gt; @Stateless-annotation, I cannot get to the Local Interface anymore=
.<br>
&gt;&gt; And I need to be able to get to both.<br>
&gt;&gt;<br>
&gt;&gt; Greetings,<br>
&gt;&gt;<br>
&gt;&gt; Stefaan Somers<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>

--20cf302ad6425ade4d04aa0edad0--