Can weblogic client takes empty arrays being returned.

Hi All:

I am using weblogic 9.2 to generate the web service client code.

Here is my build.xml file to build the java client code:

[QUOTE]

<project name="webservices-TEST" default="client">

<taskdef name="clientgen"classname="weblogic.wsee.tools.anttasks.ClientGenTask" />

<target name="client" >

<clientgen

wsdl=" http://test:7035/TEST-engine/services/accumulator.wsdl"

destDir="clientclasses"

packageName="com.TEST.TEST2.caps.wsclient"

>

</clientgen>

</target>

</project>

[/QUOTE]

Here is my client code to test the web service.

[QUOTE]

public class testWebServicesClient

{

public static void main(String[] test)

{

try {

Long recipientId = 11597997730620L;

AccumulatorWS impl = new AccumulatorWS_Impl("http://test:7035/TEST-engine/services/accumulator.wsdl");

IAccumulatorWS iAccWS1 = impl.getIAccumulatorWS();

AccumulatorResponse response = iAccWS1.getCurrentAccumulators(recipientId, "", "", "", "en", "");

System.err.println("The status is: " + response.getStatus());

}

catch (Exception e) {

e.printStackTrace();

}

}

}

[/QUOTE]

I get the following error:

java.rmi.RemoteException: Illegal Capacity: -1; nested exception is:

java.lang.IllegalArgumentException: Illegal Capacity: -1

at com.test.wsclient.IAccumulatorWS_Stub.getCurrentAccumulators(IAccumulatorWS_Stub.java:46)

at test.testWebServicesClient.main(testWebServicesClient.java:27)

Caused by: java.lang.IllegalArgumentException: Illegal Capacity: -1

at java.util.ArrayList.<init>(ArrayList.java:111)

at com.bea.staxb.runtime.internal.util.collections.ArrayListBasedObjectAccumulator.createNewStore(ArrayListBasedObjectAccumulator.java:42)

at com.bea.staxb.runtime.internal.util.collections.ObjectAccumulator.<init>(ObjectAccumulator.java:39)

at com.bea.staxb.runtime.internal.util.collections.ArrayListBasedObjectAccumulator.<init>(ArrayListBasedObjectAccumulator.java:31)

at com.bea.staxb.runtime.internal.util.collections.AccumulatorFactory.createAccumulator(AccumulatorFactory.java:37)

at com.bea.staxb.runtime.internal.util.collections.AccumulatorFactory.createAccumulator(AccumulatorFactory.java:74)

at com.bea.staxb.runtime.internal.SoapArrayRuntimeBindingType.createIntermediary(SoapArrayRuntimeBindingType.java:255)

at com.bea.staxb.runtime.internal.RuntimeBindingProperty.createIntermediary(RuntimeBindingProperty.java:117)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalElementProperty(SoapUnmarshalResult.java:364)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.basicExtractAndFill(SoapUnmarshalResult.java:241)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.extractAndFillElementProp(SoapUnmarshalResult.java:174)

at com.bea.staxb.runtime.internal.ByNameUnmarshaller.deserializeContents(ByNameUnmarshaller.java:51)

at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshalIntoIntermediary(AttributeUnmarshaller.java:47)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.umarshalComplexElementWithId(SoapUnmarshalResult.java:395)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalElementProperty(SoapUnmarshalResult.java:366)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.basicExtractAndFill(SoapUnmarshalResult.java:241)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.extractAndFillElementProp(SoapUnmarshalResult.java:174)

at com.bea.staxb.runtime.internal.ByNameUnmarshaller.deserializeContents(ByNameUnmarshaller.java:51)

at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshal(AttributeUnmarshaller.java:38)

at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalBindingType(SoapUnmarshalResult.java:110)

at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:212)

at com.bea.staxb.runtime.internal.SoapUnmarshallerImpl.unmarshalType(SoapUnmarshallerImpl.java:93)

at weblogic.wsee.bind.runtime.internal.EncodedDeserializerContext.unmarshalType(EncodedDeserializerContext.java:66)

at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeType(BaseDeserializerContext.java:170)

at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeType(BaseDeserializerContext.java:87)

at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:401)

at weblogic.wsee.codec.soap11.SoapDecoder.decodeReturn(SoapDecoder.java:316)

at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:165)

at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:116)

at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:136)

at weblogic.wsee.ws.dispatch.client.CodecHandler.decodeOutput(CodecHandler.java:117)

at weblogic.wsee.ws.dispatch.client.CodecHandler.decode(CodecHandler.java:94)

at weblogic.wsee.ws.dispatch.client.CodecHandler.handleResponse(CodecHandler.java:71)

at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:242)

at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:226)

at weblogic.wsee.ws.dispatch.client.ClientDispatcher.handleResponse(ClientDispatcher.java:161)

at weblogic.wsee.ws.dispatch.client.ClientDispatcher.dispatch(ClientDispatcher.java:116)

at weblogic.wsee.ws.WsStub.invoke(WsStub.java:89)

at weblogic.wsee.jaxrpc.StubImpl._invoke(StubImpl.java:335)

at com.test.IAccumulatorWS_Stub.getCurrentAccumulators(IAccumulatorWS_Stub.java:37)

... 1 more

If I changed from

Long recipientId = 11597997730620L;

to

Long recipientId = 14998712L;

I get the error message The status is: 4.

The group that generates the web service state that the weblogic client code is choking

on empty arrays being returned. They say they have to return empty arrays

instead of nulls where no data is returned.

Is there something wrong with the weblogic tools

or am I using it incorrectly?

Yours,

Frustrated.

[6308 byte] By [jadeite100a] at [2007-11-27 11:28:21]
# 1

you'd have to check your generated code.

If it can't handle empty arrays that would bring my trust in Bea's code down another notch (and from what I've experienced indirectly of their WS stack I wasn't all that thrilled).

jwentinga at 2007-7-29 16:21:38 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...