| École franco-maghrébine 2003 | WebServices | 13-17 octobre 2003 |
|
tp2d |
Contenu du fichier tp2d/InfoCours3.java.
package tp2d;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.utils.Options;
import org.apache.axis.utils.XMLUtils;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.*;
import java.util.*;
import java.io.*;
import tp2d.*;
public class InfoCours3 {
Node node;
String xpathexp;
XPath xpath;
public org.w3c.dom.Element[] infoCours(org.w3c.dom.Element[] elems) {
String nomSalle = XMLUtils.getChildCharacterData(elems[0]);
String numeroSemaine = XMLUtils.getChildCharacterData(elems[1]);;
SAXReader reader = new SAXReader();
try {
Document document = reader.read(new java.net.URL("http://localhost:8080/axis/planning.xml"));
Map uris = new HashMap();
uris.put( "planning", "http://in2p3.fr/WS/tp1" );
xpathexp = "//planning:semaine[@planning:numerosemaine='"+ numeroSemaine +"' and
planning:salle/planning:nom='"+ nomSalle +"']";
//System.err.println(xpathexp);
xpath = document.createXPath( xpathexp );
xpath.setNamespaceURIs( uris );
node = xpath.selectSingleNode( document );
if (node != null) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder() ;
InputStream in = (InputStream) new ByteArrayInputStream(node.asXML().getBytes());
org.w3c.dom.Document documentRes = builder.parse(in);
return new org.w3c.dom.Element[]{documentRes.getDocumentElement()};
} else {
return new org.w3c.dom.Element[]{XMLUtils.StringToElement("urn:foo","e1","pas de noeud")};
}
} catch (Exception e) {
return new org.w3c.dom.Element[]{XMLUtils.StringToElement("urn:foo","e2",e.toString())};
}
}
}
Contenu du fichier tp2d/deploy.wsdd.
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="InfoCours3" style="java:RPC">
<parameter name="className" value="tp2d.InfoCours3"/>
<parameter name="allowedMethods" value="infoCours"/>
</service>
</deployment>
Contenu du fichier tp2d/ClientInfoCours3.java.
package tp2d;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.utils.Options;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.net.URL;
import java.util.Vector;
import org.apache.axis.client.*;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import tp2d.*;
public class ClientInfoCours3 {
public static void main(String [] args) {
try {
SOAPBodyElement[] input = new SOAPBodyElement[2];
input[0] = new SOAPBodyElement(XMLUtils.StringToElement("urn:foo",
"nomsalle", "Marguerite"));
input[1] = new SOAPBodyElement(XMLUtils.StringToElement("urn:foo",
"numerosemaine", "23"));
String endpointURL = "http://localhost:8080/axis/services/InfoCours3";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
call.setOperationName( new QName("InfoCours3","infoCours") );
Vector elems = (Vector) call.invoke( input );
SOAPBodyElement elem = null ;
Element e = null ;
elem = (SOAPBodyElement) elems.get(0);
e = elem.getAsDOM();
String str = "Res elem[0]=" + XMLUtils.ElementToString(e);
System.out.println (str);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
| École franco-maghrébine 2003 | WebServices | 13-17 octobre 2003 |