1

我正在使用 Restlet 框架,但现在我想更改为合适的服务器而不是使用 localhost。我已经将我的 php 文件(他们使用 rest_server URL 访问 java 文件)添加到服务器的文件夹和我的 java 文件中,但我不知道如何更改代码,以便它识别文件的新位置在哪里.

这是来自 IdentiscopeServer 的代码(构造函数为空):

public static void main(String[] args) throws Exception {

    //setsup our security manager
    if (System.getSecurityManager() == null){
        System.setSecurityManager(new SecurityManager());
    }

    identiscopeServerApp = new IdentiscopeServerApplication();

    IdentiscopeServer server = new IdentiscopeServer();
    server.getServers().add(Protocol.HTTP,8888);
    server.getDefaultHost().attach("", identiscopeServerApp);
    server.start();

}

我猜要更改的正确行是带有“Protocol.HTTP,8888”的行。如果我的新服务器地址是http://devweb2013.co.uk/research/Identiscope,我该如何设置呢?除了将文件移动到服务器中的文件夹之外,还有其他必要的工作吗?

IdensticopeServerApplication 如下:

public class IdentiscopeServerApplication extends Application {

public IdentiscopeServerApplication() {
}

public Restlet createInboundRoot() {
    Router router = new Router(getContext());

    //attaches the /tweet path to the TweetRest class
    router.attach("/collectionPublic", CollectionPublicREST.class);
    router.attach("/collectionPrivate", CollectionPrivateREST.class);
    router.attach("/analysis", AnalysisREST.class);
    return router;
}
}

提前谢谢你,这是我第一次使用这个框架。

4

1 回答 1

1

如果我理解正确,您只想将 main() 方法作为服务器运行,对吗?在这种情况下,main() 的代码需要位于运行时可以在http://devweb2013.co.uk/research/Identiscope上提供服务的位置。由于您还没有说明要放置代码的服务器类型,因此我无法说出放置代码的最佳位置。我假设您在部署服务器上拥有超级用户权限,因为您提供的 URL 意味着端口 80 将为您的 Identiscope Web 服务提供服务(端口 80 是大多数操作系统上的特权端口)。因此,作为答案,我只能提供一般信息。

在您的部署服务器上,端口 80 必须是空闲的(即,该机器上的端口 80 上没有其他东西可以充当 Web 服务器)并且 IdentiscopeApplication 必须在端口 80 上运行。为此,您只需更改以下行:

server.getServers().add(Protocol.HTTP,8888);

至:

server.getServers().add(Protocol.HTTP, 80);

然后以允许在端口 80 上启动服务器的用户身份运行应用程序(最好不是超级用户)。如果您还没有,您需要在部署服务器上运行 Java,并确保所有 Restlet 库都在您计划运行应用程序的类路径中。

如果我了解您要做什么,那么这应该可以解决问题。

于 2013-09-11T06:04:12.660 回答