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't you change your Calculator.java to something 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>=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 "It's all being calculated :" =
+ 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"><<a href=3D"mailto:[email protected]">stefaan.somer=
[email protected]</a>></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'm already banging my head for a few days with<b=
r>
this problem. So any help would be most welcome.<br>
<br>
I'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>
<<a href=3D"mailto:[email protected]">[email protected]=
g</a>> wrote:<br>
> Can't you rely on container's injection (@EJB) ?<br>
> --G<br>
><br>
> 2011/8/9 Stefaan Somers <<a href=3D"mailto:[email protected]=
">[email protected]</a>><br>
>><br>
>> Hi all,<br>
>><br>
>> I need to change the remote jndi-name of a Stateless Session Bean =
.<br>
>> Default the naming for jonas is :<br>
>><br>
>> SessionBean.class.getName()<br>
>> + "_" + SessionBeanInterface.class.getName() + "@Re=
mote"<br>
>><br>
>> How can I change this. If I add the attribute mappedName in the<br=
>
>> @Stateless-annotation, I cannot get to the Local Interface anymore=
.<br>
>> And I need to be able to get to both.<br>
>><br>
>> Greetings,<br>
>><br>
>> Stefaan Somers<br>
><br>
><br>
</div></div></blockquote></div><br>
--20cf302ad6425ade4d04aa0edad0--