1

我有一个包含一些类的 java 程序。三个方法获取输入 A 并提供输出 B。我需要将这些方法作为 Web 服务提供,以便我可以询问类似http://test.com/method?input=A的内容并返回结果 B。我不想重写我现有的代码。是否有可用的东西,例如 JAVA 的 Web 服务框架,可以让我为这三种方法创建 Web 服务接口。最简单的方法是什么?

在我的研究过程中,我遇到了许多首字母缩略词和其他东西,例如动态项目、JAVA EE、Glassfish 等……什么可以实现我的要求?谢谢!

4

3 回答 3

0

您可能需要某种网络框架——Glassfish 就是一个例子。基本上,您的应用程序不是为接收 Web 请求而构建的,因此您需要某种容器(例如,像 Tomcat http://en.wikipedia.org/wiki/Web_container这样的 Servlet 容器)。

我认为“restlet”是一个可能适合您需求的小 servlet 容器。

看看:http ://www.restlet.org/

于 2012-04-11T18:05:40.910 回答
0

我发现做快速 Java 服务的最简单方法是Restlet

您可以使用他们的教程从头开始启动和运行网络服务器,就像字面上的 20 分钟一样。下面的 Restlet 应该可以作为骨架框架开箱即用。当然,您将替换调用String b = ...,并将其替换为您自己的库。

public class Main extends Application {

    public static void main(String[] args) {
        Main main = new Main();
        main.start();
    }

    private void start() {
        Component c = new Component();
        c.getServers().add(Protocol.HTTP, 80);
        Application app = new Main();
        c.getDefaultHost().attach(app);
        c.start();
    }

    public Restlet createInboundRoot() {
        Router router = new Router(getContext());
        router.attach("/method/{input}", new Restlet(getContext()) {
            public void handle(Request request, Response response) {
                String a = request.getAttributes().get("input").toString();
                String b = MyLibraries.compute(a);
                response.setEntity(b, MediaType.TEXT_HTML);
            }
        });
        return router;
    }

}
于 2012-04-11T18:04:48.350 回答
0

如果您在 Java EE 6 服务器上运行,则可以使用 JAX-RS:http ://docs.oracle.com/javaee/6/tutorial/doc/gilik.html

于 2012-04-11T18:05:07.730 回答