Hi Christoph,

If you take a close look at the error on the client it states: 'Destination 
'dataElements' has no channels defined and the application does not define any 
default channels.'

When you compile your swf with a -services flag, a portion of your 
services-config.xml info is injected into the swf (and viewable in the debugger 
in the mx.messaging.config.ServerConfig.xml property).

Your <mx:WebService ... /> is assigned a destination of "dataElements" and 
uesProxy is "true", so when you make your first call this component attempts to 
automatically set up an underlying ChannelSet to communicate with the server 
over.

If you inspect the ServerConfig.xml property, you can verify whether the 
"dataElements" has a list of channel ids that it can be accessed over.

This type of issue is generally the result of making changes to your config 
files, and not recompiling the swf to pick any relevant changes up.

The request that is triggering this auto-configuration of the client-side 
ChannelSet is the initial request for the WSDL, but the request is failing 
locally on the client. It's not due to the WSDL not being reachable.

Hope that helps,
Seth

________________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Christoph Guse
Sent: Wednesday, January 23, 2008 7:58 AM
To: [email protected]
Subject: [flexcoders] Webservice, SOAP, SSL and BasicAuthentication

Hi List,

I try to configure the flex webservice proxy in proxy-config.xml and it drives 
me crazy. I'm not able to load the WSDL from a Webservice which is secured by 
SSL ( self signed Certificate ) and BasicAuthentication. I searched the docs 
but I was not abel to find a complete example. Even the description in the lcds 
development guide doesn't help.

Destination in proxy-config.xml
    <destination id="dataElements">
        <adapter ref="soap-proxy" />
        <channels>
            <channel ref="my-secure-http" />
        </channels>
        <properties>
            <wsdl>https://eipref1.kingmedia.de/ws/getDataElements?wsdl</wsdl>
            <soap>https://eipref1.kingmedia.de/ws/getDataElements</soap>
            <remote-username>John Doe</remote-username>
            <remote-password>doe</remote-password>
        </properties>
    </destination>

Webservice declaration in mxml
    <mx:WebService id="dataElementService" destination="dataElements" 
useProxy="true" showBusyCursor="true">
        <mx:operation name="getDataElements" concurrency="multiple" 
resultFormat="e4x" />
    </mx:WebService>

WS call in method
dataElementService.getDataElements([ws specific argument]);

Error message in application
[RPC Fault faultString="[MessagingError message='Destination 'dataElements' has 
no channels defined and the application does not define any default 
channels.']" faultCode="InvokeFailed" faultDetail="Unable to load WSDL. If 
currently online, please verify the URI and/or format of the WSDL (null)"]
    at 
mx.rpc.wsdl::WSDLLoader/faultHandler()[E:\dev\flex_201_borneo\sdk\frameworks\mx\rpc\wsdl\WSDLLoader.as:76]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at 
mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\flex_201_borneo\sdk\frameworks\mx\rpc\AbstractInvoker.as:146]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at 
mx.rpc::AsyncDispatcher/timerEventHandler()[E:\dev\flex_201_borneo\sdk\frameworks\mx\rpc\AsyncDispatcher.as:57]
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

I'm using LCDS 2.5 ES and the Flex 2.0.1 Hotfix 3 compilter delivered with FB 
Beta3.

I tried to use Ethereal to see which information is send to the WS but that 
wasn't successfull.

The webservice itself is created with JAX-WS 2.1 and works like a charm, tested 
with SoapUI 2.0.

At the moment I have no idea why I can't call my webservice. Can somebody help 
me, please?

Regards,
Christoph

 

Reply via email to