[Ctk-developers] Ctk-developers Digest, Vol 26, Issue 6
Sascha Zelzer
s.zelzer at dkfz-heidelberg.de
Fri Sep 9 08:26:56 UTC 2011
Hi,
On 09/09/2011 01:18 AM, Anthony Dass wrote:
> Hello Sascha and Ben,
>
> Thank you very much for the quick and detailed answers.
>
> In addition, when we tried to validate the message using the
> online validations - http://www.xmlvalidation.com we also see the type
> attribute :type="xsd:string" is not a valid XML attribute string and
> also it looks that the namespace name is missing here. The string
> should be either type="xsd:string" if no namespace is used(without
> leading colon), or this xmlns:type="xsd:string" if xmlns is a
> namespace name.
>
> Since the method addMethodAttribute of QtSoapmessage is setting this,
> is that we need to change in the QtSoap module? or any other options?
> please advice.
I had a look at the messages yesterday and could actually not reproduce
your problem with the missing namespace (the messages between the CTK
host and CTK app looked correct). I also looked at the QtSoap code and
could not spot a problem at first sight.
Best,
Sascha
>
> thank you very much!
> /Anthony
>
>
> On Thu, Sep 8, 2011 at 6:47 AM, <ctk-developers-request at commontk.org
> <mailto:ctk-developers-request at commontk.org>> wrote:
>
> Send Ctk-developers mailing list submissions to
> ctk-developers at commontk.org <mailto:ctk-developers at commontk.org>
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
> or, via email, send a message with subject or body 'help' to
> ctk-developers-request at commontk.org
> <mailto:ctk-developers-request at commontk.org>
>
> You can reach the person managing the list at
> ctk-developers-owner at commontk.org
> <mailto:ctk-developers-owner at commontk.org>
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Ctk-developers digest..."
>
>
> Today's Topics:
>
> 1. Re: CTK based Hosted App fails when launched from Non-CTK
> Host (Benoit Bleuze)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 8 Sep 2011 12:46:30 +0200 (CEST)
> From: Benoit Bleuze <benoit.bleuze at inria.fr
> <mailto:benoit.bleuze at inria.fr>>
> Subject: Re: [Ctk-developers] CTK based Hosted App fails when launched
> from Non-CTK Host
> To: Sascha Zelzer <s.zelzer at dkfz-heidelberg.de
> <mailto:s.zelzer at dkfz-heidelberg.de>>
> Cc: Anthony Dass <antdass at gmail.com <mailto:antdass at gmail.com>>,
> ctk-developers at commontk.org <mailto:ctk-developers at commontk.org>
> Message-ID:
> <610925954.61455.1315478790178.JavaMail.root at zmbs4.inria.fr
> <mailto:610925954.61455.1315478790178.JavaMail.root at zmbs4.inria.fr>>
> Content-Type: text/plain; charset="utf-8"
>
> Hi Anthony, Sascha gave you all the technical answers we had in
> stock so far, but I can add a bit of context here, it may help. As
> Sascha said, the state/newState switch is due to XIP not following
> the specifications. And your change is valid. We started with
> "state", but the only other host we could use being XIP, we
> changed it. You are welcome to revert it. I think we notified
> Larry (Lawrence Tarbox) of that problem during the last hackfest
> in Chapel Hill. Eventually XIP will change its API there (or so I
> hope). Replacing the WSDL files doesn't change anything since we
> don't use them to generate the interface, all the messages are
> hard coded soap messages constructed from C++. Now I know nothing
> of the WCF unfortunately, so I can't tell you whether the "type:"
> keyword is misinterpreted or whatever. Sascha's suggestion of
> changing the casing sounds promising to me. I remember we used
> capitals in some actions , following the WSDL actually, and had to
> change it afterwards for
> specifications and XIP compatibility. I remember Larry telling us
> the WSDL provided in the specs was not up to date, and thus we
> provide an updated (or at least it was valid last february) set of
> WSDL (and siblings) files there:
> http://www.commontk.org/index.php/File:Wsdl_ft.zip Note that they
> also have actions starting with capitals. I have a faint memory of
> Larry giving us an explanation as to why they were upper cased,
> but I can't remember the reason, my guess is that the .Net
> implementation forced them to do so. And it is very well possible
> that the XIP java implementation accepts both casing and the .NET
> or WCF are stricter, so I guess you'll have to choose between the
> proposed WSDL and the specifications... Keep us posted of your
> progress. Ben ----- Original Message -----
> > Hi Anthony,
> > Welcome to the ctk-developers list.
> > > We've tried adapting one of our DICOM application into a CTK Based
> > > Hosted App. It works well when tried with the ctkhost - we could
> > > launch the app, load the DICOM data and get through different
> states
> > > as well.
> > So far, good news.
> > > However when tried launching the same app with different non-ctk
> > > based
> > > host, it launches our app but fails to load any data. This non-ctk
> > > based host seems to be written using the WCF as per
> specification in
> > > DICOM 118.
> > Please note that we could only test our implementation against
> the XIP
> > host (written in Java) so far. So the problems you are experiencing
> > might very well relate to our implementation.
> > > On investigating, we noticed that the initial ?IDLE? message
> sent by
> > > the App upon launch is not getting processed by the Non-CTK based
> > > host.
> > > When traced the SOAP communication, we found out that the messages
> > > from the plug-in are getting to the host, but then they are not
> > > processed by WCF because of some WSDL contacts mismatch. Thus the
> > > host
> > > does not receive any messages. Here?s the log message:
> > > < Message > The message with Action '' cannot be processed at the
> > > receiver, due to a ContractFilter mismatch at the
> > > EndpointDispatcher.
> > > This may be because of either a contract mismatch (mismatched
> > > Actions
> > > between sender and receiver) or a binding/security mismatch
> between
> > > the sender and the receiver. Check that sender and receiver
> have the
> > > same contract and the same binding (including security
> requirements,
> > > e.g. Message, Transport, None). </ Message >
> > > When debugging the WCF processing of the message we get the
> > > deserialization error:
> > > "The ':' character, hexadecimal value 0x3A, cannot be included
> in a
> > > name. Line 4, position 11."
> > > Here?s the SOAP message braced between the CTK-plugin and Non-CTK
> > > based Host:
> > > < SOAP-ENV:Envelope xmlns:SOAP-ENV = "
> > > http://schemas.xmlsoap.org/soap/envelope/ "
> SOAP-ENV:encodingStyle =
> > > "
> > > http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsd = "
> > > http://www.w3.org/1999/XMLSchema " >
> > > < SOAP-ENV:Body xmlns:SOAP-ENV = "
> > > http://schemas.xmlsoap.org/soap/envelope/ " >
> > > < notifyStateChanged xmlns = " http://wg23.dicom.nema.org/ " >
> > > < newState :type = " xsd:string " > IDLE </ newState >
> > > </ notifyStateChanged >
> > > </ SOAP-ENV:Body >
> > > </ SOAP-ENV:Envelope >
> > > We can see the ?:type? item in the newState element that?s causing
> > > the
> > > error in WCF. Also, per DICOM supplement 118 it should be called
> > > ?state?, not ?newState?.
> > Looking at the debug output from the CTK hosted app, the xml
> namespace
> > for the "type" attribute in the "newState" tag is intact. So I am
> > wondering it the output above has already been modified somehow
> by the
> > WCF host or if it is the original message from the CTK hosted app.
> > > Here?s the example of the SOAP message generated by Non-CTK based
> > > HostedApp: < s:Envelope xmlns:s = "
> > > http://schemas.xmlsoap.org/soap/envelope/ " > < s:Body > <
> > > NotifyStateChanged xmlns = "
> > > http://dicom.nema.org/PS3.19/HostService-20100825 " > < state
> > IDLE
> > > </ state > </ NotifyStateChanged > </ s:Body > </ s:Envelope >
> > > Next, we tried changing ?newState? to ?state? but again it fails
> > > when
> > > tried with the non-ctk based host and producing the same error.
> > I think it is still either related to the ":type" attribute or the
> > error described below. Concerning state/newState, please also see my
> > comments below.
> > > ...
> > > 2011-09-06 17:17:59,609 <faultstring xsi:type="xsd:string"
> > > xmlns:xsi="
> > > http://www.w3.org/1999/XMLSchema-instance ">The message with
> Action
> > > ''
> > > cannot be processed at the receiver, due to a ContractFilter
> > > mismatch
> > > at the EndpointDispatcher. This may be because of either a
> contract
> > > mismatch (mismatched Actions between sender and receiver) or a
> > > binding/security mismatch between the sender and the receiver.
> Check
> > > that sender and receiver have the same contract and the same
> binding
> > > (including security requirements, e.g. Message, Transport,
> > > None).</faultstring> ...
> > This actually hints at a problem concerning the action names.
> Looking
> > at the WSDL, the operation names start with upper case latters,
> where
> > we are using lower case (unfortunately, the text in the DICOM
> Part 19
> > specs refer to the method names with starting lower case letters).
> > > I even tried replacing the WSDL files with the one provided by
> > > Non-CTK
> > > based host, but still it doesn?t seem to work.
> > Yes, that does not change the actual behavior.
> > > When looked at the code, I noticed a comment in the CTK code
> (below
> > > methods) ?spec would be "state", java has "newState" FIX
> > > JAVA/STANDARD?. Could this be something we need to look for? If so
> > > may
> > > I know what would be the change in Java side.
> > Unfortunately, again, the text in the specs refer to "newState" for
> > the argument name and this is what the XIP host is using. So we used
> > it too for testing with XIP. But I agree that the WSDL should be the
> > definite guide and we should use "state" when not testing with XIP.
> > My advice would be to keep your modification ("newState" -> "state")
> > and also try to modify the action (method) names in
> > ctkDicomAppService.cpp (lines 40 - 60) to use upper case for the
> first
> > letter.
> > I would be happy if you could keep us posted about your progress.
> > Thanks,
> > Sascha
> > _______________________________________________
> > Ctk-developers mailing list
> > Ctk-developers at commontk.org <mailto:Ctk-developers at commontk.org>
> > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> <http://public.kitware.com/pipermail/ctk-developers/attachments/20110908/e75bdbbd/attachment.htm>
>
> ------------------------------
>
> _______________________________________________
> Ctk-developers mailing list
> Ctk-developers at commontk.org <mailto:Ctk-developers at commontk.org>
> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>
>
> End of Ctk-developers Digest, Vol 26, Issue 6
> *********************************************
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20110909/1cd1a009/attachment.htm>
More information about the Ctk-developers
mailing list