>From Axis User Guide: ---------------------- There are four valid signatures for your message-style service methods:
public Element [] method(Element [] bodies); public SOAPBodyElement [] method (SOAPBodyElement [] bodies); public Document method(Document body); public void method(SOAPEnvelope req, SOAPEnvelope resp); ---------------------- Perhaps you're implementing Apache SOAP message-style services in Axis? I've seen a few people attempting to do this. Cory -----Original Message----- From: Ghershony, Arie [mailto:[EMAIL PROTECTED] Sent: Monday, March 03, 2003 9:46 AM To: '[EMAIL PROTECTED]' Subject: axis message error I receive the following error when trying to view the the wsdll file. I thought that signature rule is being followed correctly. can any one point out what Is wrong with the code? Thanks, Aria -AXIS error Sorry, something seems to have gone wrong... here are the details: Fault - org.apache.axis.InternalException: java.lang.Exception: Method 'publishCatalog' does not match any of the valid signatures for message-style service methods AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.apache.axis.InternalException: java.lang.Exception: Method 'publishCatalog' does not match any of the valid signatures for message-style service methods faultActor: null faultNode: null faultDetail: stackTrace: org.apache.axis.InternalException: java.lang.Exception: Method 'publishCatalog' does not match any of the valid signatures for message-style service methods at org.apache.axis.description.ServiceDesc.checkMessageMethod(ServiceDesc.java: 726) at org.apache.axis.description.ServiceDesc.createOperationForMethod(ServiceDesc .java:1058 here is the code: package clientaxis.Battle.message; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Text; import java.util.Vector; import java.util.Date; import java.text.SimpleDateFormat; import org.apache.axis.MessageContext ; import org.apache.axis.utils.XMLUtils; import org.apache.axis.message.SOAPBodyElement; import java.io.*; public class CatalogPublisherService { public Element[] publishCatalog(MessageContext context, Vector soapBodyElements) throws Exception { Element soapBody = (Element) soapBodyElements.get(0); NodeList productList = soapBody.getElementsByTagName("PRODUCT"); //Get the count of <PRODUCT> elements in the NodeList int productCount = productList.getLength(); //Call back-end code //Start Building Response Document //Get a DocumentBuilder objec DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); //Start creating the Response //Creat a new DOM Document Document responseDoc = builder.newDocument(); //Create the namespace aware root Element <CATALOGUPDATE> Element resRoot = responseDoc.createElementNS("http:// www.wrox.com/axis/catalogupdate","CATALOGUPDATE"); resRoot.setPrefix("CU"); //Create the ITEMCOUNT element Element itemCount = responseDoc.createElement("ITEMCOUNT"); Text itemCountText = responseDoc.createTextNode(String.valueOf (productCount)); //Create the DATE RECEIVED element Element dateReceived = responseDoc.createElement("DATERECEIVED"); SimpleDateFormat fmt = new SimpleDateFormat("MM/dd/yyyy"); String date = fmt.format(new Date()); Text dateReceivedText = responseDoc.createTextNode(date); //Append the child elements appropriately resRoot.appendChild(itemCount); itemCount.appendChild(itemCountText); resRoot.appendChild(dateReceived); dateReceived.appendChild(dateReceivedText); Element[] result = new Element[1]; result[0] = resRoot; return(result); } }
