geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Schmidt (JIRA)" <...@geronimo.apache.org>
Subject [jira] Created: (GERONIMO-975) Problems with SOAPArrayType
Date Sun, 04 Sep 2005 01:39:31 GMT
Problems with SOAPArrayType
---------------------------

         Key: GERONIMO-975
         URL: http://issues.apache.org/jira/browse/GERONIMO-975
     Project: Geronimo
        Type: Bug
  Components: webservices  
    Versions: 1.0-M5    
    Reporter: Stefan Schmidt


I am having a number of problems caused by array handling in SOAP. 

Using sun's jwsdp I generated a simple JAX-RPC Web service which is supposed to return an
array of Strings. I used the Java2WSDL approach for a JSE - meaning I generated heavyweight
mappings and a wsdl file for my simple WS and deployed it to G. While the WS works in general
it shows the following warning:

09:21:29,737 WARN  [HeavyweightTypeInfoBuilder] No soap array info for schematype: T=StringArray@http://arrays/java/lang

This is due to a non-spec conformant wsdl array mapping generated by the jwsdp:
	<types>
		<schema targetNamespace="http://arrays/java/lang"
			xmlns:tns="http://arrays/java/lang"
			xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
			xmlns="http://www.w3.org/2001/XMLSchema">
			<complexType name="StringArray">
				<sequence>
					<element name="value" type="string" nillable="true"
						minOccurs="0" maxOccurs="unbounded" />
				</sequence>
			</complexType>
		</schema>
	</types>

This works for this web service which returns the following response (apart from the warning):
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <getStringArrayResponse xmlns="http://stsmedia.wss4j.test">
   <result xsi:type="xsd:string" xmlns="">String 1</result>
   <result xsi:type="xsd:string" xmlns="">String 2</result>
   <result xsi:type="xsd:string" xmlns="">String 3</result>
   <result xsi:type="xsd:string" xmlns="">String 4</result>
  </getStringArrayResponse>
 </soapenv:Body>
</soapenv:Envelope>

However, when I switch on  WSS4J security the response looks quite different (SOAP body only):
 <soapenv:Body
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="id-1197222">
  <getStringArrayResponse xmlns="http://stsmedia.wss4j.test">
   <result xmlns="" xmlns:ns1="http://arrays/java/lang"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
soapenc:arrayType="ns1:StringArray[4]" xsi:type="soapenc:Array">
    <result xsi:type="xsd:string">String 1</result>
    <result xsi:type="xsd:string">String 2</result>
    <result xsi:type="xsd:string">String 3</result>
    <result xsi:type="xsd:string">String 4</result>
   </result>
  </getStringArrayResponse>
 </soapenv:Body>

So it seems that WSS4J has a different Array serialization methods. I have the feeling that
WSS4J actually does it right by adding the correct array encoding. 

Due to these different array serialization approaches it is currently not possible to sign
the SOAP message with WSS4J since G seems to return arrays which lack the appropriate array
encoding :-( .

Regards,

Stefan Schmidt



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message