You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Sven Schroebler <sv...@uni-muenster.de> on 2007/01/09 18:04:27 UTC
[Axis2] Converting an OMElement into an Array of Objects
Hi All,
I am quite new to Axis2 and I am trying to develop a webservice for an
existing webapplication.
So far I managed to set up a basic webservice that transfers JavaBeans (e.g.
"UserDesktopBean") and it possible to access all of the simple data types
from the client application. Unfortunately, even after reading multiple
AXIOM tutorials, I don't know how to correctly work with the JavaBeans
nested inside the "UserDesktopBeans" that need to be transferred as via
AXIOM OMElement-wrapping.
At this time I use the following code to return an array of Objects as an
OMElement:
SERVER:
###########
//Converting an ArrayList to Array
Object[] budlist = buddies.toArray();
QName budQName = new QName("http://desktop.core.herbie.buddies","buddies");
OMElement omElementBUD = BeanUtil.getOMElement(budQName, budlist, null,
false, null);
//Setting the OMElement in the UserDesktopBean
bean.setBuddies(omElementBUD);
CLIENT:
############
//here I am trying to transform the array back
OMElement _buddies = benutzer.getBuddies();
ObjectSupplier os = new AxisService().getObjectSupplier();
Object[] budlist=new Object[]{HerbieWSStub.HerbieObjectDesktopBean.class};
Object[] buddies = BeanUtil.deserialize(_buddies,budlist,os);
//here I am trying to access the first array element
HerbieWSStub.HerbieObjectDesktopBean buddies1 =
(HerbieWSStub.HerbieObjectDesktopBean) buddies[0];
System.out.println(buddies1.getName());
Trying to access the array leads to an Exception at this time.
I would really appreciate, if you could help me with this problem.
For a better understanding of the underlying webservice, I've attached the
UserDesktopBean, the WSDL-File and the services.xml
Best Regards,
Sven
AW: AW: [Axis2] Converting an OMElement into an Array of Objects
Posted by Sven Schroebler <sv...@uni-muenster.de>.
Hi Ahmet!
After a good bit of work, I finally managed to solve the problem for me.
The reason that I needed to deal with an OMElement was that I tried to
transfer (Array-)Lists via Axis. At first, Axis Java2WSDL-Tool generated
<xsd:anyType>-Elements into the schema to represent the lists to be
transferred in the WSDL-File. anyType doesn't specify "any" specific data
type, therefore the server/client-code generated by WSDL2Java only contains
the most general type OMElement (using ADB-data binding) or XMLObject (using
XMLBeans).
I solved the problem by only transferring Arrays of Objects.
So in case you are also trying to transfer lists at any stage, change them
to arrays of the desired type. The Java2WSDL-Tool will than generate
XML-Schema with the specified data types.
If you need to resize arrays, you can easily find methods that provide this
functionality on the internet.
By the way: I started with ADB databinding and switched to XMLBeans, as it
provides full XML-Schema support - according to the release notes.
(Remember that with XMLBeans you fill an XMLBeans-Object-Array like this: 1.
O[] x=new O[length] 2. Each object in x: O y = O.factory.newInstance(). 3.
O[i]=y )
I hope this helps!
Best Regards,
Sven
-----Ursprüngliche Nachricht-----
Von: Ahmet Koc [mailto:akoc@informatik.uni-bremen.de]
Gesendet: Dienstag, 16. Januar 2007 17:28
An: axis-user@ws.apache.org
Betreff: Re: AW: [Axis2] Converting an OMElement into an Array of Objects
Hello Sven,
i have the same problem. Have you an idea how to convert an omelement to
an array?
cheers
ahmet
> Hi all,
>
> on the *client* side, the following exception is thrown:
>
> Exception in thread "main" _java.lang.NullPointerException_
>
> at herbieclient.test.holeBenutzer(_test.java:73_)
>
> at herbieclient.test.main(_test.java:28_)
>
> Line 73: System.out.println(buddies1.getName());
>
> On the server side no exception is thrown.
>
> Now, in order to understand the problem I have added the following
> code in the server class right after the server code described in my
> first mail:
>
> //Setting the OMElement in the UserDesktopBean
>
> bean.setBuddies(omElementBUD);
>
> *new:*
>
> HerbieObjectDesktopBean[] budtest = (HerbieObjectDesktopBean[])
> BeanUtil.deserialize(omElementBUD, new
> Object[]{HerbieObjectDesktopBean.class},new
> AxisService().getObjectSupplier());
>
> System.out.println(budtest.length);
>
> Now, the following exception is thrown on the *server* side:
>
> java.lang.ClassCastException:
> org.apache.axiom.om.impl.llom.OMDocumentImpl at
> org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:423)
>
> at herbie.core.desktop.handler.UserHandler.get(UserHandler.java:255)
>
> at
>
herbie.core.desktop.handler.HerbieWSSkeleton.UserGet(HerbieWSSkeleton.java:8
6)
>
> at
>
herbie.core.desktop.handler.HerbieWSMessageReceiverInOut.invokeBusinessLogic
(HerbieWSMessageReceiverInOut.java:74)
>
> at
>
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(Abstract
InOutSyncMessageReceiver.java:39)
>
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:493)
>
> at
>
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT
TPTransportUtils.java:319)
>
> at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
>
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
>
> at herbie.core.gui.filter.CharsetFilter.doFilter(CharsetFilter.java:27)
>
> at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:202)
>
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
>
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
>
> at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:178)
>
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126
)
>
> at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105
)
>
> at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:107)
>
> at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>
> at
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:744)
>
> at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
>
> at
>
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
>
> at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
>
> at java.lang.Thread.run(Thread.java:595)
>
> Regards,
>
> Sven
>
> ------------------------------------------------------------------------
>
> *Von:* Yadav, Yogendra (IT) [mailto:Yogendra.Yadav@morganstanley.com]
> *Gesendet:* Dienstag, 9. Januar 2007 18:16
> *An:* axis-user@ws.apache.org
> *Betreff:* RE: [Axis2] Converting an OMElement into an Array of Objects
>
> what is the exception ?
>
> ------------------------------------------------------------------------
>
> *From:* Sven Schroebler [mailto:sven.schroebler@uni-muenster.de]
> *Sent:* Tuesday, January 09, 2007 12:04 PM
> *To:* axis-user@ws.apache.org
> *Subject:* [Axis2] Converting an OMElement into an Array of Objects
>
> Hi All,
>
> I am quite new to Axis2 and I am trying to develop a webservice for an
> existing webapplication.
>
> So far I managed to set up a basic webservice that transfers JavaBeans
> (e.g. UserDesktopBean) and it possible to access all of the simple
> data types from the client application. Unfortunately, even after
> reading multiple AXIOM tutorials, I dont know how to correctly work
> with the JavaBeans nested inside the UserDesktopBeans that need to
> be transferred as via AXIOM OMElement-wrapping.
>
> At this time I use the following code to return an array of Objects as
> an OMElement:
>
> SERVER:
>
> ###########
>
> //Converting an ArrayList to Array
>
> Object[] budlist = buddies.toArray();
>
> QName budQName = new
> QName("http://desktop.core.herbie.buddies","buddies");
>
> OMElement omElementBUD = BeanUtil.getOMElement(budQName, budlist,
> null, false, null);
>
> //Setting the OMElement in the UserDesktopBean
>
> bean.setBuddies(omElementBUD);
>
> CLIENT:
>
> ############
>
> //here I am trying to transform the array back
>
> OMElement _buddies = benutzer.getBuddies();
>
> ObjectSupplier os = new AxisService().getObjectSupplier();
>
> Object[] budlist=new Object[]{HerbieWSStub.HerbieObjectDesktopBean.class};
>
> Object[] buddies = BeanUtil.deserialize(_buddies,budlist,os);
>
> //here I am trying to access the first array element
>
> HerbieWSStub.HerbieObjectDesktopBean buddies1 =
> (HerbieWSStub.HerbieObjectDesktopBean) buddies[0];
>
> System.out.println(buddies1.getName());
>
> Trying to access the array leads to an Exception at this time.
>
> I would really appreciate, if you could help me with this problem.
>
> For a better understanding of the underlying webservice, Ive attached
> the UserDesktopBean, the WSDL-File and the services.xml
>
> Best Regards,
> Sven
>
> ------------------------------------------------------------------------
>
> NOTICE: If received in error, please destroy and notify sender. Sender
> does not intend to waive confidentiality or privilege. Use of this
> email is prohibited when received in error.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: AW: [Axis2] Converting an OMElement into an Array of Objects
Posted by Ahmet Koc <ak...@informatik.uni-bremen.de>.
Hello Sven,
i have the same problem. Have you an idea how to convert an omelement to
an array?
cheers
ahmet
> Hi all,
>
> on the *client* side, the following exception is thrown:
>
> Exception in thread "main" _java.lang.NullPointerException_
>
> at herbieclient.test.holeBenutzer(_test.java:73_)
>
> at herbieclient.test.main(_test.java:28_)
>
> Line 73: System.out.println(buddies1.getName());
>
> On the server side no exception is thrown.
>
> Now, in order to understand the problem I have added the following
> code in the server class right after the server code described in my
> first mail:
>
> //Setting the OMElement in the UserDesktopBean
>
> bean.setBuddies(omElementBUD);
>
> *new:*
>
> HerbieObjectDesktopBean[] budtest = (HerbieObjectDesktopBean[])
> BeanUtil.deserialize(omElementBUD, new
> Object[]{HerbieObjectDesktopBean.class},new
> AxisService().getObjectSupplier());
>
> System.out.println(budtest.length);
>
> Now, the following exception is thrown on the *server* side:
>
> java.lang.ClassCastException:
> org.apache.axiom.om.impl.llom.OMDocumentImpl at
> org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:423)
>
> at herbie.core.desktop.handler.UserHandler.get(UserHandler.java:255)
>
> at
> herbie.core.desktop.handler.HerbieWSSkeleton.UserGet(HerbieWSSkeleton.java:86)
>
> at
> herbie.core.desktop.handler.HerbieWSMessageReceiverInOut.invokeBusinessLogic(HerbieWSMessageReceiverInOut.java:74)
>
> at
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:39)
>
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:493)
>
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:319)
>
> at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at herbie.core.gui.filter.CharsetFilter.doFilter(CharsetFilter.java:27)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
>
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>
> at java.lang.Thread.run(Thread.java:595)
>
> Regards,
>
> Sven
>
> ------------------------------------------------------------------------
>
> *Von:* Yadav, Yogendra (IT) [mailto:Yogendra.Yadav@morganstanley.com]
> *Gesendet:* Dienstag, 9. Januar 2007 18:16
> *An:* axis-user@ws.apache.org
> *Betreff:* RE: [Axis2] Converting an OMElement into an Array of Objects
>
> what is the exception ?
>
> ------------------------------------------------------------------------
>
> *From:* Sven Schroebler [mailto:sven.schroebler@uni-muenster.de]
> *Sent:* Tuesday, January 09, 2007 12:04 PM
> *To:* axis-user@ws.apache.org
> *Subject:* [Axis2] Converting an OMElement into an Array of Objects
>
> Hi All,
>
> I am quite new to Axis2 and I am trying to develop a webservice for an
> existing webapplication.
>
> So far I managed to set up a basic webservice that transfers JavaBeans
> (e.g. “UserDesktopBean”) and it possible to access all of the simple
> data types from the client application. Unfortunately, even after
> reading multiple AXIOM tutorials, I don’t know how to correctly work
> with the JavaBeans nested inside the “UserDesktopBeans” that need to
> be transferred as via AXIOM OMElement-wrapping.
>
> At this time I use the following code to return an array of Objects as
> an OMElement:
>
> SERVER:
>
> ###########
>
> //Converting an ArrayList to Array
>
> Object[] budlist = buddies.toArray();
>
> QName budQName = new
> QName("http://desktop.core.herbie.buddies","buddies");
>
> OMElement omElementBUD = BeanUtil.getOMElement(budQName, budlist,
> null, false, null);
>
> //Setting the OMElement in the UserDesktopBean
>
> bean.setBuddies(omElementBUD);
>
> CLIENT:
>
> ############
>
> //here I am trying to transform the array back
>
> OMElement _buddies = benutzer.getBuddies();
>
> ObjectSupplier os = new AxisService().getObjectSupplier();
>
> Object[] budlist=new Object[]{HerbieWSStub.HerbieObjectDesktopBean.class};
>
> Object[] buddies = BeanUtil.deserialize(_buddies,budlist,os);
>
> //here I am trying to access the first array element
>
> HerbieWSStub.HerbieObjectDesktopBean buddies1 =
> (HerbieWSStub.HerbieObjectDesktopBean) buddies[0];
>
> System.out.println(buddies1.getName());
>
> Trying to access the array leads to an Exception at this time.
>
> I would really appreciate, if you could help me with this problem.
>
> For a better understanding of the underlying webservice, I’ve attached
> the UserDesktopBean, the WSDL-File and the services.xml
>
> Best Regards,
> Sven
>
> ------------------------------------------------------------------------
>
> NOTICE: If received in error, please destroy and notify sender. Sender
> does not intend to waive confidentiality or privilege. Use of this
> email is prohibited when received in error.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
AW: [Axis2] Converting an OMElement into an Array of Objects
Posted by Sven Schroebler <sv...@uni-muenster.de>.
Hi all,
on the client side, the following exception is thrown:
Exception in thread "main" java.lang.NullPointerException
at herbieclient.test.holeBenutzer(test.java:73)
at herbieclient.test.main(test.java:28)
Line 73: System.out.println(buddies1.getName());
On the server side no exception is thrown.
Now, in order to understand the problem I have added the following code in
the server class right after the server code described in my first mail:
//Setting the OMElement in the UserDesktopBean
bean.setBuddies(omElementBUD);
new:
HerbieObjectDesktopBean[] budtest = (HerbieObjectDesktopBean[])
BeanUtil.deserialize(omElementBUD, new
Object[]{HerbieObjectDesktopBean.class},new
AxisService().getObjectSupplier());
System.out.println(budtest.length);
Now, the following exception is thrown on the server side:
java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMDocumentImpl
at
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:423)
at herbie.core.desktop.handler.UserHandler.get(UserHandler.java:255)
at
herbie.core.desktop.handler.HerbieWSSkeleton.UserGet(HerbieWSSkeleton.java:8
6)
at
herbie.core.desktop.handler.HerbieWSMessageReceiverInOut.invokeBusinessLogic
(HerbieWSMessageReceiverInOut.java:74)
at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(Abstract
InOutSyncMessageReceiver.java:39)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:493)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT
TPTransportUtils.java:319)
at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at
herbie.core.gui.filter.CharsetFilter.doFilter(CharsetFilter.java:27)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126
)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105
)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Thread.java:595)
Regards,
Sven
_____
Von: Yadav, Yogendra (IT) [mailto:Yogendra.Yadav@morganstanley.com]
Gesendet: Dienstag, 9. Januar 2007 18:16
An: axis-user@ws.apache.org
Betreff: RE: [Axis2] Converting an OMElement into an Array of Objects
what is the exception ?
_____
From: Sven Schroebler [mailto:sven.schroebler@uni-muenster.de]
Sent: Tuesday, January 09, 2007 12:04 PM
To: axis-user@ws.apache.org
Subject: [Axis2] Converting an OMElement into an Array of Objects
Hi All,
I am quite new to Axis2 and I am trying to develop a webservice for an
existing webapplication.
So far I managed to set up a basic webservice that transfers JavaBeans (e.g.
"UserDesktopBean") and it possible to access all of the simple data types
from the client application. Unfortunately, even after reading multiple
AXIOM tutorials, I don't know how to correctly work with the JavaBeans
nested inside the "UserDesktopBeans" that need to be transferred as via
AXIOM OMElement-wrapping.
At this time I use the following code to return an array of Objects as an
OMElement:
SERVER:
###########
//Converting an ArrayList to Array
Object[] budlist = buddies.toArray();
QName budQName = new QName("http://desktop.core.herbie.buddies","buddies");
OMElement omElementBUD = BeanUtil.getOMElement(budQName, budlist, null,
false, null);
//Setting the OMElement in the UserDesktopBean
bean.setBuddies(omElementBUD);
CLIENT:
############
//here I am trying to transform the array back
OMElement _buddies = benutzer.getBuddies();
ObjectSupplier os = new AxisService().getObjectSupplier();
Object[] budlist=new Object[]{HerbieWSStub.HerbieObjectDesktopBean.class};
Object[] buddies = BeanUtil.deserialize(_buddies,budlist,os);
//here I am trying to access the first array element
HerbieWSStub.HerbieObjectDesktopBean buddies1 =
(HerbieWSStub.HerbieObjectDesktopBean) buddies[0];
System.out.println(buddies1.getName());
Trying to access the array leads to an Exception at this time.
I would really appreciate, if you could help me with this problem.
For a better understanding of the underlying webservice, I've attached the
UserDesktopBean, the WSDL-File and the services.xml
Best Regards,
Sven
_____
NOTICE: If received in error, please destroy and notify sender. Sender does
not intend to waive confidentiality or privilege. Use of this email is
prohibited when received in error.
RE: [Axis2] Converting an OMElement into an Array of Objects
Posted by "Yadav, Yogendra (IT)" <Yo...@morganstanley.com>.
what is the exception ?
________________________________
From: Sven Schroebler [mailto:sven.schroebler@uni-muenster.de]
Sent: Tuesday, January 09, 2007 12:04 PM
To: axis-user@ws.apache.org
Subject: [Axis2] Converting an OMElement into an Array of Objects
Hi All,
I am quite new to Axis2 and I am trying to develop a webservice for an
existing webapplication.
So far I managed to set up a basic webservice that transfers JavaBeans
(e.g. "UserDesktopBean") and it possible to access all of the simple
data types from the client application. Unfortunately, even after
reading multiple AXIOM tutorials, I don't know how to correctly work
with the JavaBeans nested inside the "UserDesktopBeans" that need to be
transferred as via AXIOM OMElement-wrapping.
At this time I use the following code to return an array of Objects as
an OMElement:
SERVER:
###########
//Converting an ArrayList to Array
Object[] budlist = buddies.toArray();
QName budQName = new
QName("http://desktop.core.herbie.buddies","buddies");
OMElement omElementBUD = BeanUtil.getOMElement(budQName, budlist, null,
false, null);
//Setting the OMElement in the UserDesktopBean
bean.setBuddies(omElementBUD);
CLIENT:
############
//here I am trying to transform the array back
OMElement _buddies = benutzer.getBuddies();
ObjectSupplier os = new AxisService().getObjectSupplier();
Object[] budlist=new
Object[]{HerbieWSStub.HerbieObjectDesktopBean.class};
Object[] buddies = BeanUtil.deserialize(_buddies,budlist,os);
//here I am trying to access the first array element
HerbieWSStub.HerbieObjectDesktopBean buddies1 =
(HerbieWSStub.HerbieObjectDesktopBean) buddies[0];
System.out.println(buddies1.getName());
Trying to access the array leads to an Exception at this time.
I would really appreciate, if you could help me with this problem.
For a better understanding of the underlying webservice, I've attached
the UserDesktopBean, the WSDL-File and the services.xml
Best Regards,
Sven
--------------------------------------------------------
NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.