Hi Frank,

Thanks for that. How did you do it. I looked at the JIRA and I could see how
you change the category like that? Is it a committer thing?

Regards

Simon

On 7/21/06, Frank Budinsky <[EMAIL PROTECTED]> wrote:

Simon,

I reassigned TUSCANY-505 to the SCA component for further investigation.

Frank.

"Simon Laws" <[EMAIL PROTECTED]> wrote on 07/21/2006 07:44:35 AM:

> I've got to that age where I've started replying to my own mails. Oh
dear.
>
> Looking back at the JIRAs raised when doing the interop testing a couple
of
> weeks ago I may have missed a detail. When trying to get round JIRA505,
> which describes the problem with having xsi:type in the wrapper element,
I
> also inadvertently made a temporary change to stop C++ producing
duplicate
> namespace definitions. This may be a problem in its own right. I have
raised
> a separate JIRA (http://issues.apache.org/jira/browse/TUSCANY-570).
>
> Also, with JIRA505 itself, comments from the SDO team indicate that
SCA/Java
> may be doing something slightly strange with the way it loads types in
at
> configuration time ready for when SOAP messages are received. How do I
> reclassify this bug to associate it with Java/SCA also so that it
doesn't
> fall between the SCA and SDO teams? I realize that this stuff is a
little in
> flux at the moment due to the changes in head but we still need to make
> interop work when head settles down again.
>
> Regards
>
> Simon
>
> On 6/29/06, Simon Laws <[EMAIL PROTECTED]> wrote:
> >
> > Ok, I had some success over the last couple of days in getting C++ SCA
to
> > talk to Java SCA. The executive summary is that we got a message from
C++
> > client to C++ SCA service on to a Java SCA service and all the way
back
> > again. Yippeee.
> >
> > The scenario is based on the BigBank for C++ sample that Ed has been
> > working on. Here is what we had to do to make it work...
> >
> > The sample is as follows.
> >
> > C++ Client -->  C++ AccountService/AccountDataService  --> Java
> > StockQuoteService
> >
> > The intention is to add a PHP client in the future but that is not
there
> > yet. In theory we could also add the Java BB client to the front end
but the
> > java interface to BB was more complex that we wanted to tackle in the
first
> > instance so that is something else that could be done if we choose.
> >
> > We chose to make a new Java StockQuoteService as the interface is so
> > simple. We took the external WSDL and implemented that, i.e. the
"float
> > getQuote (String)" interface.
> >
> > The current Java Big Bank sample does provide a local Java
> > StockQuoteService implementation but it seems that  this has a
slightly
> > different interface, i.e. it implements getQuotes which takes and
returns
> > arrays. Anyhow we made a new external service which is in itself an
SCA
> > module with a java implementation and exposing a service with the
getQuote
> > interface. We also made a java client to test this with. There are no
> > patches for these yet as we are not sure where to put them. My vote is
to
> > put them in the java/testing/interop dir but am open to suggestions.
> >
> > The C++ BB sample is expecting an external service with the getQuote
> > interface so we changed the sca.module file to point to the new Java
SCA
> > StockQuoteService running in the Java M1 configured tomcat container.
> >
> > There were a few problems along the way to getting a complete end to
end
> > run.
> >
> > 1/ The use of doc/lit/wrapped caused confusion in the first instance
and
> > combined with the outstanding problem that C++/SDO cannot handle root
> > elements with only simple types in (
> > http://issues.apache.org/jira/browse/TUSCANY-488) there was some
debate
> > about what the WSDL for the account service should look like. This is
an
> > except of what we ended up with for the type descriptions...
> >
> >   <xsd:complexType name="GetAccountReportType">
> >     <xsd:sequence>
> >         <xsd:element name="customerID">
> >           <xsd:complexType>
> >             <xsd:sequence>
> >               <xsd:element name="customerID" type="xsd:string" />
> >             </xsd:sequence>
> >           </xsd:complexType>
> >         </xsd:element>
> >     </xsd:sequence>
> >   </xsd:complexType>
> >
> >   <xsd:element name="getAccountReport"
type="tns:GetAccountReportType"/>
> >
> >
> >   <xsd:complexType name="AccountReport">
> >    <xsd:sequence>
> >     <xsd:element name="checking" type="tns:CheckingAccount"
> >       maxOccurs="unbounded"/>
> >     <xsd:element name="savings" type="tns:SavingsAccount"
> >       maxOccurs="unbounded"/>
> >     <xsd:element name="stocks" type="tns:StockAccount"
> >       maxOccurs="unbounded"/>
> >    </xsd:sequence>
> >    </xsd:complexType>
> >
> >
> >    <xsd:element name="getAccountReportResponse">
> >      <xsd:complexType>
> >        <xsd:sequence>
> >          <xsd:element name="accountReport" type="tns:AccountReport"/>
> >        </xsd:sequence>
> >      </xsd:complexType>
> >    </xsd:element>
> >
> > The odd extra level of CustomerId came from the confusion around 488
but I
> > believe could be removed
(http://issues.apache.org/jira/browse/TUSCANY-507)
> > but the client has been coded this way currently so we didn't try and
fix
> > it.
> >
> > 2/  Another thing to note about the WSDL is the use of anonymous
types. My
> > preference is not to do this by default but of this doesn't work at
present
> > ( http://issues.apache.org/jira/browse/TUSCANY-500 ).
> >
> > 3/ Changed GetQuote to getQuote in
> > StockQuoteService_StockQuoteExternal_Proxy.cpp and associated
> > StockQuoteExternal files (
> > http://issues.apache.org/jira/browse/TUSCANY-508)
> >
> > 4/ Axis2Client.cpp ln 282 LOGINFO_2 causes an edna in the case  where
the
> > server  being called  returns an error.  I changed this to a LOGINFO,
i.e.
> > no var args, and carried on. I didn't go back and try it with
successful
> > responses. (http://issues.apache.org/jira/browse/TUSCANY-509)
> >
> > 5/ StockQuoteExternalService.h /StockQuoteServiceImpl.cpp has
incorrect
> > return type for getQuote   const char * should be float. (
> > http://issues.apache.org/jira/browse/TUSCANY-510)
> >
> > 6/ The C++ SDO implementation produces XML with an xsi:type attribute
on
> > the root element. The java container doesn't like this (
> > http://issues.apache.org/jira/browse/TUSCANY-505). We changed the C++
> > implementation to take these out temporarily to see if we could
progress.
> >
> > SDOXMLWriter.cpp ln722 ish replace
> >
> >                 rc = xmlTextWriterWriteAttributeNS(writer,
> >                     SDOXMLString("xsi"), SDOXMLString("type"),
> >                     NULL,
> >                     /*SDOXMLString("
> > http://www.w3.org/2001/XMLSchema-instance";),*/
> >                     SDOXMLString(dataObject->getType().getName()));
> >  with
> >
> >                 if (!isRoot)
> >                 {
> >                 rc = xmlTextWriterWriteAttributeNS(writer,
> >                     SDOXMLString("xsi"), SDOXMLString("type"),
> >                     NULL,
> >                     /*SDOXMLString("
> > http://www.w3.org/2001/XMLSchema-instance";),*/
> >                     SDOXMLString(dataObject->getType().getName()));
> >                 }
> >
> > There is no JIRA here as this is just a temporary change in my code
base
> > to get things moving.
> >
> > 7/ The C++ SDO implementation produces XML with no namespace prefixs.
The
> > Java implementation requires these (http://issues.apache.
> org/jira/browse/TUSCANY-491
> > ).
> >
> > We fixed this temporarily by doing the following.
> >
> > SDOWriter.cpp ln 680 ish (I say ish as I've added couts which have
messed
> > up the line numbers
> >
> >    Change the 1st NULL to a sensible prefix value, e.g.
> >                     rc = xmlTextWriterStartElementNS(writer, /*NULL*/
> > (const unsigned char*)"tns", elementName, elementURI);
> >
> > Again no specific JIRA as more investigation needs to be done on 491
> >
> > 8/ At this point we were able to get message from C++ client to C++
> > service to Java server back to C++ Server but it failed on the last
hop with
> > a nasty memory error down inside libxml2.
> >
> > A bit of careful commenting out of code narrowed down the cause, in
this
> > case, to here
> >
> > Axis2Client.cpp ln 149
> >
> > /*
> >     if (svc_client)
> >     {
> >         AXIS2_SVC_CLIENT_FREE(svc_client, env);
> >         svc_client = NULL;
> >     }
> > */
> >
> > Its not clear what is going on or whether this is the actual cause but
we
> > are able to get an end to end run by commenting this line out. Needs
further
> > detailed investigation to determine if this is causing memory
corruption of
> > something else is by, for example, freeing something twice. (
> > http://issues.apache.org/jira/browse/TUSCANY-511)
> >
> > So all in all a bit of a journey but it gives us confidence that it
will
> > work.
> >
> > The Big Bank sample of course only provides a test with very simple
> > messages. Andy is, I be live, going to take a look at passing all of
the
> > interop XML docs back and forth across the web service interface in a
> > separate test.
> >
> > Regards
> >
> > Simon
> >
> >
> >
> >


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to