[jbossws-issues] [JBoss JIRA] Commented: (JBWS-1702) JAXWS type inheritance

Marco Strauch (JIRA) jira-events at lists.jboss.org
Wed Oct 3 09:04:03 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBWS-1702?page=comments#action_12380139 ] 
            
Marco Strauch commented on JBWS-1702:
-------------------------------------

I have a solution for the problem.
Now everything works. I just had to namespace qualify the PO_S_Class and PO_SC_Repository like this:

@XmlType(name="PO_SC_Repository", namespace="http://examples.ws/types")
public class PO_SC_Repository extends PO_S_Class

@XmlType(name="PO_S_Class", namespace="http://examples.ws/types") 
public class PO_S_Class

The target namespace of the web result has to be the same as the possible return types.

Now the SOAP result looks like:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <ns3:getPOSClassResponse xmlns:ns2="http://examples.ws/types" xmlns:ns3="http://examples.ws/">
         <ns2:result xsi:type="ns2:PO_SC_Repository" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <name>Test</name>
            <shortName>TST</shortName>
            <intValue>10</intValue>
            <scAttr>strAttr</scAttr>
         </ns2:result>
      </ns3:getPOSClassResponse>
   </env:Body>
</env:Envelope>

Hope this will help you.


Kind regards 

Marco.

> JAXWS type inheritance
> ----------------------
>
>                 Key: JBWS-1702
>                 URL: http://jira.jboss.com/jira/browse/JBWS-1702
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jbossws-jaxws
>            Reporter: Thomas Diesler
>         Assigned To: Heiko Braun
>             Fix For: jbossws-2.0.1
>
>         Attachments: WSSampleApp.zip
>
>
> I have a problem with the new JBossWS-1.2.1.GA in JBoss 4.2.0.GA and inheritance.
> To describe this problem first I have to describe my code structure:
> For an example I have three classes (ClassA, ClassB and ClassC). ClassC inherits of ClassB and ClassB inherits of ClassA (ClassA --> ClassB --> ClassC). Now I have a webservice method that returns ClassB. In this method an instance of ClassC is being created and returned. This was not a problem in the former JBossWS version (and also in the other J2EE 4 styled webservices) but now in JBossWS 1.2 I only get returned an object of ClassB but I supposed to get an obejct of ClassC.
> Code:
> public class ClassA {
>   private String propA;
>   // here setter and getter for propA
> ......
> }
> public class ClassB extends ClassA {
>   private String propB;
>  // here setter and getter for propB
> ......
> }
> public class ClassC extends ClassC {
>   private String propC;
>  // here setter and getter for propC
> ......
> }
> @WebService
> @SOAPBinding( style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SO
> APBinding.ParameterStyle.WRAPPED )
> public class MyWebService {
>  
>  @WebMethod()
>  public ClassB getClassB() {
>    ClassC classC = new ClassC();
>    classC.setPropA("propA");
>    return classC;
>  }
>   /**
>    * --> this method is only used to publish ClassC otherwise it is not known
>    * in this webservice
>    */
>   @WebMethod()
>   public ClassC getClassC() {
>    ClassC classC = new ClassC();
>    classC.setPropA("propA");
>    return classC;
>   }
>   
> }
> }	
> Now I call getClassB() and the result that I got is an object of ClassB and not of ClassC.
> What can I do to get an object of ClassC. I also looked at the returned SOAP message and there you can see that only informations about the ClassB instance are submitted. In JBoss 4.0.5 (JBossWS1.0.3) the SOAP message contains the type of the returned object and all data are being submitted correctly.
> I also tried the SOAP parameter style BARE but nothing changed. And whenI use RPC/Literal then I get an error in the .NET Client that an instance of ClassB was expected but got an instance of ClassC. I also tried it with a JAVA client but there was the same occurance.

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

        



More information about the jbossws-issues mailing list