I'm testing it with document style, and my first results show a different
behaviour : the empty arrays are correctly passed to and from the called
service. Thus, it seems to be a wrapped style stubs problem...
I have not done all the tests in document style, since an old problem is
coming back for multiple arguments operation. I have few information for the
moment, and i'll post a new mail when i get more. I have a fault exception
on the client side when it calls an operation like : "int operation(int,
int)", operation that perfectly works in wrapped style...
Perhaps you have an idea ?!
Just for the information, the exception thrown back on the client side is :
java.lang.NullPointerException
at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:2
21)
at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:12
8)
at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationCo
ntext.java:1087)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1675)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1926)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1926)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext
.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChe
cker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
at org.apache.axis.client.Call.invoke(Call.java:2748)
at org.apache.axis.client.Call.invoke(Call.java:2424)
at org.apache.axis.client.Call.invoke(Call.java:2347)
at org.apache.axis.client.Call.invoke(Call.java:1804)
at
my.service3.TestServicePortSoapBindingStub.testIntegerPairToInteger(Unknown
Source)
at my.client.Main.testIntegerPairToInteger(Main.java:123)
at my.client.Main.main(Main.java:215)
And the origin exception on the server side :
java.lang.NullPointerException
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:329)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:
32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NullPointerException
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:324)
at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388
)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:2
83)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
... 42 more
>>> -----Original Message-----
>>> From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED]
>>> Sent: Tuesday, June 14, 2005 8:28 PM
>>> To: [email protected]
>>> Subject: RE: AXIS 1.2 / Style Wrapped / array operation arguments
>>>
>>>
>>> Ephemeris :
>>>
>>> Please let me know if you see any result with document/literal different
>>> from what I described.
>>>
>>> Thanks,
>>> -Feng
>>>
>>> -----Original Message-----
>>> From: Ephemeris Lappis [mailto:[EMAIL PROTECTED]
>>> Sent: Tuesday, June 14, 2005 2:22 PM
>>> To: [email protected]
>>> Subject: RE: AXIS 1.2 / Style Wrapped / array operation arguments
>>>
>>> Few weeks ago, all my tests used document/literal style, but i don't
>>> remember how the empty arrays were exchanged, if i tested it. I could
>>> test the same services with document style to compare the results, but i
>>> suppose a confirmation of this behaviour should be a good thing...
>>> --
>>> Ephemeris Lappis
>>>
>>> >>> -----Original Message-----
>>> >>> From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED]
>>> >>> Sent: Tuesday, June 14, 2005 8:10 PM
>>> >>> To: [email protected]
>>> >>> Subject: RE: AXIS 1.2 / Style Wrapped / array operation arguments
>>> >>>
>>> >>>
>>> >>> My test on document/literal doesn't show this behaviour. With
>>> >>> document/literal, I have tried with string, Integer and byte[], all
>>> >>> worked fine.
>>> >>>
>>> >>> -Feng
>>> >>>
>>> >>> -----Original Message-----
>>> >>> From: Ephemeris Lappis [mailto:[EMAIL PROTECTED]
>>> >>> Sent: Tuesday, June 14, 2005 1:41 PM
>>> >>> To: Axis-User
>>> >>> Subject: AXIS 1.2 / Style Wrapped / array operation arguments
>>> >>>
>>> >>> Hello.
>>> >>>
>>> >>> Just for a confirmation...
>>> >>>
>>> >>> I'm testing again the wrapped style services, with different kid of
>>> >>> arguments and return types. It seems, for what my server side class
>>> >>> receives, that the client call doesn't make difference to marshall
>>> >>> null and empty array arguments.
>>> >>>
>>> >>> For example, for an operation with the java signature :
>>> >>>
>>> >>> public void testArrayOfInteger(int[] values)
>>> >>>
>>> >>> the two invocations on the service stub :
>>> >>>
>>> >>> testArrayOfInteger(null)
>>> >>> or
>>> >>> testArrayOfInteger(new int[0])
>>> >>>
>>> >>> produce, for the server class invocation a null argument.
>>> >>>
>>> >>> It seems to be the same for arrays of objects, like strings or
>>> >>> custom types.
>>> >>> For the moment, this doesn't represent a real problem, but i'd like
>>> >>> to know if this behaviour is natural, or may be a wsdl default or a
>>> bug...
>>> >>>
>>> >>> This tests are all done with wrapped/literal style services. I don't
>>>
>>> >>> know if other style/use produce the same...
>>> >>>
>>> >>> Thanks.
>>> >>>
>>> >>> --
>>> >>> Ephemeris Lappis
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Philippe Maseres