Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] XML Object Reference Mapping

Forgive me; answer to first question (below) was already given by Matt
MacIvor. Only the logging bit remains...

-J.

> Hey guys,
>
> Thanks for the effort. Leon and I figured it out - it was due to our fault
> (luckily). What happened was that we didn't complete all of our mappings -
> somehow this results in not all 1:1 references being resolved. Maybe we'll
> sent you our mappings and domain classes later as a reference case. In the
> mean time two other (kind a) follow up questions:
>
> + Is there support to map from XML to Java Enum? I've seen Enum support
> mentioned somewhere, but it looks like this is about pseudo enums
> (typesafe Java classes)
>
> + Is there a way to manipulate the way mOXY logs?
>
> Thanks,
> -J.
>
>
>> Hi Leon,
>>
>> We're looking into this.  I can tell you that there is a limitation in
>> the Workbench right now on being able to specify the primary key for the
>> reference descriptor.  The approach you are taking with the afterload
>> methods appears to be correct.  We'll get back to you on this soon.
>>
>> Neil
>>
>> Leon Derks wrote:
>>> During debugging I noticed that IndustrialFamily had no primary key
>>> (code). This was giving the exception.
>>> I could not define a primary key for IndustrialFamily in the
>>> workbench. Is this currently not supported?
>>>
>>> I tried to workaround this problem using afterload methods and doing
>>> this in Java.
>>>
>>> This is my code:
>>>
>>> public static void afterFamilyLoader(ClassDescriptor familyDescriptor)
>>> {
>>>        familyDescriptor.setJavaClass(IndustrialFamily.class);
>>>        familyDescriptor.addPrimaryKeyFieldName("@code");
>>>    }
>>>      public static void afterProductLoader(ClassDescriptor
>>> productDescriptor) {
>>>        XMLObjectReferenceMapping product = new
>>> XMLObjectReferenceMapping();
>>>        product.setAttributeName("industrialFamily");
>>>        product.setReferenceClass(IndustrialFamily.class);
>>>        product.addSourceToTargetKeyFieldAssociation("@familyCode",
>>> "@code");
>>>        productDescriptor.addMapping(product);
>>>    }
>>>
>>> I don't get a stacktrace any more. But now the family is null in my
>>> Product Object.
>>> Is there still something missing in my mapping?
>>>
>>> Leon
>>>
>>>
>>>
>>>
>>>
>>> Leon Derks wrote:
>>>> Hello
>>>>
>>>> I have a problem (stacktrace) using the XML Object Reference Mapping
>>>> in the workbench tool from EclipseLink 1.0M6.
>>>>
>>>> This is my xml data:
>>>>
>>>> <CatalogProduct code="123JI" name="BSN Lamp" type="Lamp"
>>>> familyCode="BSN-BC4H">
>>>>
>>>> .....
>>>>
>>>> </CatalogProduct>
>>>>
>>>> <IndustrialFamilies>
>>>>
>>>>  <IndustrialFamily code="BSN-BC4H" name="Family Lamps"
>>>> productCategoryCode="Lamps"/>
>>>>
>>>> </IndustrialFamilies>
>>>>
>>>> I mapped this in the workbench as an XML Object Reference with Source
>>>> Xpath=@familyCode and Target Xpath=@code.
>>>>
>>>> In the eclipselink documentation I read that XML Object Reference is
>>>> only supported in Java and not in the workbench. Is this still the
>>>> case?
>>>>
>>>> Running an unmarshall application in Eclipse, results in the
>>>> following stacktrace:
>>>>
>>>>
>>>> javax.xml.bind.UnmarshalException
>>>>
>>>> - with linked exception:
>>>>
>>>> [java.lang.ArrayIndexOutOfBoundsException: -1]
>>>>
>>>>     at
>>>> org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:102)
>>>>
>>>>
>>>>     at
>>>> com.philips.lighting.research.jaxb.UnmarshallXml.main(UnmarshallXml.java:31)
>>>>
>>>>
>>>> Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
>>>>
>>>>     at java.util.Vector.setElementAt(Unknown Source)
>>>>
>>>>     at
>>>> org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping.buildReference(XMLObjectReferenceMapping.java:147)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.XMLObjectReferenceMappingNodeValue.attribute(XMLObjectReferenceMappingNodeValue.java:91)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.oxm.record.UnmarshalRecord.startElement(UnmarshalRecord.java:600)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.XMLRelationshipMappingNodeValue.processChild(XMLRelationshipMappingNodeValue.java:72)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.startElement(XMLCompositeCollectionMappingNodeValue.java:89)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.oxm.record.UnmarshalRecord.startElement(UnmarshalRecord.java:558)
>>>>
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
>>>> Source)
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.record.XMLReader.parse(XMLReader.java:99)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:216)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:193)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:274)
>>>>
>>>>
>>>>     at
>>>> org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:100)
>>>>
>>>>
>>>>     ... 1 more
>>>>
>>>>
>>>> _______________________________________________
>>>> eclipselink-users mailing list
>>>> eclipselink-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>
>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>




Back to the top