Hi,
Your methods are right, but there's a bug in
AbstractWsResourceCapability.getPropertyElements():
if (value.getClass().isArray())
{
values = (Object[])value;
type = ReflectUtils.getClassFromArrayClass(value.getClass());
}
your value is an int[], not an Object[]. the code should be fixed so that
instead of the current shortcut (casting the value to an array), we use
the java.lang.reflect.Array API to make the array object and copy the
references. I'll make a JIRA issue for this.
Dan
Christian Ewers <[EMAIL PROTECTED]> wrote on 03/14/2007 12:21:34 PM:
>
> Hi,
>
> I have a resourceProperty that holds an array of integer-values. I
updated
> my muse-sources from svn today.
> In the wsdl-file it is defined as follows
>
> ..
> <xsd:element name="RecentValues" type="xsd:int"/>
>
> <xsd:element name="ResourceProperties">
> <xsd:complexType>
> <xsd:sequence>
> ...
> <xsd:element ref="tns:RecentValues" minOccurs="0"
> maxOccurs="unbounded"/>
> ...
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> ..
>
> wsdl2java produces the correct getter and setter methods
>
> public int[] getRecentValues();
> public void setRecentValues(int[] param);
>
> When I implement the getter-method with a test return type
>
> public int[] getRecentValues()
> {
> int[] values = new int[]{1};
> return values;
> }
>
> I get the following ClassCastException when calling the
> getResourcePropertyDocument with a client.
>
> java.lang.ClassCastException: [I
> at
> org.apache.muse.ws.resource.impl.AbstractWsResourceCapability.
> getPropertyElements(AbstractWsResourceCapability.java:234)
> at
> org.apache.muse.ws.resource.impl.AbstractWsResourceCapability.
> getProperty(AbstractWsResourceCapability.java:190)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> getResourceProperty(SimpleResourcePropertyCollection.java:596)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> validateSchema(SimpleResourcePropertyCollection.java:1175)
> at
>
org.apache.muse.ws.resource.impl.SimpleWsResource.initialize(SimpleWsResource.java:223)
> at
> org.apache.muse.core.routing.RouterFilePersistence.
> reloadResource(RouterFilePersistence.java:139)
> at
> org.apache.muse.core.AbstractFilePersistence.
> reloadResources(AbstractFilePersistence.java:410)
> at
>
org.apache.muse.core.AbstractFilePersistence.reload(AbstractFilePersistence.java:351)
> at
> org.apache.muse.core.routing.SimpleResourceRouter.
> initialize(SimpleResourceRouter.java:256)
> at
> org.apache.muse.core.platform.AbstractIsolationLayer.
> initialize(AbstractIsolationLayer.java:176)
> at
> org.apache.muse.core.platform.axis2.AxisIsolationLayer.
> handleRequest(AxisIsolationLayer.java:72)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.axis2.receivers.RawXMLINOutMessageReceiver.
> invokeBusinessLogic(RawXMLINOutMessageReceiver.java:88)
> at
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.
> receive(AbstractInOutSyncMessageReceiver.java:39)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:493)
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.
> processHTTPPostRequest(HTTPTransportUtils.java:319)
> at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:247)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.
> doFilter(ApplicationFilterChain.java:173)
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.
> processConnection(Http11BaseProtocol.java:664)
> at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.
> runIt(LeaderFollowerWorkerThread.java:80)
> at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
> Is this a bug, o am I doing something wrong?
> Thanks,
> Christian
>
>
> ---------------------------------------------------------------------
> 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]