You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/03/29 08:10:42 UTC
svn commit: r389686 - in /webservices/axis2/trunk/c: include/
modules/core/description/ modules/wsdl/ modules/wsdl/builder/
samples/client/dynamic_invocation/
Author: damitha
Date: Tue Mar 28 22:10:41 2006
New Revision: 389686
URL: http://svn.apache.org/viewcvs?rev=389686&view=rev
Log:
More work on dynamic invocation.
Modified:
webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
webservices/axis2/trunk/c/modules/core/description/op.c
webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c
webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c
webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am
webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c
webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h Tue Mar 28 22:10:41 2006
@@ -64,7 +64,7 @@
int
axis2_wsdl4c_port_type_get_operation_index(void *port_type,
- void *qname);
+ axis2_char_t *op_name);
/**
* axis2_wsdl4c_port_type_get_operations
Modified: webservices/axis2/trunk/c/modules/core/description/op.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/op.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Tue Mar 28 22:10:41 2006
@@ -833,7 +833,10 @@
AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
extensible_component->wsdl_component, env, (axis2_char_t *)
AXIS2_PARAMETER_KEY);
-
+
+ if (!property)
+ return NULL;
+
param_container_l = (axis2_param_container_t *)
AXIS2_PROPERTY_GET_VALUE(property, env);
return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, param_name);
Modified: webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c Tue Mar 28 22:10:41 2006
@@ -22,10 +22,10 @@
axis2_env_t **env)
{
axis2_wsdl4c_optype_t op_type = axis2_wsdl4c_operation_get_type(op);
-
+ printf("op_type:%d\n", op_type);
if(op_type == AXIS2_WSDL4C_OP_IN_OUT)
{
- return AXIS2_MEP_URI_IN_OUT;
+ return AXIS2_MEP_URI_OUT_IN;
}
if (op_type == AXIS2_WSDL4C_OP_IN)
return AXIS2_MEP_URI_IN_ONLY;
@@ -34,7 +34,7 @@
return AXIS2_MEP_URI_OUT_ONLY;
if (op_type == AXIS2_WSDL4C_OP_OUT_IN)
- return AXIS2_MEP_URI_OUT_IN;
+ return AXIS2_MEP_URI_IN_OUT;
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_MEP_CANNOT_DETERMINE_MEP,
AXIS2_FAILURE);
Modified: webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c Tue Mar 28 22:10:41 2006
@@ -296,6 +296,11 @@
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
pump_impl = AXIS2_INTF_TO_IMPL(wsdl_pump);
+ while (axis2_wsdl4c_parser_get_event_type(pump_impl->parser) !=
+ AXIS2_WSDL4C_PARSER_END)
+ {
+ axis2_wsdl4c_parser_get_next_element(pump_impl->parser);
+ }
return axis2_wsdl_pump_populate_def(wsdl_pump, env);
}
@@ -736,6 +741,8 @@
axis2_char_t *str_use = NULL;
axis2_wsdl4c_soap_get_body_info(soap, bindings[i], &nsp, &use);
+ soap_body = axis2_wsdl_ext_soap_body_create(env, NULL);
+ if(!soap_body) return AXIS2_FAILURE;
if(AXIS2_WSDL4C_RPC == use)
str_use = AXIS2_STRDUP("rpc", env);
if(AXIS2_WSDL4C_DOC == use)
@@ -787,7 +794,7 @@
{
return AXIS2_FAILURE;
}
- AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_input_binding, env,
+ AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_output_binding, env,
AXIS2_WSDL_MESSAGE_DIRECTION_OUT);
nbindings = axis2_wsdl4c_binding_get_output_binding(binding, op_index, &bindings);
for(i = 0; i < nbindings; i++)
@@ -800,6 +807,8 @@
axis2_char_t *nsp = NULL;
axis2_wsdl4c_soap_get_body_info(soap, bindings[i], &nsp, &use);
+ soap_body = axis2_wsdl_ext_soap_body_create(env, NULL);
+ if(!soap_body) return AXIS2_FAILURE;
if(AXIS2_WSDL4C_RPC == use)
str_use = AXIS2_STRDUP("rpc", env);
if(AXIS2_WSDL4C_DOC == use)
@@ -828,7 +837,7 @@
AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_output_binding->
extensible_component->wsdl_component, env, soap_header);
}
- status = AXIS2_WSDL_BINDING_OP_SET_INPUT(wsdl_binding_op, env, wsdl_output_binding);
+ status = AXIS2_WSDL_BINDING_OP_SET_OUTPUT(wsdl_binding_op, env, wsdl_output_binding);
if(AXIS2_SUCCESS != status)
{
return status;
@@ -841,7 +850,7 @@
{
return AXIS2_FAILURE;
}
- AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_input_binding, env,
+ AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_fault_binding, env,
AXIS2_WSDL_MESSAGE_DIRECTION_OUT);
nbindings = axis2_wsdl4c_binding_get_fault_binding(binding, op_index, &bindings);
for(i = 0; i < nbindings; i++)
@@ -881,7 +890,7 @@
AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_fault_binding->
extensible_component->wsdl_component, env, soap_header);
}
- status = AXIS2_WSDL_BINDING_OP_SET_INPUT(wsdl_binding_op, env, wsdl_fault_binding);
+ status = AXIS2_WSDL_BINDING_OP_SET_OUTPUT(wsdl_binding_op, env, wsdl_fault_binding);
if(AXIS2_SUCCESS != status)
{
return status;
@@ -931,10 +940,10 @@
int svc_ext_id = 0;
axis2_wsdl_ext_soap_address_t *ext_soap_address = NULL;
+ port_name = AXIS2_ARRAY_LIST_GET(ports, env, i);
binding = axis2_wsdl4c_service_get_port_binding(wsdl4c_svc, port_name);
wsdl_endpoint = axis2_wsdl_endpoint_create(env);
if(!wsdl_endpoint) return AXIS2_FAILURE;
- port_name = AXIS2_ARRAY_LIST_GET(ports, env, i);
status = axis2_wsdl_pump_populate_ports(wsdl_pump, env, wsdl_endpoint,
binding, port_name, NULL);
if(AXIS2_SUCCESS != status) return status;
@@ -1083,7 +1092,10 @@
}
faults = axis2_wsdl4c_operation_get_faults(wsdl4c_op);
- size = AXIS2_ARRAY_LIST_SIZE(faults, env);
+ if(faults)
+ {
+ size = AXIS2_ARRAY_LIST_SIZE(faults, env);
+ }
for(i = 0; i < size; i++)
{
wsdl4c_fault_msg = AXIS2_ARRAY_LIST_GET(faults, env, i);
@@ -1181,7 +1193,6 @@
{
axis2_wsdl_pump_impl_t *pump_impl = NULL;
axis2_qname_t *port_qname = NULL;
- void *binding = NULL;
axis2_char_t *binding_name = NULL;
axis2_qname_t *binding_qname = NULL;
axis2_wsdl_binding_t *wsdl_binding = NULL;
@@ -1199,7 +1210,7 @@
AXIS2_QNAME_FREE(port_qname, env);
port_qname = NULL;
}
- binding_name = axis2_wsdl4c_binding_get_name(binding);
+ binding_name = axis2_wsdl4c_binding_get_name(wsdl4c_binding);
binding_qname = axis2_qname_create(env, binding_name, target_namespc, NULL);
wsdl_binding = AXIS2_WSDL_DESC_GET_BINDING(pump_impl->wom_def, env, binding_qname);
if(binding_qname)
Modified: webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c Tue Mar 28 22:10:41 2006
@@ -537,7 +537,7 @@
wsdl_desc_impl = AXIS2_INTF_TO_IMPL(wsdl_desc);
binding_qname = AXIS2_WSDL_BINDING_GET_NAME(binding, env);
- if(NULL == binding_name)
+ if(NULL == binding_qname)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_WSDL_BINDING_NAME_IS_REQUIRED,
AXIS2_FAILURE);
Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am Tue Mar 28 22:10:41 2006
@@ -1,11 +1,11 @@
prgbindir=$(prefix)/bin/samples
-prgbin_PROGRAMS = dynamic_invocation
+prgbin_PROGRAMS = di_client
samplesdir=$(prefix)/samples/client/dynamic_invocation
samples_DATA=di_client.c
-dynamic_invocation_SOURCES = di_client.c \
+di_client_SOURCES = di_client.c \
main.c
-dynamic_invocation_LDADD = \
+di_client_LDADD = \
-laxis2_util \
-laxis2_om \
-laxis2_wsdl \
Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c Tue Mar 28 22:10:41 2006
@@ -140,6 +140,7 @@
return -1;
}
op = axis2_op_create_with_wsdl_op(env, wsdl_op);
+ if(!op)
{
return -1;
}
@@ -151,6 +152,8 @@
soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
if(!soap_address) return -1;
address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(soap_address, env);
+ printf("address:%s\n", address);
+ printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
index = axis2_hash_first (binding_ops, env);
axis2_hash_this(index, NULL, NULL, &value);
@@ -159,7 +162,7 @@
wsdl_binding_op->extensible_component->wsdl_component, env);
soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
-
+ printf("wsa_action:%s\n", wsa_action);
/* create call struct */
call = axis2_call_create(env, NULL, client_home);
mep_client = AXIS2_CALL_GET_BASE(call, env);
Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c Tue Mar 28 22:10:41 2006
@@ -76,13 +76,11 @@
axis2_om_output_t *om_output = NULL;
axis2_char_t *buffer = NULL;
- ns1 = axis2_om_namespace_create (env, "http://localhost:9090/axis2/services/echo", "ns1");
+ ns1 = axis2_om_namespace_create (env, "http://example.org/echo", "tns1");
- echo_om_ele = axis2_om_element_create(env, NULL, "echoString", ns1, &echo_om_node);
+ echo_om_ele = axis2_om_element_create(env, NULL, "echoIn", ns1, &echo_om_node);
- text_om_ele = axis2_om_element_create(env, echo_om_node, "text", NULL, &text_om_node);
-
- AXIS2_OM_ELEMENT_SET_TEXT(text_om_ele, env, "echo5", text_om_node);
+ AXIS2_OM_ELEMENT_SET_TEXT(echo_om_ele, env, "Hello World", echo_om_node);
xml_writer = axis2_xml_writer_create_for_memory(env, NULL, AXIS2_FALSE, AXIS2_FALSE);