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