JAX-WS Reference Implementation
Web Services tutorial in JavaEE5 tutorial
Webservices in JDK 6 - Vivek Pandey's Blog
// Web service Endpoint
// -- $ vim src/test/Master.java --
package test;
import java.util.Collection;
public class Master {
private String name;
private Collectionslaves;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public CollectiongetSlaves() {
return slaves;
}
public void setSlaves(Collectionslaves) {
this.slaves = slaves;
}
}
// -- $ vim src/test/Slave.java --
package test;
import javax.xml.bind.annotation.XmlTransient;
public class Slave {
private String name;
private Master master;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlTransient()
public Master getMaster() {
return master;
}
public void setMaster(Master master) {
this.master = master;
}
}
// -- $ vim src/test/EchoWeb.java --
package test;
import java.util.ArrayList;
import java.util.Collection;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService()
public class EchoWeb {
@WebMethod(operationName = "echo")
public Master echo(@WebParam(name = "name")
String name) {
Master master = new Master();
Collectionslaves = new ArrayList ();
master.setSlaves(slaves);
master.setName(name);
Slave slave1 = new Slave();
slave1.setName("slave1");
slaves.add(slave1);
Slave slave2 = new Slave();
slave2.setName("slave2");
slaves.add(slave2);
return master;
}
public static void main(String[] args) throws Exception {
EchoWeb echoWebService = new EchoWeb();
Endpoint.publish("http://localhost/EchoWebService", echoWebService);
}
}
// compile and run server
$ apt -d classes -s generated-src src/test/*.java
$ java -cp ./classes test.EchoWeb
$ firefox http://localhost/EchoWebService?wsdl
// Web Services Client
$ wsimport -d classes -s src http://localhost/EchoWebService?wsdl
// -- $ vim src/test/Main.java --
package test;
import java.util.List;
public class Main {
public static void main(String[] args) {
EchoWebService echoWebService = new EchoWebService();
Master master = echoWebService.getEchoWebPort().echo("Hello World");
System.out.println("Master Name: " + master.getName());
Listslaves = master.getSlaves();
for (Slave slave : slaves) {
System.out.println("Slave Name: " + slave.getName());
}
}
}
// compile and run client
$ javac -cp classes -d classes src/test/Main.java
$ java -cp classes test.Main
Master Name: Hello World
Slave Name: slave1
Slave Name: slave2
沒有留言:
張貼留言