On 12/7/06, Nicholas Hart <[EMAIL PROTECTED]> wrote:
I'm trying to reduce the complexity of the problem I'm having with the C
code generator. I've reduced it to a simple example that demonstrates
one of the problems I'm having (attached) when trying to generate client
code.
The generated code below uses an undefined type "getFooBar" in the
parameter list:
void axis2_stub_FooBarAdapterService_getFooBar_start(
axis2_stub_t *stub, const axis2_env_t *env,
getFooBar param0,
axis2_status_t
( AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t* )
,
axis2_status_t
( AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t*,
int ) );
my guess is that this should be an "axis2_getFooBarRequest" object
instead of "getFooBar" for param0 (yes/no?) but there seems to be no .c
or .h file generated that contains a request object. the generated
files are:
axis2_FooBarObject.c
axis2_FooBarObject.h
axis2_getFooBar.c
axis2_getFooBar.h
axis2_getFooBarResponse.c
axis2_getFooBarResponse.h
axis2_stub_FooBarAdapterService.c
axis2_stub_FooBarAdapterService.h
Or, should the axis2_stub_FooBarAdapterService_getFooBar_start()
function instead have a parameter list that reflects the
"parameterOrder" attribute of the "wsdl:operation" tag in the WSDL file
(ie: "string fooId" and "long barId")?
I'm using a build I made from a source snapshot yesterday (on WinXP with
jdk1.5.0_10). the command I'm running to generate the code is:
wsdl2java.bat -l c -d adb -a -u -uri FooBar.wsdl
and with the following environment variable set
JAVA_OPTS=-
Dorg.apache.adb.properties=/org/apache/axis2/schema/c-schema-compile.properties
I've tried some different options, with no luck. I've also looked
through Jira but so far haven't found anything that seems to match this
problem--but maybe I'm using the wrong keywords.
Can someone tell me what's wrong with the wsdl, the wsdl2java command,
or if this is a known issue? I'm willing to try to fix this if it is a
bug, but I'm not sure where to start looking.
thanks!
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Hi,
I tried code generation for your wsdl(in Linux). Generated code compiled
successfully. I used the current source at Axis 2
trunk<http://svn.apache.org/repos/asf/webservices/axis2/trunk/java>.
Most of the bugs in the C code generation is fixed in the source insde
trunk.
Here is the code generated for reported function:
void axis2_stub_FooBarAdapterService_getFooBar_start( axis2_stub_t *stub,
const axis2_env_t *env,
axis2_getFooBar_t*
getFooBar,
axis2_status_t (
AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t *) ,
axis2_status_t (
AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t *, int )
)
{
axis2_callback_t *callback = NULL;
axis2_svc_client_t *svc_client = NULL;
axis2_options_t *options = NULL;
const axis2_char_t *soap_action = NULL;
axiom_node_t *payload = NULL;
payload = AXIS2_GETFOOBAR_PARSE_OM(getFooBar,
env, NULL);
options = AXIS2_STUB_GET_OPTIONS( stub, env);
if ( NULL == options )
{
AXIS2_LOG_ERROR( env->log, AXIS2_LOG_SI, "options is null in
stub: Error code:"
" %d :: %s", env->error->error_number,
AXIS2_ERROR_GET_MESSAGE(env->error));
return;
}
svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
if ( NULL == soap_action )
{
soap_action = "urn:foobar:FooBarAxisAdapter:getFooBarRequest";
AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
}
AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
callback = axis2_callback_create(env);
/* Set our on_complete fucntion pointer to the callback object
*/
AXIS2_CALLBACK_SET_ON_COMPLETE(callback, on_complete);
/* Set our on_error function pointer to the callback object */
AXIS2_CALLBACK_SET_ON_ERROR(callback, on_error);
/* Send request */
AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env,
payload, callback);
}
I think the problem is in the source you have downloaded. Please try the
trunk.
Thanks!
--
[EMAIL PROTECTED]
WSO2, Inc: http://www.wso2.com
http://www.milindalakmal.wordpress.com