Я могу рекомендовать набор загадки Simon Tatham . Это - серия головоломок (минный тральщик, судоку, пятнадцать) доступный для Windows, OS X и Linux (и как апплеты Java). Архитектура довольно проста: существует интерфейс фронтенда с тремя реализациями (один на платформу), внутренний интерфейс с одной реализацией на игру (я дал три примера), и середина конца, который заставляет их говорить вместе, сделайте сериализацию и другой аккуратный материал.
В основном, это - хорошее ООП. Записанный в C. Легко способствовать (я реализовал игры Заполнения и Диапазона), так как это хорошо документируется, и легко читать.
Похоже, jdk 6.0 уже поставляется с реализацией jax-ws и небольшим сервером, который вы можете встроить. Я не разобрался во всех деталях, но вот начало:
mkdir -p helloservice/endpoint/
helloservice / endpoint / Hello.java:
package helloservice.endpoint;
import javax.jws.WebService;
@WebService()
public class Hello {
private String message = new String("Hello, ");
public void Hello() {}
public String sayHello(String name) {
return message + name + ".";
}
}
helloservice / endpoint / Server.java:
package helloservice.endpoint;
import javax.xml.ws.Endpoint;
public class Server {
protected Server() throws Exception {
System.out.println("Starting Server");
Object implementor = new Hello();
String address = "http://localhost:9000/SoapContext/SoapPort";
Endpoint.publish(address, implementor);
}
public static void main(String args[]) throws Exception {
new Server();
System.out.println("Server ready...");
Thread.sleep(5 * 60 * 1000);
System.out.println("Server exiting");
System.exit(0);
}
}
Создайте вещь:
mkdir build
javac -d build helloservice/endpoint/*java
$JAVA_HOME/wsgen -d build -s build -classpath . helloservice.endpoint.Hello
Запустите вещь:
java -cp build helloservice.endpoint.Server
Somethings работает на http: // localhost: 9000 / SoapContext / SoapPort сейчас. Вы можете получить wsdl на http: // localhost: 9000 / SoapContext / SoapPort? WSDL
Еще не дошли до создания клиента ..
Most(/all?) Java SOAP server implementations provide a Servlet (the javax.xml.ws.Endpoint approach in another answer does look a bit simpler though...). Some SOAP implementations you could consider are: Apache CXF: cxf.apache.org, Apache Axis2: ws.apache.org/axis2/ or Spring Web Servies: static.springsource.org/spring-ws/site/ .
The most popular embedded Java web server seems to be Jetty, you can configure it either programatically (using plain Java or Spring beans) or using a custom XML format.
В дополнение к отличному ответу nos я нашел класс в оси Apache под названием SimpleHTTPServer
, который, я уверен, делает то же самое, но требует только Java 1.5 для тех, кто вы застряли с 1.5
Я не собираюсь исследовать его, так как собираюсь использовать другое решение, поэтому я на самом деле не проверял, что оно делает то, что я думаю, но я почти уверен, что это так.