[ http://jira.codehaus.org/browse/XFIRE-593?page=all ]
Tomasz Sztelak closed XFIRE-593.
--------------------------------
Resolution: Won't Fix
> Problems connecting with Spring to a non-XFire Web Service
> ----------------------------------------------------------
>
> Key: XFIRE-593
> URL: http://jira.codehaus.org/browse/XFIRE-593
> Project: XFire
> Issue Type: Improvement
> Components: Spring
> Affects Versions: 1.1.2
> Environment: XFire 1.1.2; BEA Web Logic Web Service implementation.
> XFire is the client.
> Reporter: Andres Bernasconi
> Assigned To: Dan Diephouse
>
> I am trying to access a WebLogic service with an XFire client. The WSDL of
> the service looks something like this:
> ...
> <xsd:element name="getDeviceVendorModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element type="xsd:string" name="string"></xsd:element>
> <xsd:element type="xsd:string" name="string0"></xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> ...
> I am trying to call the getDeviceVendorModel service, which receives two
> strings (should be named string and string0).
> But the problem is that XFire is sending the strings as in0 and in1 ? Am I
> doing something wrong? I would have thought that XFire would use the WSDL to
> generate the XML names.
> The error the BEA service throws is:
> org.codehaus.xfire.XFireRuntimeException: Could not invoke service..
> Nested exception is org.codehaus.xfire.fault.XFireFault: Exception during
> processing: javax.xml.soap.SOAPException:
> Found SOAPElement [<in1>8860</in1>]. But was not able to find a Part that is
> registered with this Message which corresponds to this SOAPElement. The name
> of the element should be one of these[string,string0] (see Fault Detail for
> stacktrace)
> Looking into this I found out the following:
> Lines 127 and 128 of AegisBindingProvider.java (xfire 1.1.2) say:
> if (type.isComplex() && !type.isAbstract())
> name = type.getSchemaType ();
> When type is StringType (complex = false; abstract = true) it never executes
> the getSchemaType() method. Still, if I print the schemaType of the
> StringType it contains the correct name (in my particular case "string").
> Since this returns null line 163 of DefaultServiceConfiguration is executed:
> return new
> QName(endpoint.getServiceInfo().getPortType().getNamespaceURI(),
> createName(method, paramNumber,
> op.getInputMessage().size(), doc, "in"));
> where it forces the "in" name of the parameter.
> If we change those lines to return type.getSchemaType() when the parameter is
> a TypeString then everything works fine. Dunno if this is ok or not.
> Also, in the user-list Dan wrote:
> "[...]The XFireClientFactoryBean really only works with if
> you wrote your service in XFire[...]"
> Why is this limitation? Will it be overcome in the future? Do you know what
> release? I need to decide if still going with XFire or not.
> Regards
> Andres Bernasconi
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email