I have a X-Fire 1.2.6 web service.  I have developed a JAX-WS client for 
testing the web service.  I can obtain some information from the web service.  
However, when I create a complex object, I received the following:

org.codehaus.xfire.fault.XFireFault: Invalid operation: 
{http://service.server.my.project.company.com}SearchMyFiles
 at org.codehaus..xfire.service.binding.WrappedBinding.readMessage
(WrappedBinding.java:42)
 at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke
(SoapBodyHandler.java:42)
 at org.codehaus.xfire.handler.HandlerPipeline.invoke
(HandlerPipeline.java:131)
 at org.codehaus.xfire.transport.DefaultEndpoint.onReceive
(DefaultEndpoint.java:64)
 at org.codehaus.xfire.transport.AbstractChannel.receive
(AbstractChannel.java:38)
 at org.codehaus.xfire.transport.http.XFireServletController.invoke
(XFireServletController.java:304)
 at org.codehaus.xfire.transport.http.XFireServletController.doService
(XFireServletController.java:129)
 at org.codehaus.xfire.transport.http.XFireServlet.doPost
(XFireServlet.java:116)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

When I look at the X-Fire code for version 1.2.6 I see this:
    public void readMessage(InMessage inMessage, MessageContext context)
        throws XFireFault
    {
        Service endpoint = context.getService();
        
        DepthXMLStreamReader dr = new DepthXMLStreamReader(context.getInMessage
().getXMLStreamReader());
        if ( !STAXUtils.toNextElement(dr) )
            throw new XFireFault("There must be a method name element.", 
XFireFault.SENDER);
        
        OperationInfo op = context.getExchange().getOperation();
        if (!isClientModeOn(context) && op == null)
        {
 >>>>>>>>>op = endpoint.getServiceInfo().getOperation( dr.getLocalName() );
            
            if (op == null)
            {
                throw new XFireFault("Invalid operation: " + dr.getName(), 
XFireFault.SENDER);
            }
            setOperation(op, context);
        }
        
        // Move from Operation element to whitespace or start element
        nextEvent(dr);
        read(inMessage, context, null);
    }

Any suggestions would be greatly appreciated.

Russ


      

Reply via email to