Reposting with the correct prefix..

On 11/28/06, White, Darran <[EMAIL PROTECTED]> wrote:

 Hi,
I`m trying to use the dynamic client to access the Amazon AWSECommerceService
and I`m just trying to work out how the endpoints get set.

I`m successfully parsing the Amazon wsdl and getting a dynamic client
back. However it doesn`t appear to have any endpoints set though there is
definitely an entry in the WSDL for the service location. When I try to
execute my request I get a "cannot infer transport from URL" presumabley
because the endpoint is not set. When I try to get the endpoint from the
client it is returning a null pointer.

How are these endpoints supposed to be set???

Heres the WSDL location
***
http://webservices.amazon.com/AWSECommerceService/UK/AWSECommerceService.wsdl
*<http://webservices.amazon.com/AWSECommerceService/UK/AWSECommerceService.wsdl>

Code below.

Thanks

Darran

m_pSvc_client =
        axis2_svc_client_create_for_dynamic_invocation(
            m_pEnv,NULL, pWsdl_uri, pWsdl_svc_qname,service,
m_pClient_home);

    if (!m_pSvc_client)
    {
                printf("%s\n",AXIS2_ERROR_GET_MESSAGE(m_pError));
        printf("Error creating service client, Please check AXIS2C_HOME
again\n");

        AXIS2_LOG_DEBUG(m_pEnv->log, AXIS2_LOG_SI, "Service client is
NULL");
                //TODO throw exception
    }
        else
        {
                //Try and get the endpoints from the service
                axis2_svc_t * pSvc =
m_pSvc_client->ops->get_svc(m_pSvc_client,m_pEnv);
                axis2_hash_t * pHashEndpoints =
pSvc->wsdl_svc->ops->get_endpoints( pSvc->wsdl_svc,m_pEnv);

                if(pHashEndpoints)
                {
                         axis2_hash_index_t *hi=0;
                         void* val = 0;
                         for (hi =
axis2_hash_first(pHashEndpoints,m_pEnv); hi; hi = axis2_hash_next(m_pEnv,
hi))
                         {
                           axis2_hash_this(hi, NULL, NULL, &val);
                           axis2_endpoint_ref_t* pEndpoint =
(axis2_endpoint_ref_t*)val;

printf("%s",pEndpoint->ops->get_address(pEndpoint,m_pEnv));
                         }
                }

                //Try and get the endpoint from the client
                const axis2_endpoint_ref_t * pEndPoint =

m_pSvc_client->ops->get_target_endpoint_ref(m_pSvc_client,m_pEnv);

                if(!pEndPoint)
                {
                        printf("No endpoint set for service");
                        return;
                }

                const axis2_char_t *buffer =
pEndPoint->ops->get_address(pEndPoint,m_pEnv);

printf("%s",pEndPoint->ops->get_address(pEndPoint,m_pEnv));
        }

       This message may contain privileged and/or confidential
information.  If you have received this e-mail in error or are not the
intended recipient, you may not use, copy, disseminate or distribute it; do
not open any attachments, delete it immediately from your system and notify
the sender promptly by e-mail that you have done so.  Thank you.

Reply via email to