错误:
17:42:50,333 INFO [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) starting
17:42:50,732 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:131)
at org.jboss.as.server.ServerService.boot(ServerService.java:356)
at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:299)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,1]
Message: Unexpected element '{urn:jboss:domain:4.2}server'
at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:108)
at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69)
at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123)
... 3 more
17:42:50,733 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for …Run Code Online (Sandbox Code Playgroud) 带有 Angular 7 UI 的 JBoss 7.1.5 EAP 后端。
我需要让 JBoss 了解 UI 的路由,但将它们全部重写到 UI 的索引页,以便通过 Angular 进行路由。
该项目的结构如下:
webapp/
WEB-INF/
undertow-handlers.conf
web.xml
...etc
login/
background.jpg
login.jsp
index.jsp
assets/*
...html
...js
...css
Run Code Online (Sandbox Code Playgroud)
index.jsp只是response.sendRedirect("index.html")s,其中 index.html 是 Angular CLI 生成的资产的一部分。JavaScript 和 HTML 由 提供webapp/,图像由webapp/assets/.
从standalone-full.xml
<subsystem xmlns="urn:jboss:domain:undertow:4.0">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="http" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost,workstation">
<location name="/" handler="welcome-content"/>
<filter-ref name="request-dumper"/>
</host>
</server>
<servlet-container name="default">
<jsp-config x-powered-by="false"/>
<websockets/>
</servlet-container>
<handlers> …Run Code Online (Sandbox Code Playgroud) 有没有办法配置 Wildfly(10 个或更多)发送到客户端的 Http 标头仅配置以下内容:
HTTPS 严格传输安全 (HSTS) X-XSS-Protection X-Frame-Options Strict-Transport-Security Content-Security-Policy X-Content-Type-Options
我有一个配置文件(standalone.xml),其中包含所有配置。我需要在这里添加标题的配置。
我现在看看一个springboot下载,并不是很清楚(对我来说)如何将传入的http请求分派给工作线程以阻止操作处理.
看看UndertowEmbeddedServletContainer.class类,看起来没有办法让这种行为,因为唯一的HttpHandler是一个ServletHandler,允许@Controller配置
private Undertow createUndertowServer() {
try {
HttpHandler servletHandler = this.manager.start();
this.builder.setHandler(getContextHandler(servletHandler));
return this.builder.build();
}
catch (ServletException ex) {
throw new EmbeddedServletContainerException(
"Unable to start embdedded Undertow", ex);
}
}
private HttpHandler getContextHandler(HttpHandler servletHandler) {
if (StringUtils.isEmpty(this.contextPath)) {
return servletHandler;
}
return Handlers.path().addPrefixPath(this.contextPath, servletHandler);
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,在进程中,所有请求都由IO-Thread处理,用于非阻塞操作.这是否意味着每个@Controller执行都将由非阻塞线程处理?或者是否有从IO-THREAD或WORKER-THREAD中选择的解决方案?
我尝试编写一个解决方法,但这段代码非常流畅,也许有人有更好的解决方案:
BlockingHandler.class
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface BlockingHandler {
String contextPath() default "/";
}
Run Code Online (Sandbox Code Playgroud)
UndertowInitializer.class
public class UndertowInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
configurableApplicationContext.addBeanFactoryPostProcessor(new UndertowHandlerPostProcessor());
}
} …Run Code Online (Sandbox Code Playgroud) 当我在Java程序中“ mvn exec:java”时,将端口设置为80时遇到问题,但是8080可以成功。
Undertow server = Undertow.builder()
.addHttpListener(80, "localhost")
.setHandler(path)
.build();
server.start();
Run Code Online (Sandbox Code Playgroud)
当我将其设置为80时,出现了类似的异常
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.net.SocketException: Permission denied
at io.undertow.Undertow.start(Undertow.java:141)
at cc.cmu.edu.Q1.Q1Controller.main(Q1Controller.java:46)
... 6 more
Caused by: java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:175)
at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:242)
at io.undertow.Undertow.start(Undertow.java:120)
... 7 more
Run Code Online (Sandbox Code Playgroud) Keycloak的默认端口曾经是8080.现在当我开始使用keycloak时
./bin/standalone.sh
然后它开始在9990端口.//所以我想现在keycloak的默认端口是9990.
但有趣的是,每当我给出如下明确的keycloak端口时:
./bin/standalone.sh -Djboss.socket.binding.port-offset=8080
Run Code Online (Sandbox Code Playgroud)
在此密钥泄露开始于端口17101之后.太奇怪了.
我正在努力在8080端口上启动keycloak .我怎样才能做到这一点?
还有一件事 :
令人惊讶的是,在8080端口上运行了一个名为underow的东西.当我尝试启动keycloak时,我可以在stacktrace中跟踪它:
YUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
Run Code Online (Sandbox Code Playgroud) undertow ×6
jboss ×2
wildfly ×2
http-headers ×1
java ×1
jboss7.x ×1
keycloak ×1
maven ×1
port ×1
security ×1
spring-boot ×1
spring-mvc ×1
wildfly-10 ×1
worker ×1