package samples.encoding;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.utils.Options;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Element;
import javax.xml.namespace.QName;
import java.io.ByteArrayInputStream;
import java.net.URL;
public class TestElem {
static String xml = "<x:hello xmlns:x=\"urn:foo\">a string</x:hello>" ;
public static String doit(String[] args,String xml) throws Exception {
ByteArrayInputStream bais = new ByteArrayInputStream(xml.getBytes());
String sURL = "http://" + args[0] + ":" + args[1] + "/axis/services/ElementService" ;
QName sqn = new QName(sURL, "ElementService" );
QName pqn = new QName(sURL, "ElementService" );
//Service service=new Service(new URL("file:ElementService.wsdl"),sqn);
Service service = new Service(new URL(sURL+"?wsdl"),sqn);
Call call = (Call) service.createCall( pqn, "echoElement" );
Options opts = new Options(args);
opts.setDefaultURL( call.getTargetEndpointAddress() );
call.setTargetEndpointAddress( new URL(opts.getURL()) );
Element elem = XMLUtils.newDocument(bais).getDocumentElement();
elem = (Element) call.invoke( new Object[] { "a string", elem } );
return( XMLUtils.ElementToString( elem ) );
}
public static void main(String[] args) throws Exception {
System.out.println("Sent: " + xml );
String res = doit(args, xml);
System.out.println("Returned: " + res );
}
}
|