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 jin1212 <ji...@gmail.com> on 2008/01/10 15:57:30 UTC
Re: Complex type problem
I'm having the same problem also when I deserialize. The string field all
contains the same value from the first attribute.
Vasilis wrote:
>
> Anna,
>
> Thank you a lot for your help.
> I tried it and i get another error :-). The client can't deserialize
> correctly the response. I send a request with a RequestData object with
> this data (x = "Hello", y="User" , num = 10). In the client the object has
> these values:
> x="Hello"
> y="Hello'
> num=10
>
> I tried with 3 and four strings and i get the same results (All string
> variables get the value of the first String). In the monitor i can see
> that the request has the right values for each string var.
>
> Do you know why this is happening?
>
> Thank you,
> Roy
>
>
>
>
> Anne Thomas Manes <at...@gmail.com> wrote: Roy,
>
> The problem is that the "ns" namespace declaration is not in scope for the
> <parameter> element.
>
> Change the <parameter> definition to this and see if it works:
>
>
> <parameter qname="pns:reqData" xmlns:pns=" http://test.com/ejb/" type="
> pns:RequestData" xmlns:tns="http://www.w3.org/2001/XMLSchema " />
>
> Anne
>
> On 5/29/06, Roy <va...@yahoo.gr> wrote: Dear Anne,
>
> I think that i have declared it here:
>
> <beanMapping xmlns:ns=" http://ejb.test.com/rd"
> qname="ns:RequestData"
> languageSpecificType="java:com.test.ejb.rd.RequestData"/>
>
>
> I tried to set my complex type only with a String ant an int var. It
> worked. I tried it with 2 Strings and both Strings take the same value
> (the value of the first string) when i call the service. In the Soap
> monitor i can see that both string are sent with different values. Have
> you ever any similar problems?
>
>
>
>
> Anne Thomas Manes <atmanes@gmail.com > έγραψε: Roy,
>
> You have an error in your WSDD:
>
> <parameter qname="pns:reqData" xmlns:pns=" http://test.com/ejb/"
> type="ns:RequestData" xmlns:tns=" http://www.w3.org/2001/XMLSchema " />
>
>
> You have not declared the "ns" namespace.
>
> Anne
>
> On 5/26/06, Suyog Gandhi < sgandhi@vistaar.com> wrote: Check out
> the issue AXIS2-770 , may be it is realted to this.
> I faced problems about serialization of complex types. 2nd level of
> nesting is not working. Once I re-structure wsdl for only 1 level of
> nesting, it started working.
> e.g
>
> following complex type does NOT work: ( Gives null for Name and Value
> for the attributes. )
> WMemberInfo
> -------|- ID
> -------|- Attrbutes []
> -------------|- Name
> -------------|- Value
>
> Following complex type works.
> WMemberInfo
> --------|- ID
> --------|- Attr1Name
> --------|- Attr1 Value
> --------|- Attr2 Name
> --------|- Attr2 Value
>
> But this is a crude workaround till the time problem is fixed.
>
> Hope this helps.
> Suyog
>
>
>
> -----Original Message-----
> From: robert lazarski [mailto: robertlazarski@gmail.com]
> Sent: Friday, May 26, 2006 9:36 AM
> To: axis-user@ws.apache.org
> Subject: Re: Complex type problem
>
>
>
> The other thing is make sure your vendor supports wsdl2java - jboss
> does not, for example (although they run a modified version of axis 1.2
> internally). The problem I had was similair, although IIRC correctly I was
> getting ser / deser errors, not null. It was working on simple types but
> failing on complex ones.
>
> HTH,
> Robert
> http://www.braziloutsource.com/
>
> On 5/26/06, Roy <vas_opel@yahoo.gr > wrote: I think that
> this is not exactly my problem. I can call normally the service from
> my client when i use simple types. When i try to pass complex types i
> face the problem.
>
> robert lazarski <ro...@gmail.com> έγραψε:
> You're trying to use a non-ejb client to connect to a
> Web Service that implements implements SessionBean, is that
> correct? The only way I got that to work - using jboss - was
> something like...
>
> // remote ejb / web service
> private CallCentreWebEndpoint endpoint;
>
> String wsdl_loc = "
> http://localhost:8080/CallCentreWebServiceJAR?wsdl";
> // generated by JSWDP wscompile, which jboss insists
> on using
> URL mappinglocation =
> ClassLoader.getSystemResource("CallCentreWeb_Mapping.xml");
> assertNotNull(mappinglocation);
> // bean mapping
> URL ws4eeMetaData =
> ClassLoader.getSystemResource("ws4ee-deploy.xml");
> assertNotNull(ws4eeMetaData);
>
> QName qname = new QName("
> http://localhost/callcentreweb",
> "CallCentreWebService");
> URL url = new URL(wsdl_loc);
>
> org.jboss.webservice.client.ServiceFactoryImpl factory=
> (org.jboss.webservice.client.ServiceFactoryImpl)
> ServiceFactoryImpl.newInstance();
> javax.xml.rpc.Service service =
> factory.createService(url, mappinglocation, ws4eeMetaData, qname,
> null);
> endpoint = (CallCentreWebEndpoint)
> service.getPort(CallCentreWebEndpoint.class);
>
> The main idea here is ServiceFactoryImpl, which varies by vendor.
> This may not be your problem, but thought I'd post it in case it
> helps.
>
> HTH,
> Robert
> http://www.braziloutsource.com/
>
> On 5/26/06, Roy <vas_opel@yahoo.gr > wrote:
> I tried the beanmapping too but it didn't work. This is the the
> complex type i want to send and the deploy.wsdd file:
>
> Deploy.wsdd:
>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/ " xmlns:java="
> http://xml.apache.org/axis/wsdd/providers/java">
> <service name="EJBTestService" provider="java:EJB">
> <parameter name="wsdlTargetNamespace" value="
> http://ejb.test.com"/>
> <parameter name="beanJndiName"
> value="ejb/TestService"/>
> <parameter name="homeInterfaceName" value="
> com.test.ejb.TestServiceHome"/>
> <parameter name="remoteInterfaceName" value="
> com.test.ejb.TestService"/>
> <parameter name="allowedMethods" value="*"/>
> <operation name="sendData" qname="operNS:SendData"
> xmlns:operNS=" http://test.com/ejb/" returnQName="retNS:Result"
> xmlns:retNS=" http://test.com/ejb/ " returnType="rtns:int"
> xmlns:rtns=" http://www.w3.org/2001/XMLSchema ">
> <parameter qname="pns:reqData" xmlns:pns="
> http://test.com/ejb/ " type="ns:RequestData"
> xmlns:tns="http://www.w3.org/2001/XMLSchema " />
> </operation>
> <parameter name="allowedMethods" value="*"/>
> <beanMapping xmlns:ns=" http://ejb.test.com/rd"
> qname="ns:RequestData"
> languageSpecificType="java:com.test.ejb.rd.RequestData"/>
> </service>
> </deployment>
>
> ---
>
> public class RequestData implements java.io.Serializable{
>
> private String x;
> private String y;
> private int num;
>
> public void setX(String x)
> this.x = x;
> public void setY(String y)
> this.y = y;
> public void setNum(String n)
> this.num = n;
>
> public String getX(){
> return x;
> }
>
> public String getY(){
> return y;
>
> }
>
> public int getNum{
> return num;
> }
>
> }
>
> If you see something wrong please tell me...
>
>
>
>
>
>
> Anne Thomas Manes < atmanes@gmail.com> έγραψε:
> I think you need to use a beanmapping element
> rather than a typemapping element.
> If that doesn't work, please post more information.
>
> Anne
>
> On 5/25/06, Roy < vas_opel@yahoo.gr> wrote:
> Hello all,
>
> I have deployed an ejb service with a method that takes as
> input a complex object (it contains 2 Strings and one int
> var). When i generate the code in the client with WSDL2Java and
> call the method i can see that this complex type object becomes
> null. I can see in the monitor that the request object isn't null
> but in the debug mode i can see that the service receives a null
> object. This problem doesn't occur when I use simple types to
> transfer.
> I tried the same code on a non-ejb service and works
> normally.
> In the deploy wsdd i use a typemapping element to describe
> the object and i use the BeanSerializerFactory and
> BeanDeSerializer factory as serializer-deserializer.
>
> Can someone explain why is this happening?
>
> Regards,
>
> Roy
>
>
>
>
> ---------------------------------
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα (spam); Το Yahoo! Mail
> διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
> μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
>
>
>
>
>
>
>
> ---------------------------------
>
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα (spam); Το Yahoo! Mail
> διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
> μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
>
>
>
>
>
>
>
>
> ---------------------------------
>
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα (spam); Το Yahoo! Mail διαθέτει
> την καλύτερη δυνατή προστασία κατά των ενοχλητικών μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
>
>
>
>
>
>
>
>
>
>
>
>
>
> ---------------------------------
>
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα (spam); Το Yahoo! Mail διαθέτει την
> καλύτερη δυνατή προστασία κατά των ενοχλητικών μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
>
>
>
>
>
>
>
> ---------------------------------
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα (spam); Το Yahoo! Mail διαθέτει την
> καλύτερη δυνατή προστασία κατά των ενοχλητικών μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
>
--
View this message in context: http://www.nabble.com/Complex-type-problem-tp4555084p14735845.html
Sent from the Axis - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org