On 1/11/07, Nilesh Ghorpade <[EMAIL PROTECTED]> wrote:
HI AMila,
Thanks for the reply.
I did some more investigation and was able to get to the root cause for
one of the issues which I was facing namely the "Unexpected namespace URI".
As suggested by you I did try generating the code without using the Helper
option. The getOMElement method which was generated was very different from
the one generated by the Helper option. When I say different, it means that
it had a lot of conditional checks for null and was using the
xmlWriter.writeStartElement API with three parameters i.e. prefix,
namespace and localpart. However the Helper code "getOMElement" generated
using the helper option was using the overloaded method of XMLSTreamWRiter
i.e. xmlWriter.writeStartElement(namespace, localPart). On futher changing
this function call to three parameters in case of the helper option I was
able to do away with the exception. Hence I conclude that the Helper option
code generation of AXIS 2 would need some revisiting.
Yes. Helper mode is not updated recently.
Initially I was of the opinion that the code generator would be using the
same logic for generating the code with/without the helper option. However
on looking into the AXIS 2 code I observed that it was not the case. AXIS 2
uses XSL for code generation and this XSL has a conditional statement at the
top level which checks if the code is to be generated using the Helper
option or without the Helper option. What I fail to understand is why is
this conditional processing required in the XSL. We can have the same in the
code generator java class wherein, depending upon if the helper option is
enabled or not we can open a new FileWriter object to write to a different
Helper class or use the same Bean for writing the Helper methods as well.
Just a thought.
Can you send a patch? Then I can have a look at it and apply.
My plan is to code another XSL and configure the same in the
axis2-adb-codegen-1.1.jar file.
Please let me know if you have any better options.
Regarding the second issue I am not able to understand what you mean when
u say that we can have cyclic reference to classes but not objects. Can you
please elaborate.
something like this
A a = new A();
B b = new B():
a.setB(b):
A[] aArray = new A[1];
aArray[0] = a;
b.setObjA(aArray);
here it is not possible to say
aArray[0] = a;
since it creates a cyclic dependancy.
but it is possible to say
aArray[0] = new A();
Also is there a way we can tune the Helper class which is having the
de-serialization logic to overcome the same?
Thanks,
Nilesh
*Amila Suriarachchi <[EMAIL PROTECTED]>* wrote:
On 1/10/07, Nilesh Ghorpade <[EMAIL PROTECTED]> wrote:
>
> Hi Gurus,
>
> I have two issues.
>
> 1. When using AXIS 2 with ADB I get "Unexpected namespaceURI "
> exception. I am not sure why the error should arise as it is coming from one
> of the AXIS generated classes namely Helper class. This exception is
> encountered while writting the start element of the response.
Can you send your wsdl? What are the parameters you used to generate the
code? Can you try without the helper mode?
2. Is cyclic references allowed in AXIS 2? For example I have the
> following classes
>
> class A{
> B objB;
> }
>
> class B{
> //Here I am having an array of the Objects A.
> A[] objA;
> }
yes, But when creating Object instances you can't have same object A
inside its Object B array. On the other hand there can be a cyclic
dependency at class level. But not in Object level.
Thanks in advance.
>
> Nile
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
--
Amila Suriarachchi,
WSO2 Inc.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
--
Amila Suriarachchi,
WSO2 Inc.