diff options
Diffstat (limited to 'src/main/java/derms/replica/replica1/Client.java')
| -rw-r--r-- | src/main/java/derms/replica/replica1/Client.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/derms/replica/replica1/Client.java b/src/main/java/derms/replica/replica1/Client.java new file mode 100644 index 0000000..7ebbb68 --- /dev/null +++ b/src/main/java/derms/replica/replica1/Client.java @@ -0,0 +1,30 @@ +package derms.replica.replica1; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.UnknownHostException; + +public abstract class Client<I, C> { + public static final String namespace = "derms.samanthony.xyz"; + public static final int port = 8080; + + private final Class<I> endpointInterface; + private final QName qname; + + protected Client(Class<I> endpointInterface, Class<C> endpointClass) { + this.endpointInterface = endpointInterface; + this.qname = new QName("http://"+namespace+"/", endpointClass.getSimpleName()+"Service"); + } + + protected I connect(String host) throws MalformedURLException { + URL url = new URL("http://"+host+":"+port+"/"+endpointInterface.getSimpleName()+"?wsdl"); + return Service.create(url, qname).getPort(endpointInterface); + } + + protected I connect(City city) throws UnknownHostException, MalformedURLException { + String host = Hosts.get(city); + return connect(host); + } +} |