You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by xzg <xz...@eimagesoft.com> on 2010/05/07 11:53:57 UTC

failed in building element date

Hi all,

I have built an axis2 service in java and it provides a function of getting a date, as wsdl segment:

<xs:element minOccurs="0" name="date" nillable="true" type="xs:date"/>

I can get the response with date, segment:

<date>2010-04-24+08:00</date>

But the c-stub "failed in building element date".

text_value = axiom_element_get_text(current_element, env, current_node); // 2010-04-24+08:00
element = (void*)axutil_date_time_create(env);
status = axutil_date_time_deserialize_date_time((axutil_date_time_t*)element, env, text_value); // AXIS2_FAILURE

Isn't it a bug? How to deserialize this date time correctly?

Regards,
Zhigang

Re: failed in building element date

Posted by xzg <xz...@eimagesoft.com>.
Thank you, Damitha. Your way is not consistant with the hours and minutes.
I have coped with it in this way (changes the format from axis2/java):

int year = 0, mon = 0, day = 0, hour = 0, min = 0;
float sec = 0;
text_value = axiom_element_get_text(current_element, env, current_node); // 2010-04-24+08:00
text_new = (char*)malloc(50);
sscanf(text_value, "%d-%d-%d+%d:%d", &year, &mon, &day, &hour, &min);
sprintf(text_new, "%d-%d-%dT%d:%d:%fZ", year, mon, day, hour, min, sec); // 2010-4-24T8:0:0.0000Z
element = (void*)axutil_date_time_create(env);
status = axutil_date_time_deserialize_date_time((axutil_date_time_t*)element, env, text_new);
free(text_new);

Thanks,
Zhigang

----- Original Message ----- 
From: "Damitha Kumarage" <da...@wso2.com>
To: "Apache AXIS C User List" <c-...@axis.apache.org>
Sent: Friday, May 07, 2010 6:42 PM
Subject: Re: failed in building element date


> xzg wrote:
>> Hi all,
>> I have built an axis2 service in java and it provides a function of
>> getting a date, as wsdl segment:
>> <xs:element minOccurs="0" name="date" nillable="true" type="xs:date"/>
>> I can get the response with date, segment:
>> <date>2010-04-24+08:00</date>
>> But the c-stub "failed in building element date".
>> text_value = axiom_element_get_text(current_element, env,
>> current_node); // 2010-04-24+08:00
>> element = (void*)axutil_date_time_create(env);
>> status =
>> axutil_date_time_deserialize_date_time((axutil_date_time_t*)element,
>> env, text_value); // AXIS2_FAILURE
>> Isn't it a bug? How to deserialize this date time correctly?
> Following code gave me
> 
> axis2_char_t *date_str = "2010-04-24+08:00";
> printf("input:%s\n", date_str);
> axutil_date_time_t *date_time = axutil_date_time_create(env);
> /*status =
> axutil_date_time_deserialize_date_time_with_time_zone(date_time, env,
> date_str);*/
> status = axutil_date_time_deserialize_date(date_time, env, date_str);
> if(status == AXIS2_SUCCESS)
> {
> axis2_char_t *result = NULL;
> /*result =
> axutil_date_time_serialize_date_time_with_time_zone(date_time, env);*/
> result = axutil_date_time_serialize_date_time(date_time, env);
> printf("result:%s\n", result);
> }
> else
> {
> printf("failure\n");
> }
> return 0;
> 
> 
> the result
> input:2010-04-24+08:00
> result:2010-04-24T10:40:32.105Z
> 
> with Axis2/C 1.6.0
> 
> Thanks,
> Damitha
> 
>> Regards,
>> Zhigang
> 
> 
> -- 
> __________________________________________________________________
> 
> Damitha Kumarage
> Technical Lead; WSO2 Inc.
> "Oxygenating the Web Service Platform; " http://www.wso2.com/
> 
> blog: " http://damithakumarage.wordpress.com/
> __________________________________________________________________
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: c-user-help@axis.apache.org
>

Re: failed in building element date

Posted by Damitha Kumarage <da...@wso2.com>.
xzg wrote:
> Hi all,
> I have built an axis2 service in java and it provides a function of
> getting a date, as wsdl segment:
> <xs:element minOccurs="0" name="date" nillable="true" type="xs:date"/>
> I can get the response with date, segment:
> <date>2010-04-24+08:00</date>
> But the c-stub "failed in building element date".
> text_value = axiom_element_get_text(current_element, env,
> current_node); // 2010-04-24+08:00
> element = (void*)axutil_date_time_create(env);
> status =
> axutil_date_time_deserialize_date_time((axutil_date_time_t*)element,
> env, text_value); // AXIS2_FAILURE
> Isn't it a bug? How to deserialize this date time correctly?
Following code gave me

axis2_char_t *date_str = "2010-04-24+08:00";
printf("input:%s\n", date_str);
axutil_date_time_t *date_time = axutil_date_time_create(env);
/*status =
axutil_date_time_deserialize_date_time_with_time_zone(date_time, env,
date_str);*/
status = axutil_date_time_deserialize_date(date_time, env, date_str);
if(status == AXIS2_SUCCESS)
{
axis2_char_t *result = NULL;
/*result =
axutil_date_time_serialize_date_time_with_time_zone(date_time, env);*/
result = axutil_date_time_serialize_date_time(date_time, env);
printf("result:%s\n", result);
}
else
{
printf("failure\n");
}
return 0;


the result
input:2010-04-24+08:00
result:2010-04-24T10:40:32.105Z

with Axis2/C 1.6.0

Thanks,
Damitha

> Regards,
> Zhigang


-- 
__________________________________________________________________

Damitha Kumarage
Technical Lead; WSO2 Inc.
"Oxygenating the Web Service Platform; " http://www.wso2.com/

blog: " http://damithakumarage.wordpress.com/
__________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
For additional commands, e-mail: c-user-help@axis.apache.org