Hi Aurelijus,

This test for one or more <mapping> elements for modifiable classes was 
something I had in earlier versions of the code to catch cases where 
users were creating bindings which wouldn't work. With the use of 
abstract <mapping>s in Axis2 and such there are now cases where it's 
valid to define only abstract <mapping>s for non-modifiable classes. Can 
you try this using the current JiBX 1.2 beta 1 test release (in the 
"test" package on the download page 
https://sourceforge.net/project/showfiles.php?group_id=69358)?

  - Dennis

Dennis M. Sosnoski
SOA and Web Services in Java
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117



Aurelijus Janeliunas wrote:
> I want to remap some built-in structures to improve maintenance of 
> mine bindings collection. After some readings on JiBX tutorial and 
> forums i found options how to solve this task. So, i selected one 
> binding file from mine bindings collection and started refactoring it. 
> I created abstract mappings of most recurrent structures and added 
> them to separate files. New binding validation is successful, but 
> there are errors during compilation. JiBX maven plugin tells me:
>
> "Caused by: org.apache.maven.plugin.MojoExecutionException:
> *** Error during code generation for file 'C:\Works\My SVN 
> repositories\maven.skg.pl 
> <http://maven.skg.pl>\MDAS\src\mvn_projects\trunk\MDASTraderPortalDomain\src\main\resources\jibxBindings\IE507LT-binding.xml'
>  
> - please enter a bug report for this error in Jira if the problem is 
> not listed as fixed on the online status page ***
>
>     at org.jibx.maven.JibxMojo.compile(JibxMojo.java:225)
>     at org.jibx.maven.JibxMojo.execute(JibxMojo.java:174)
>     at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
>     at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
>     ... 16 more
> Caused by: org.jibx.runtime.JiBXException:
> *** Error during code generation for file 'C:\Works\My SVN 
> repositories\maven.skg.pl 
> <http://maven.skg.pl>\MDAS\src\mvn_projects\trunk\MDASTraderPortalDomain\src\main\resources\jibxBindings\IE507LT-binding.xml'
>  
> - please enter a bug report for this error in Jira if the problem is 
> not listed as fixed on the online status page ***
>
>     at org.jibx.binding.Compile.compile(Compile.java:307)
>     at org.jibx.maven.JibxMojo.compile(JibxMojo.java:222)
>     ... 19 more"
>
> I tried to compile this new binding directly:
>
> "Error running binding compiler
>
> *** Error during code generation for file 'IE507LT-binding.xml' - 
> please enter a bug report for this error in Jira if the problem is not 
> listed as fixed on the online status page ***
>
> org.jibx.runtime.JiBXException: One or more <mapping> elements for 
> modifiable classes must be defined in <binding>
>         at org.jibx.binding.Utility.loadBinding(Utility.java:317)
>         at org.jibx.binding.Utility.loadFileBinding(Utility.java:408)
>         at org.jibx.binding.Compile.compile(Compile.java:296)
>         at org.jibx.binding.Compile.main(Compile.java:385)"
>
> Any suggestion how to solve this problem? Any advise is acceptable.
>
> NOTE.
>
> ******************************
>
> 1. I'm using JiBX 1.1.6a and Java 1.6 (compilation target equals to 1.5).
>
> ******************************
>
> 2. Working IE507LT-binding.xml binding:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <binding name="IE507LT">
>
>   <mapping name="IE507LT" class="com.skg.icdts.base.model.MessageImpl">
>    
>        <structure name="Header" usage="required">
>        
>         <structure set-method="setDocument" get-method="getDocument" 
> type="com.skg.icdts.doc.exportdeclooext.model.ExportDeclOoExtImpl">
>        
>             <structure name="ExitCarrier" usage="required">
>                
>                 <structure set-method="setExitCarrier" 
> get-method="getExitCarrier"  type="com.skg.icdts.common.model.TraderImpl">
>
>                     <value name="tin" set-method="setTin" 
> get-method="getTin" usage="required" style="attribute"/>
>                     <value name="name" set-method="setName" 
> get-method="getName" usage="optional" style="attribute"/>
>                     <value name="streetAndNumber" 
> set-method="setStreetAndNumber" get-method="getStreetAndNumber" 
> usage="optional" style="attribute"/>
>                     <value name="postalCode" 
> set-method="setPostalCode" get-method="getPostalCode" usage="optional" 
> style="attribute"/>
>                     <value name="city" set-method="setCity" 
> get-method="getCity" usage="optional" style="attribute"/>
>                     <value name="countryCode" 
> set-method="setCountryCode" get-method="getCountryCode" 
> usage="optional" style="attribute"/>
>                     <value name="nadLNG" set-method="setNadLNG" 
> get-method="getNadLNG" usage="optional" style="attribute"/>
>                
>                 </structure>
>                    
>             </structure>
>        
>             <structure name="ActualExitCustomsOffice" usage="required">
>                
>                   <structure set-method="setOfficeOfExit" 
> get-method="getOfficeOfExit" 
> type="com.skg.icdts.common.model.CustomsOfficeImpl">
>                  
>                     <value name="referenceNumber" 
> set-method="setReferenceNumber" get-method="getReferenceNumber" 
> usage="required" style="attribute"/>
>                    
>                   </structure>
>                    
>             </structure>
>        
>             <value name="mrn" set-method="setMrn" get-method="getMrn" 
> usage="required" style="attribute"/>
>             <value name="arrivalAgreedLocationCode" 
> set-method="setArrivalAgreedLocationCode" 
> get-method="getArrivalAgreedLocationCode" usage="optional" 
> style="attribute"/>
>             <value name="arrivalAgreedLocationOfGoods" 
> set-method="setArrivalAgreedLocationOfGoods" 
> get-method="getArrivalAgreedLocationOfGoods" usage="optional" 
> style="attribute"/>
>             <value name="arrivalAgreedLocationOfGoodsLNG" 
> set-method="setArrivalAgreedLocationOfGoodsLNG" 
> get-method="getArrivalAgreedLocationOfGoodsLNG" usage="optional" 
> style="attribute"/>
>             <value name="customsSubPlace" 
> set-method="setCustomsSubPlace" get-method="getCustomsSubPlace" 
> usage="optional" style="attribute"/>
>             <value name="storingFlag" set-method="setStoringFlag" 
> get-method="getStoringFlag" usage="required" style="attribute"  
> serializer="eu.erp.mdas.jibx.hibernate.TrueFalselEnumHelper.TrueFalseToString"
>  
> deserializer="eu.erp.mdas.jibx.hibernate.TrueFalselEnumHelper.StringToTrueFalse"/>
>             <value name="authorisedStoringLocationOfGoods" 
> set-method="setAuthorisedStoringLocationOfGoods" 
> get-method="getAuthorisedStoringLocationOfGoods" usage="optional" 
> style="attribute"/>
>             <value name="dialogLanguageAtDestination" 
> set-method="setDialogLanguageAtDestination" 
> get-method="getDialogLanguageAtDestination" usage="optional" 
> style="attribute"/>
>             <value name="arrivalNotificationDate" 
> set-method="setArrivalNotificationDate" 
> get-method="getArrivalNotificationDate" usage="required" 
> style="attribute"  
> serializer="com.skg.tools.date.DateHelper.dateToString" 
> deserializer="com.skg.tools.date.DateHelper.stringToDate"/>
>             <value name="arrivalNotificationPlace" 
> set-method="setArrivalNotificationPlace" 
> get-method="getArrivalNotificationPlace" usage="required" 
> style="attribute"/>
>             <value name="arrivalNotificationPlaceLNG" 
> set-method="setArrivalNotificationPlaceLNG" 
> get-method="getArrivalNotificationPlaceLNG" usage="optional" 
> style="attribute"/>
>                
>         </structure>       
>        
>     </structure>   
>        
>     <value name="messageId" set-method="setMessageId" 
> get-method="getMessageId" usage="required" style="attribute"/>
>    
>   </mapping>
>  
> </binding>
>
> ******************************
>
> 3. Refactored E507LT-binding.xml (not working any more):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <binding name="IE507LT">
>   
>   <include path="ExitCarrier.xml"/>
>  
>   <include path="ActualExitCustomsOffice.xml"/>
>
>   <mapping name="IE507LT" class="com.skg.icdts.base.model.MessageImpl">
>    
>       <structure name="Header" usage="required">
>        
>         <structure set-method="setDocument" get-method="getDocument" 
> type="com.skg.icdts.doc.exportdeclooext.model.ExportDeclOoExtImpl">
>        
>             <structure name="ExitCarrier" usage="required">
>                
>                 <structure set-method="setExitCarrier" 
> get-method="getExitCarrier"  map-as="ExitCarrier"/>
>                    
>             </structure>
>        
>             <structure name="ActualExitCustomsOffice" usage="required">
>                
>                   <structure set-method="setOfficeOfExit" 
> get-method="getOfficeOfExit" map-as="ActualExitCustomsOffice"/>
>                      
>             </structure>
>        
>             <value name="mrn" set-method="setMrn" get-method="getMrn" 
> usage="required" style="attribute"/>
>             <value name="arrivalAgreedLocationCode" 
> set-method="setArrivalAgreedLocationCode" 
> get-method="getArrivalAgreedLocationCode" usage="optional" 
> style="attribute"/>
>             <value name="arrivalAgreedLocationOfGoods" 
> set-method="setArrivalAgreedLocationOfGoods" 
> get-method="getArrivalAgreedLocationOfGoods" usage="optional" 
> style="attribute"/>
>             <value name="arrivalAgreedLocationOfGoodsLNG" 
> set-method="setArrivalAgreedLocationOfGoodsLNG" 
> get-method="getArrivalAgreedLocationOfGoodsLNG" usage="optional" 
> style="attribute"/>
>             <value name="customsSubPlace" 
> set-method="setCustomsSubPlace" get-method="getCustomsSubPlace" 
> usage="optional" style="attribute"/>
>             <value name="storingFlag" set-method="setStoringFlag" 
> get-method="getStoringFlag" usage="required" style="attribute"  
> serializer="eu.erp.mdas.jibx.hibernate.TrueFalselEnumHelper.TrueFalseToString"
>  
> deserializer="eu.erp.mdas.jibx.hibernate.TrueFalselEnumHelper.StringToTrueFalse"/>
>             <value name="authorisedStoringLocationOfGoods" 
> set-method="setAuthorisedStoringLocationOfGoods" 
> get-method="getAuthorisedStoringLocationOfGoods" usage="optional" 
> style="attribute"/>
>             <value name="dialogLanguageAtDestination" 
> set-method="setDialogLanguageAtDestination" 
> get-method="getDialogLanguageAtDestination" usage="optional" 
> style="attribute"/>
>             <value name="arrivalNotificationDate" 
> set-method="setArrivalNotificationDate" 
> get-method="getArrivalNotificationDate" usage="required" 
> style="attribute"  
> serializer="com.skg.tools.date.DateHelper.dateToString" 
> deserializer="com.skg.tools.date.DateHelper.stringToDate"/>
>             <value name="arrivalNotificationPlace" 
> set-method="setArrivalNotificationPlace" 
> get-method="getArrivalNotificationPlace" usage="required" 
> style="attribute"/>
>             <value name="arrivalNotificationPlaceLNG" 
> set-method="setArrivalNotificationPlaceLNG" 
> get-method="getArrivalNotificationPlaceLNG" usage="optional" 
> style="attribute"/>
>                
>         </structure>       
>        
>     </structure>   
>        
>     <value name="messageId" set-method="setMessageId" 
> get-method="getMessageId" usage="required" style="attribute"/>
>    
>   </mapping>
>  
> </binding>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <binding>
>    
>     <mapping class="com.skg.icdts.common.model.TraderImpl" 
> type-name="ExitCarrier" abstract="true">
>
>         <value name="tin" set-method="setTin" get-method="getTin" 
> usage="required" style="attribute"/>
>         <value name="name" set-method="setName" get-method="getName" 
> usage="optional" style="attribute"/>
>         <value name="streetAndNumber" set-method="setStreetAndNumber" 
> get-method="getStreetAndNumber" usage="optional" style="attribute"/>
>         <value name="postalCode" set-method="setPostalCode" 
> get-method="getPostalCode" usage="optional" style="attribute"/>
>         <value name="city" set-method="setCity" get-method="getCity" 
> usage="optional" style="attribute"/>
>         <value name="countryCode" set-method="setCountryCode" 
> get-method="getCountryCode" usage="optional" style="attribute"/>
>         <value name="nadLNG" set-method="setNadLNG" 
> get-method="getNadLNG" usage="optional" style="attribute"/>
>
>     </mapping>
>
> </binding>
>
> ExitCarrier.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <binding>
>    
>     <mapping class="com.skg.icdts.common.model.TraderImpl" 
> type-name="ExitCarrier" abstract="true">
>
>         <value name="tin" set-method="setTin" get-method="getTin" 
> usage="required" style="attribute"/>
>         <value name="name" set-method="setName" get-method="getName" 
> usage="optional" style="attribute"/>
>         <value name="streetAndNumber" set-method="setStreetAndNumber" 
> get-method="getStreetAndNumber" usage="optional" style="attribute"/>
>         <value name="postalCode" set-method="setPostalCode" 
> get-method="getPostalCode" usage="optional" style="attribute"/>
>         <value name="city" set-method="setCity" get-method="getCity" 
> usage="optional" style="attribute"/>
>         <value name="countryCode" set-method="setCountryCode" 
> get-method="getCountryCode" usage="optional" style="attribute"/>
>         <value name="nadLNG" set-method="setNadLNG" 
> get-method="getNadLNG" usage="optional" style="attribute"/>
>
>     </mapping>
>
> </binding>
>
> ActualExitCustomsOffice.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <binding>
>
>     <mapping class="com.skg.icdts.common.model.CustomsOfficeImpl" 
> type-name="ActualExitCustomsOffice" abstract="true">
>
>         <value name="referenceNumber" set-method="setReferenceNumber" 
> get-method="getReferenceNumber" usage="required" style="attribute"/>
>
>     </mapping>
>
> </binding>
>
>
> ******************************
>
> Best regards,
> Aurelijus J.
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> ------------------------------------------------------------------------
>
> _______________________________________________
> jibx-users mailing list
> jibx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>   


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to