'no such operation' fault with xsi:nil inputs
---------------------------------------------

         Key: AXIS-1833
         URL: http://issues.apache.org/jira/browse/AXIS-1833
     Project: Axis
        Type: Bug
    Versions: 1.1    
 Environment: client: Windows 2000 Professional, JDK 1.4.1_01
server: Linux Fedora 1, Tomcat 4.1
    Reporter: Ivan Di Pietro


I've got a problem with a web service whose input can take "null" value.
Remote java method takes 18 parameters; its prototype is:

public String bvq(int mx,
                  int my,
                  int ndecimaldigit,
                  int classcolumn,
                  int seed,
                  float gamma0,
                  float R,
                  int iterations,
                  float gamma0bvq,
                  float Rbvq,
                  int bvqit2,
                  int bvqiterations,
                  float delta,
                  float noise,
                  int errstep,
                  int errstart,
                  int errend,
                  int stopflag)

The parameters "errstart" and "errend" are optional and the client application 
(in Java, using JAX-RPC) sets them as "null" when they are not required.
JAX-RPC works normally, so I can see the SOAP request message on the 
SOAP-monitor.

<errstart xsi:nil="true"/>
<errend xsi:nil="true"/>


Parameters "errstart" and "errend" are correctly recognized as nillable.
On the other hand, I get an Axis fault (Server.userException) with a fault 
detail specifying "No such operation 'bvq'".


************* fault 
output*****************************************************************
AxisFault
 faultCode: Server.userException
 faultSubcode:
 faultString: No such operation &apos;bvq&apos;
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace: AxisFault
 faultCode: Server.userException
 faultSubcode:
 faultString: No such operation &amp;apos;bvq&amp;apos;
 faultActor:
 faultNode:
 faultDetail:

No such operation 'bvq'
        at 
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
        at 
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
        at 
org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1528)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
        at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)

        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
        at 
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
        at org.apache.axis.client.Call.invoke(Call.java:2553)
        at org.apache.axis.client.Call.invoke(Call.java:2248)
        at org.apache.axis.client.Call.invoke(Call.java:2171)
        at org.apache.axis.client.Call.invoke(Call.java:1691)
        at ClientFactory$SubmitListener.actionPerformed(ClientFactory.java:826)
        at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
        at 
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
        at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
        at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
        at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
        at java.awt.Component.processMouseEvent(Component.java:5093)
        at java.awt.Component.processEvent(Component.java:4890)
        at java.awt.Container.processEvent(Container.java:1566)
        at java.awt.Component.dispatchEventImpl(Component.java:3598)
        at java.awt.Container.dispatchEventImpl(Container.java:1623)
        at java.awt.Component.dispatchEvent(Component.java:3439)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
        at java.awt.Container.dispatchEventImpl(Container.java:1609)
        at java.awt.Window.dispatchEventImpl(Window.java:1585)
        at java.awt.Component.dispatchEvent(Component.java:3439)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
        at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)


No such operation 'bvq'
        at 
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
        at 
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
        at 
org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1528)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
        at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)

        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
        at 
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
        at org.apache.axis.client.Call.invoke(Call.java:2553)
        at org.apache.axis.client.Call.invoke(Call.java:2248)
        at org.apache.axis.client.Call.invoke(Call.java:2171)
        at org.apache.axis.client.Call.invoke(Call.java:1691)
        at ClientFactory$SubmitListener.actionPerformed(ClientFactory.java:826)
        at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
        at 
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
        at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
        at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
        at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
        at java.awt.Component.processMouseEvent(Component.java:5093)
        at java.awt.Component.processEvent(Component.java:4890)
        at java.awt.Container.processEvent(Container.java:1566)
        at java.awt.Component.dispatchEventImpl(Component.java:3598)
        at java.awt.Container.dispatchEventImpl(Container.java:1623)
        at java.awt.Component.dispatchEvent(Component.java:3439)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
        at java.awt.Container.dispatchEventImpl(Container.java:1609)
        at java.awt.Window.dispatchEventImpl(Window.java:1585)
        at java.awt.Component.dispatchEvent(Component.java:3439)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
        at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
****************************************************************************************************


It seems like Axis is looking for an operation named 'bvq' with 16 parameters 
instead of 18.
Setting the two parameters with values other than "null", the operation is 
found and the service runs as it should. Any suggestions?
Thanks a lot.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to