You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Raphael Dr?ner (JIRA)" <ax...@ws.apache.org> on 2004/12/15 11:14:04 UTC

[jira] Created: (AXIS-1727) wrong restriction in type mapping deployment

wrong restriction in type mapping deployment
--------------------------------------------

         Key: AXIS-1727
         URL: http://nagoya.apache.org/jira/browse/AXIS-1727
     Project: Axis
        Type: Bug
  Components: Deployment / Registries  
    Versions: 1.2RC2    
 Environment: all
    Reporter: Raphael Drüner
    Priority: Critical



The fix of bug AXIS-1271 causes the following bug:

It is not possible to deploy more than one type mapping for a specific QName. The JAX-RPC 1.1 Spec (15.3) implicitly defines the following elements as key for a (de)serializer:
- The encoding URI
- The XML QName
- The full java class name.

The WSDDDeployment axis class only uses the qname (and since 1.2 RC2 the encoding URI too) as key. The flexibility of having more than one java class that maps to a single QName (e.g. xsd:string) is necessary to integrate legacy systems.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Updated: (AXIS-1727) wrong restriction in type mapping deployment

Posted by "Raphael Drüner (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS-1727?page=history ]

Raphael Drüner updated AXIS-1727:
---------------------------------

    Attachment: testcase.war

Added an testcase to demonstrate the problem.

The posted WAR is mainly axis standard stuff except for the WEB-INF/server-config.wsdd and the files in WEB-INF/classes/testcase.
Put this WAR file into your tomcat webapp dir (tested with Tomcat 5.0.28 and Sun JDK 1.4.1_02 on Windows XP) and post the following SOAP Request to http://localhost:8080/testcase/services/calc

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www
.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
 <addWrapped>
  <in0>
   <int1>1</int1>
   <int2>5</int2>
   <int3>5</int3>
   <int4>3</int4>
  </in0>
 </addWrapped>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

This will cause a

java.lang.NullPointerException
        at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:292)
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:148)
...

If you replace the JARs in WEB-INF/lib (which are axis 1.2 RC3) with their axis 1.1 counterparts, the service will work as expected and returns:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w
3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
 <soapenv:Body>
 <addWrappedResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
 <addWrappedReturn xsi:type="xsd:int" >14</addWrappedReturn>
 </addWrappedResponse>
 </soapenv:Body>
</soapenv:Envelope>

BTW: If you move the two type mappings in server-config.wsdd to the <service> element, the service will work too (because the bug only affects global type mappings).




> wrong restriction in type mapping deployment
> --------------------------------------------
>
>          Key: AXIS-1727
>          URL: http://issues.apache.org/jira/browse/AXIS-1727
>      Project: Axis
>         Type: Bug
>   Components: Deployment / Registries
>     Versions: 1.2RC2
>  Environment: all
>     Reporter: Raphael Drüner
>     Priority: Critical
>  Attachments: testcase.war
>
> The fix of bug AXIS-1271 causes the following bug:
> It is not possible to deploy more than one type mapping for a specific QName. The JAX-RPC 1.1 Spec (15.3) implicitly defines the following elements as key for a (de)serializer:
> - The encoding URI
> - The XML QName
> - The full java class name.
> The WSDDDeployment axis class only uses the qname (and since 1.2 RC2 the encoding URI too) as key. The flexibility of having more than one java class that maps to a single QName (e.g. xsd:string) is necessary to integrate legacy systems.

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira