使用WildFly 8时,将浏览器指向显示localhost:8080默认welcome-content页面的结果.
我想改变这种行为,以便myapplication.war显示.
我的standalone.xml文件目前包含以下默认配置: -
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
Run Code Online (Sandbox Code Playgroud)
我在JBossDeveloper论坛上发现了一些帖子,建议如下: -
<host name="default-host" alias="localhost" default-web-module="name-of-your.war">
Run Code Online (Sandbox Code Playgroud)
只是添加default-web-module参数似乎不起作用,因为welcome-content页面仍然显示.
从该部分中删除location和filter-ref项目将host停止welcome-content显示的页面,但会导致HTTP 404 - Not found错误.
谁能告诉我如何解决这个问题?
由于Undertow在某些基准测试中打破了可伸缩性记录,因此几乎没有什么信息可用于如何将Spring MVC + Spring Security项目从Tomcat迁移到此新容器中。
有人可以提供一些有关如何进行操作的指针吗?
Undertow声称实现了Servlet 3.1规范,并且是相同的容器。
我以前在Jetty中嵌入过Spring,该过程是否相同,或者到目前为止似乎不可能?
我们有一个有效的Apache mod_ssl配置.我想为Undertow启用HTTPS支持,以便它同时监听http和https,从而避免了对Apache的需求.
我查看了Undertow的javadocs.Undertow.Builder类有两个带有以下签名的addHttpsListener方法:
public Builder addHttpsListener(int port, String host,
KeyManager[] keyManagers, TrustManager[] trustManagers);
public Builder addHttpsListener(int port, String host,
SSLContext sslContext) {
Run Code Online (Sandbox Code Playgroud)
所以我似乎可以在使用Builder API引导Undertow时使用这些,例如
Undertow server = Undertow.builder()
.addHttpsListener(8443, "localhost", sslContext)
.build();
Run Code Online (Sandbox Code Playgroud)
我不确定如何创建SSLContext变量,或者如何配置KeyManagers和TrustManagers.拥有mod_ssl正在使用的证书文件,如何继续为Undertow启用HTTPS?
更新:
根据hwellmann的回答,我重用了SslContextFactory.createSslContext()方法.在此之前,我必须将我的公钥/私钥对转换为PKCS12格式并将其导入Java密钥库.
提供SSL转换转换/导入命令(取自此处和此处),希望这对任何人都有用:
# Convert to PKCS12
$ openssl pkcs12 -export -out output_cert.pfx -inkey input_cert.key -in input_cert.crt -certfile intermediate.crt
# Import into Java keystore
$ keytool -v -importkeystore -srckeystore output_cert.pfx -srcstoretype PKCS12 -destkeystore output_store.jks -deststoretype JKS
Run Code Online (Sandbox Code Playgroud) 我有野生飞行8.1服务器运行.我有自己的SessionManager实现io.undertow.server.session.SessionManager.我想配置系统使用我的会话管理器.
我应该在哪里以及如何为会话管理器配置/添加新设置?
我应该如何/应该将一个对象从ContainerRequestFilter传递给(JAX-RS)Resteasy版本3.0.11中的(后匹配)资源,该版本已嵌入并使用Guice?
下面的代码允许我创建一个嵌入式底部servlet服务器,我在设置连接器设置的'max-parameters'时遇到问题,我理解它的方式通常是通过xml文件配置的.
public static String initCustomServer_(Servlet servlet,int preferedPort,String servletName,String[] resourceList,String... domainName){
String contextURL = null;
int curPort = preferedPort==-1?9001:preferedPort;
boolean initServ = false;
System.out.println("====servlet running in local mode====");
while(!initServ) {
try{
io.undertow.servlet.api.DeploymentInfo servletBuilder = io.undertow.servlet.Servlets.deployment()
.setClassLoader(servlet.getClass().getClassLoader())
.setContextPath(domainName.length==0?"/":"/"+domainName[0])
.setDeploymentName("test.war")
.addServlets(
io.undertow.servlet.Servlets.servlet(servletName, servlet.getClass()).addMapping("/"+servletName)
)
.setResourceManager(new io.undertow.server.handlers.resource.FileResourceManager(new File("src/dss_core/HTML5/webapp"), 1));
io.undertow.servlet.api.DeploymentManager manager = io.undertow.servlet.Servlets.defaultContainer().addDeployment(servletBuilder);
manager.deploy();
io.undertow.server.HttpHandler servletHandler = manager.start();
io.undertow.server.handlers.PathHandler path = io.undertow.Handlers.path(io.undertow.Handlers.redirect(domainName.length==0?"/":"/"+domainName[0]))
.addPrefixPath(domainName.length==0?"/":"/"+domainName[0], servletHandler);
io.undertow.Undertow server = io.undertow.Undertow.builder()
.addHttpListener(curPort, "localhost")
.setHandler(path)
.build();
server.start();
initServ = true;
contextURL = "http://localhost:"+curPort+(domainName.length==0?"":"/"+domainName[0])+"/"+servletName;
} catch (Exception ex) { …Run Code Online (Sandbox Code Playgroud) 我试图允许我的游戏客户端下载客户端运行所需的缓存。在我的游戏网络服务器内部我正在这样做:
@RouteManifest(template="/cache", method="GET")
public class APICacheRoute extends RouteHttpHandler<JadePreprocessor> {
@Override
public void handleRequest(HttpServerExchange exchange) throws Exception {
Path path = Paths.get("./cache/Alterscape.zip");
File file = path.toFile();
exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/octet-stream");
exchange.getResponseSender().send(file);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误消息,该文件必须是 ByteBuffer。如何返回文件以供下载?
我的网络服务器如下所示:
public static void initialize() {
ServerController server = new ServerController("localhost", 8080, 8443);
server.register(new APIVirtualHost());
server.inititialize();
}
Run Code Online (Sandbox Code Playgroud)
我的 APIVirtualHost 如下所示:
public APIVirtualHost() {
super(127.0.0.1);
setDirectoryListingEnabled(false);
}
Run Code Online (Sandbox Code Playgroud) 我需要在 WildFly20 服务器响应上将相同的站点 cookie 属性设置为“严格”。我需要通过服务器配置来完成此操作。有什么帮助吗?
如何为 undertow 嵌入式服务器配置 Spring Boot 服务器线程(IO 和 Worker)?提前致谢。