Dear all,
I have the following java class structure:
public abstract class RequestMessage <MBC extends MessageBodyCore> extends 
Message<RequestMessageHeader, RequestMessageBody<MBC>> {     public 
RequestMessage() {               this.setMessageHeader(new 
RequestMessageHeader());              this.setMessageBody(new 
RequestMessageBody<MBC>());     }}
public class AuthenticateUserReqMsg extends 
RequestMessage<AuthenticateUserReqMsgCore> {        public 
AuthenticateUserReqMsg() {               super();        }}
public class AuthenticateUserReqMsgCore implements MessageBodyCore {    
protected UserCredential userCredential;        // getters and setters}
public abstract class Message <MH extends MessageHeader, MB extends 
MessageBody> {      MH messageHeader;       MB messageBody;       // getters 
and setters}
Required classes as following:
public abstract class MessageHeader <MHC extends MessageHeaderCore> {   MHC 
headerCore;       //getter and setter}
public abstract class MessageBody <MBC extends MessageBodyCore>{        MBC 
bodyCore;       //getter and setter}
public interface MessageHeaderCore {}public interface MessageBodyCore {}
public class RequestMessageHeader extends 
MessageHeader<RequestMessageHeaderCore> {}
public class RequestMessageHeaderCore implements MessageHeaderCore {            
protected String userId;        protected int rqMode;           protected 
String funcId;               ...       ...// getters and setters}
public class UserCredential implements Serializable{    private String 
loginName;       private String password;       //getters and setters}
I tried the following binding but got below error:
<binding>       <mapping name="UsrAuthentRq" class="com.RequestMessage"         
                 extends="com.Message" ordered="false"> </mapping>              
        <mapping abstract="true" type-name="UserCredential" 
class="com.UserCredential">         <value name="loginName" field="loginName" 
/>            <value name="password" field="password" />      </mapping>        
      <mapping abstract="true" type-name="AuthenticateUserReqMsgCore"  
class="com.AuthenticateUserReqMsgCore">                                
<structure name="UserCredential" field="userCredential" map-as="UserCredential" 
ordered="false"/>                       </mapping>      
        <mapping abstract="true" class="com.Message" >       <structure 
field="messageHeader" map-as="RMH" ordered="false" />              <structure 
field="messageBody"   map-as="RMB" ordered="false"/>      </mapping>            
  <mapping abstract="true" type-name="RMB" 
class="com.ejada.commons.dao.messages.broker.RequestMessageBody"                
               extends="com.ejada.commons.dao.messages.MessageHeader" 
ordered="false">                                 </mapping>              
<mapping name="MessageHeader" class="com.MessageHeader">                        
<structure name="MsgRqHdr" field="headerCore" map-as="RequestMessageHeaderCore" 
ordered="false"/>       </mapping>              <mapping abstract="true" 
type-name="RMH" class="com.RequestMessageHeader"                               
extends="com.ejada.MessageBody" ordered="false">                                
        </mapping>              <mapping name="MessageBody" 
class="com.MessageBody">                    <structure name="Body" 
field="bodyCore" map-as="AuthenticateUserReqMsgCore" ordered="false" />  
</mapping>                      <mapping abstract="true" 
type-name="RequestMessageHeaderCore"   class="com.RequestMessageHeaderCore">    
                       <value name="FuncId" field="funcId" />          <value 
name="RqMode" field="rqMode" />          <value name="UsrId" field="userId" />  
 </mapping>      </binding>
I got the following error:
Error: factory-method needed for abstract type 'com.RequestMessage'; on mapping 
element at (line 4, col 70, in authenticateUser-binding.xml)Warning: Only 
concrete mappings should be 'leaf' mappings for extensions; you should either 
remove 'extends' attribute or add concrete extension mappings for this abstract 
mapping; on mapping element at (line 22, col 75, in 
authenticateUser-binding.xml)Error: factory-method needed for abstract type 
'com.MessageHeader'; on mapping element at (line 25, col 85, in 
authenticateUser-binding.xml)Warning: Only concrete mappings should be 'leaf' 
mappings for extensions; you should either remove 'extends' attribute or add 
concrete extension mappings for this abstract mapping; on mapping element at 
(line 30, col 73, in authenticateUser-binding.xml)Error: factory-method needed 
for abstract type 'com.MessageBody'; on mapping element at (line 34, col 81, in 
authenticateUser-binding.xml)
I appreciate any support, I cant locate any  document related to jibx with java 
generics which I think is the main issue.
Regards..
M Osman
                                          
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to