Zend Framework

Java cannot handle <part name="getStaticStringReturn" type="xsd:string" />

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.7.0
  • Fix Version/s: 1.8.0
  • Component/s: Zend_Soap_Wsdl
  • Labels:
    None

Description

I created a soap service with Zend_Soap_Server and Zend_Soap_AutoDiscover to provide my functionality to non-php-applications. We couldn´t get it working for Java so we searched for the problem and created the same service in java and created a wsdl definition from this java service. We compared both wsdl definitions and changed all differences in wsdl definition created by Zend_Soap_AutoDiscover until we found the problem.

Java seems to cannot handle this:

<part name="getStaticStringReturn" type="xsd:string" />

So we changed it to:
<part name="return" type="xsd:string" />

After we´ve changed it we could consume my soap service without any problems. Don´t know why java has problems with "getStaticStringReturn". We found many different name-attribute values and no definition that it must be "return". We also tested the modified wsdl definition with Zend_Soap_Client and it works fine.

Activity

Hide
Jan Pieper added a comment -

Added diff to solve problem.

Show
Jan Pieper added a comment - Added diff to solve problem.
Hide
Benjamin Eberlei added a comment -

What do you mean by "java seems to cannot handle this". Which particular WSDL to Java Generators did you test?

Show
Benjamin Eberlei added a comment - What do you mean by "java seems to cannot handle this". Which particular WSDL to Java Generators did you test?
Hide
Jan Pieper added a comment -

We created java classes with wsimport (https://jax-ws.dev.java.net/jax-ws-ea3/docs/wsimport.html) from our wsdl definition what was created by Zend_Soap_AutoDiscover. After we could not consume data with the created java classes (we were clueless why at this moment), we setup the same soap service in java and created a wsdl definition by jax-ws. After that we compared both wsdl definitions and the main difference between these both definitions was the change I mentioned above.

Show
Jan Pieper added a comment - We created java classes with wsimport (https://jax-ws.dev.java.net/jax-ws-ea3/docs/wsimport.html) from our wsdl definition what was created by Zend_Soap_AutoDiscover. After we could not consume data with the created java classes (we were clueless why at this moment), we setup the same soap service in java and created a wsdl definition by jax-ws. After that we compared both wsdl definitions and the main difference between these both definitions was the change I mentioned above.
Hide
Benjamin Eberlei added a comment -

Implemented a new function setResponseMessageReturnNameCompability, which calls all return message parts "return" when set to true.

This "hackish" implementation is needed for backwards compability reasons, since we cannot prove that it still works for all other cases. This is madness sadly, but steems from the problematic AutoDiscover implementation in the first place.

Show
Benjamin Eberlei added a comment - Implemented a new function setResponseMessageReturnNameCompability, which calls all return message parts "return" when set to true. This "hackish" implementation is needed for backwards compability reasons, since we cannot prove that it still works for all other cases. This is madness sadly, but steems from the problematic AutoDiscover implementation in the first place.
Hide
Benjamin Eberlei added a comment -

Implemented a simpler bugfix that acknoweldges that "return" is the SOAP/WSDL Standard, whereas other naming schemas are to be handled as "bug".

Show
Benjamin Eberlei added a comment - Implemented a simpler bugfix that acknoweldges that "return" is the SOAP/WSDL Standard, whereas other naming schemas are to be handled as "bug".

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: