我在 Wildfly 启动期间收到错误,并显示以下消息:
NoSuchFieldError:EMPTY_BYTE_ARRAY
该消息还指出,此错误发生在 undertow 部署中。有人能给我提示一下这里发生了什么以及如何解决这个问题吗?
下面是堆栈跟踪的开头。
at org.wildfly.extension.undertow@24.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:90)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:829)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.JBossThread.run(JBossThread.java:513)
Run Code Online (Sandbox Code Playgroud)
引起的:java.lang.NoSuchFieldError:EMPTY_BYTE_ARRAY在deployment.taggable-server.war//org.apache.logging.log4j.core.config.ConfigurationSource.(ConfigurationSource.java:56)在deployment.taggable-server.war/ /org.apache.logging.log4j.core.config.NullConfiguration.(NullConfiguration.java:32) 在deployment.taggable-server.war //org.apache.logging.log4j.core.LoggerContext.(LoggerContext.java:85 )在deployment.taggable-server.war //org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:254)在deployment.taggable-server.war //org.apache.logging.log4j .core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:218) 在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:136) 在部署时。 taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:123) 在deployment.taggable-server.war//org.apache.logging.log4j.core.selector .ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:117) 在deployment.taggable-server.war //org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:150) 在deployment.taggable-server。战争//org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)在org.apache.logging.log4j.api@2.14.1//org.apache.logging.log4j.LogManager .getContext(LogManager.java:196) 在 org.apache.logging.log4j.api@2.14.1//org.apache.logging.log4j.LogManager.getLogger(LogManager.java:599)
我不明白为什么我的其余 api 端点在 openapi/ui 中使用 openliberty 不可见/可执行。openapi/ui 报告“规范中没有定义任何操作!” 我的项目由一个空的应用程序类和一个具有单个端点的简单休息控制器组成:
package sandbox.io.rest;
import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;
@ApplicationPath("/api")
public class RestApplication extends Application { }
Run Code Online (Sandbox Code Playgroud)
package sandbox.io.rest;
import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Response;
@ApplicationScoped
public class RestController
{
@GET
@Path("/system/properties")
@Produces(APPLICATION_JSON)
public Response getSystemProperties()
{
return Response.ok(System.getProperties()).build();
}
}
Run Code Online (Sandbox Code Playgroud)
我在 server.xml 中激活了以下功能:
<featureManager>
<feature>jakartaee-9.1</feature>
<feature>microProfile-5.0</feature>
<!-- <feature>restfulWS-3.0</feature> -->
<!-- <feature>jsonp-2.0</feature> -->
<!-- <feature>jsonb-2.0</feature> -->
<!-- <feature>cdi-3.0</feature> -->
<!-- <feature>mpConfig-3.0</feature> -->
<!-- <feature>mpRestClient-3.0</feature> -->
<!-- <feature>mpOpenAPI-3.0</feature> …Run Code Online (Sandbox Code Playgroud) 我是 vaadin 的新手,目前正在探索 vaadin 24。为什么这个简单的网格没有显示?
public class MainView extends VerticalLayout {
public MainView() {
Grid<String> grid = new Grid<>();
grid.setSizeFull();
grid.addColumn(s->s);
grid.setItems("foo");
add(grid);
}
Run Code Online (Sandbox Code Playgroud)
这个问题很久以前就被问过,但我找不到可行的解决方案。在 Firefox 和 Edge 中,网格显示为水平线。我已经尝试setSizeFull()过包含VerticalLayout(上面的代码中未显示)并将网格“包装”到Div. 我缺少什么?