Я наконец нашел способ сделать это. Вы можете сделать это, создав фиктивный движок мыла, который возвращает желаемый xml. Затем Axis выполнит весь анализ и проработает всю логику, как если бы он получил ее из http-источника. Вот пример:
public class SimulatorHandler extends BasicHandler
{
/**
* System property to that hold soap response message in xml.
*/
private static final String responseMsg = "soapResponse";
/**
* @return the responseMsg
*/
public static String getResponseMsgSystemProperty()
{
return responseMsg;
}
public void invoke(MessageContext context) throws AxisFault
{
// i haven't figure out a way to do a setter on this msg
// so I have to get it from system properties
String msg = System.getProperty(responseMsg);
ByteArrayInputStream is = new ByteArrayInputStream(msg.getBytes());
Message response = new Message(is);
response.setMessageType(Message.RESPONSE);
context.setResponseMessage(response);
}
}