Thanks Ian,

This certainly pointed me to the right place. I do have a
ResourcePropertyCallback associated with this property (it is not
modifiable). I am including the refresh method. The backend returns a
List of objects. I then iterate through the list to regenerate the
XmlBean list. Am I doing this incorectly?

public ResourceProperty refreshProperty(ResourceProperty prop)
{
        prop.clear();
        List foos = m_backendResource.getFoos();
        for (int i = 0; i < foos.size(); ++i)
        {
                FooType ft = FooType.Factory.newInstance();
                Foo ff = (Foo)foos.get(i);
                ft.setName(ff.getName());
 
ft.setType(TypeEnumeration.Enum.forString(ff.getType()));
                List spiffies = ff.getSpiffies();
                for (int j = 0; j < spiffies.size(); ++j)
                ft.addSpiffy((byte[])spiffies.get(j));

                prop.add(ft);
        }

        return prop;
}

Thanks,
Bryan

-----Original Message-----
From: Ian Springer [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 25, 2005 8:33 AM
To: [email protected]
Subject: Re: MetaDataViolationException

Hi Bryan,

It's too bad we're not logging the stack trace of the MDVE (I'll look at
remedying this). Looking at the source though, an MDVE with the message
"Property element to add must be named ..." is only thrown in one place
- XmlBeansResourceProperty#load(), which is only called in two places: 
XmlBeansResourceProperty#add() and the constructor of
XmlBeansResourcePropertySet. Neither of these code paths should get
touched during processing of a GetRP request. Do you by any chance have
a ResourcePropertyCallback associated with the property? Perhaps in its
refreshProperty() impl you're calling XmlBeansResourceProperty#add()?

If none of the above helps you solve the problem, then it will be
necessary to attach to the JVM with a remote debugger and step through
the execution of the code. If you haven't done this before, I can help
you set it up; it's actually much easier than it sounds.

Ian

Murray, Bryan P. wrote:

>I sent a GetResourceProperty request message to retrieve a property and

>received a JAXRPCException with the following message: "Unexpected 
>error. Cause:
>org.apache.ws.resource.properties.MetaDataViolationException: Property 
>element to add must be named ...". This is puzzling since I am just 
>reading a property.
>
>The type for my property looks something like:
>  <xs:complexType name="FooType">
>    <xs:sequence>
>      <xs:element name="Spiffy" type="xs:hexBinary"
>          minOccurs="1" maxOccurs="unbounded"/>
>      <xs:element name="Type" type="x:TypeEnumeration"/>
>      <xs:element name="Name" type="xs:string"/>
>    </xs:sequence>
>  </xs:complexType>
>  <xs:element name="Foo" type="x:FooType"/>
>
>And the property is declared as follows in the resource property
>document:
>  <xs:element ref="x:Foo"
>     minOccurs="0" maxOccurs="unbounded"/>
>
>The documentation for MetaDataViolationException does not indicate the 
>conditions for which it will be thrown. The stack trace does not reach 
>my code, so I don't know what to change.
>
>Can you help me understand why this exception is being thrown.
>
>Thanks,
>Bryan
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to