gpt4 book ai didi

java - 使用内部 RESTlet 服务器的 RESTlet 应用程序上下文为空

转载 作者:搜寻专家 更新时间:2023-11-01 03:11:55 33 4
gpt4 key购买 nike

我有一个 ReSTLet (2.0.10) 应用程序,我从以下代码开始:

public static void main(final String[] args) {
try {
// Create a new Component
final Component component = new Component();

// Add a new HTTP server listening on port 8182
component.getServers().add(Protocol.HTTP, SERVER_PORT);

// Add a client protocol connector for static files
component.getClients().add(Protocol.FILE);

// Attach the sample application.
component.getDefaultHost().attach("/myApp", new MyApplication(Context.getCurrent()));

// Start the component.
component.start();

} catch (Exception e) {
LOGGER.error(e);
}

}

现在我需要应用程序的根目录(即/myApp),我尝试根据 Java accessing ServletContext from within restlet Resource 获取它:

Client serverDispatcher = context.getServerDispatcher();
ServletContext servletContext = (ServletContext)serverDispatcher.getContext().getAttributes()
.get("org.restlet.ext.servlet.ServletContext");
String contextPath = servletContext.getContextPath();

这在将我的应用程序部署到 Tomcat 服务器时工作得很好,但是一旦我使用如上所示的组件启动服务器,我的上下文就始终为空。有人可以告诉我如何使用 reSTLets 内部服务器功能获得正确初始化的上下文吗?

最佳答案

似乎合乎逻辑。

您需要一个 servlet 上下文,但您没有在 servlet 容器中运行,因此 servlet 上下文为 NULL。

当执行 component.start() 时,您使用的是 ReSTLet 连接器来处理 HTTP/HTTPS 请求,而不是像 Tomcat 这样的 servlet 容器。

关于java - 使用内部 RESTlet 服务器的 RESTlet 应用程序上下文为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8239746/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com