On 1/14/07, Angel Todorov <[EMAIL PROTECTED]> wrote:

Hi Eran,

I agree about the custom MEPs and using reflection. What I would like
to clarify is whether the raw XML message receiver not only uses
reflection, but always expect a certain method signature in the
reflected classes, is that so? Suppose I have some hashtable with
mappings of service operation => actual method signature. I.e my
operation is sayHello but my actual implementation would need to
invoke SAY_HELLO(...) . Then , as far as i understood from the talk
above, the Raw XML Message receiver would fail since the
reflection-based search in findOperation() would not succeed. Thanks



This  would  fail. What you can do is write a Custom Message Receiver that
extends AbstractInOutSynMessageReceiver (assuming the MEP of sayHello is
IN-OUT) and associate it with that operation via serivces.xml. At the time
invocation of invokeBusinessLogic() method in your MR you can call
SAY_HELLO() and constract the output accordingly. In fact you are free to
use any methods of any libaray (provided they are accessible via appropriate
ClassLoader).

Does that answer your problem?

Sanka

Regards,
Angel

On 1/14/07, comain <[EMAIL PROTECTED]> wrote:
>
>
> Yes,it works just as perfect as you said. That is really cool.
>
> However, if we are using POJO based web services with RPC MR (as the
> quickstart example), it works with a lot of reflections indeed.  As a
> developer, since I konw
> little about WSDL, the way I prefer is to write POJOs with my own
business
> logic first, then deploy it as a ws with a default service.xml. In this
> case(maybe
> the common case), does Axis2 has no way but using reflections all
around?
>
> If this is a problem, we may work around in the following ways:
>
> A possible work around is, the developer first write its own
> skeleton(dummy), then using java2wsdl to generate wsdl for him, then
using
> code gen with ADB to generate effective
> sevice skeleton, after which developer now adding his business logic.
>
> Or change the code gen module not using WSDL information, but Service
> Classes directly(Since wsdl can generate from service class). In this
case,
> developer need not to
> provide wsdl before write his service, but write the service with his
own
> will, then using the ADB code gen to generate necessay auxiliary classes
> directly.
>
> If this is not a problem, can you kindly point out how does axis2
elegantly
> handle this case?
>
> Great thanks, Eran.
>
>
>  ________________________________
>
> comain
> 2007-01-14
>  ________________________________
>
> 发件人: Eran Chinthaka
> 发送时间: 2007-01-14 13:17:51
> 收件人: axis-dev@ws.apache.org
> 抄送:
> 主题: Re: Custom Message Receiver use cases
>
>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Comain Chen wrote:
> > Hi, Eran
> >
> > I am quite interested in your 2nd reason.
> >
> > However, it seems that you can only avoid using
> java reflection during
> > operation routing. Before it starts to invoke the
> specific operation, it
> > has to deserialize the XML document into
> corresponding operation
> > parameter objetcs, which will use Java
> reflection(If you use any binding
> > frameworks, such as ADB, JAXB, etc.), and is
> more performance critical.
>
> Well, we do not do that, at least in ADB.
>
> The ADB data objects, that are code gen'ed directly works
> on StAX. What
> you have, when you are just about to de-serialize, is
> a StAX reader,
> from the input stream. ADB is designed to work with
> StAX. IIRC, we do
> not need reflection in this case.
>
> > Of course, if you decide to write your own data
> binding with RawXMLMR,
> > you can still avoid this with a lot of painful work.
>
>
> I totally agree with you. But most people do not want
> to get in to the
> hazel of writing yet another data binding framework.
> We know, from
> experience, how difficult it was :).
> And 95% of the people, in my guess, like to work with
> java objects, than
> with raw XML.
>
> - -- Chinthaka
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla -
> http://enigmail.mozdev.org
>
> iD8DBQFFqbzYjON2uBzUhh8RAiptAKCVz+7gviwJzMHbiqF9KobMaO/gzgCfWbIE
> KD9WF5amy+NyeqF/MyibAKQ=
> =81vD
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>




--
Sanka Samaranayake
WSO2 Inc.

http://sankas.blogspot.com/
http://www.wso2.org/

Reply via email to