- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在主类中有 webAppContext,我有一个 servlet,它有 WebServlet 注释和带参数的构造函数。我如何将参数从主类传递到 Servlet?
主要.java:
String webappDirLocation = "src/main/java/frontend/webapp/";
WebAppContext webAppContext = new WebAppContext();
webAppContext.setResourceBase("public_html");
webAppContext.setContextPath("/");
webAppContext.setDescriptor(webappDirLocation + "WEB-INF/web.xml");
webAppContext.setConfigurations(new Configuration[]{
new AnnotationConfiguration(), new WebXmlConfiguration(),
new WebInfConfiguration(),
new PlusConfiguration(),
new MetaInfConfiguration(),
new FragmentConfiguration(),
new EnvConfiguration()}
);
webAppContext.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", ".*/classes/.*");
webAppContext.setParentLoaderPriority(true);
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="false"
version="3.0">
</web-app>
小服务程序:
@WebServlet(name = "WebSocketGameServlet", urlPatterns = {"/gameplay"})
public class WebSocketGameServlet extends WebSocketServlet {
static final Logger logger = LogManager.getLogger(GameWebSocket.class);
private final static int IDLE_TIME = 6000 * 1000;
private AccountService accountService;
private Game game;
private WebSocketService webSocketService;
public WebSocketGameServlet(AccountService accountService, Game game, WebSocketService webSocketService) {
this.accountService = accountService;
this.game = game;
this.webSocketService = webSocketService;
}
@Override
public void configure(WebSocketServletFactory factory) {
factory.getPolicy().setIdleTimeout(IDLE_TIME);
factory.setCreator(new GameWebSocketCreator(accountService, game, webSocketService));
}
}
最佳答案
嗯,据我了解,您使用 JavaSE 和嵌入式 Jetty 创建了 Web 应用程序。您使用注释将 servlet 添加到您的服务器。然后 Jetty 创建它调用默认构造函数的 servlet。但是您需要以某种方式将链接传递给您在 main()
中创建的对象到您的 servlet。
所以,有几种解决方案:
Map<Class<?>, Object>
的上下文。并将它们放入 servlet 中。main()
并由网络服务器管理。附言 jetty 服务器有方法 addBean(...)
.您可以将“bean”添加到服务器(在代码或配置中)。但据我所知,不可能在 servlet 中获取此 bean。
关于java - WebAppContext 将参数传递给 servlet 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32534278/
我正在尝试与 maven 开始一个新的项目 war ,并进入 Spring Tool Suite IDE,我从 Git Hub 下载了该项目,该项目是在 mac 上制作的,我正在 Windows 中工
我正在尝试创建一个 Apache Archiva 2.0 实例。我可以在家里的盒子(Ubuntu 13)上从命令行成功运行独立程序:archiva2.0/bin/archiva console...但
我正在尝试使用 Web 上下文启动 Jetty 服务器。我传递的 web.xml 包含一个自定义类(出于不同的原因)在执行下面代码的代码的类路径上。我希望 Jetty 无法找到 web.xml 中指定
我正在开发一个 Web 应用程序,当我在 Eclipse 下开发时,我运行 Jetty 作为开发和测试环境。 当我对 Java 类进行更改时,Eclipse 会自动将它们编译到构建目录中,但是在我停止
我正在嵌入式 Jetty WebAppContext contextPath 中寻找通配符支持,但无法找到任何支持。我的购物网络应用程序有以下代码: String path = "/shopping"
我正在尝试使用嵌入式实例运行我的 spring MVC。我发现这个问题:Jetty Embedded Spring application 我使用的jetty版本:7.6.2.v20120308,ja
我有一个嵌入式 jetty 服务器,它通过来自许多不同位置的 webapps 列表(该列表因部署而异)进行迭代。我正在尝试从基本身份验证过渡到表单例份验证。 我想做的是: // create cons
我在主类中有 webAppContext,我有一个 servlet,它有 WebServlet 注释和带参数的构造函数。我如何将参数从主类传递到 Servlet? 主要.java: String we
我这样创建 Grizzly WebappContext: WebappContext webContext = new WebappContext("WebappContext", ""); 我有 M
尝试从 Eclipse 运行码头时,我遇到了一个奇怪的情况。我将旧项目从 jetty 7 更新为 jetty 9.3.7.v20160115。但是,现在在启动 jetty:run with m2ecl
我正在开发的 Jetty 9 应用程序会自动扫描一组 JarFiles 以查找 web.xml,然后以编程方式将包含的 webapps 导入为 WebAppContexts。我需要在各个 Web 应用
我正在使用 Maven Jetty 插件,有没有办法在任何 bean 失败时阻止服务器启动或关闭(例如使用 maven-jetty-plugin)? 这是一个例子: 2013-04-22 11:43:
我有一个嵌入式 jetty 服务器,可以热部署网络应用程序。在部署其他war时,我在目录下添加了一个deployment descriptor.xml来配置webappcontext。我希望将在另一个
是否可以同时运行 WebSocketHandler 和 WebAppContext?我使用的是最新版本 9.2.1.v20140609。我尝试了下面的配置,但是在 Websocket 调用 local
我正在将 Jetty(版本 7.4.5.v20110725)嵌入到 Java 应用程序中。我正在使用 Jetty 的 WebAppContext 在 ./webapps/jsp/中提供 JSP 页面,
嗨,我有以下配置。 org.mortbay.jetty jetty-maven-plugin 8.1.3.v20120416 在我的 jetty-env.xml 我有
我正在尝试设置一个嵌入式 jetty 9 实例,它从 .war 文件中获取注释。 到目前为止,它成功运行了,例如GeoServer.war(通过将 ExtractWars 设置为 True),但在 A
我尝试使用: Java 11 RestEasy 4.1.0.Final Jetty 9.4.19.v20190610 来自 https://raw.github.com/gretty-gradle-p
我一直在尝试为 Jetty 配置 c3p0 db 连接池,但我不断收到 ClassNotFoundException: 2010-03-14 19:32:12.028:WARN::Failed sta
我有一个使用 maven 和 jetty 的非常简单的 webapp 项目,到目前为止一直运行良好。但是现在我需要使用 JNDI 设置 MySQL 连接池,因为数据库连接总是超时。 这里首先是我的po
我是一名优秀的程序员,十分优秀!