Tag: wildfly 10

Wildfly 10.1消耗所有核心

我们最近将我们的银行应用程序从java 1.6升级到1.8,将jboss 4.x升级到wildfly 10.1。 我们观察到java消耗了机器上可用的所有核心(10)。 有人可以告诉是什么原因,通常使用jboss 4.x最大CPU利用率高达4核心。 我是否需要为垃圾收集配置任何东西? 下面是(添加进程消耗高CPU)的结果 ps -eLo pid,lwp,nlwp,ruser,pcpu,stime,etime,args | grep 3630 下面是每个消耗高CPU的LWP的hex 现在我检查了LWP 7914的线程转储 “default task-7”#182 prio = 5 os_prio = 0 tid = 0x00007f5c24033800 nid = 0x1c1a runnable [0x00007f5bb85e5000] java.lang.Thread.State:RUNNABLE at org.xnio.conduits.ConduitStreamSinkChannel.write(ConduitStreamSinkChannel.java:150) at io.undertow.channels.DetachableStreamSinkChannel.write(DetachableStreamSinkChannel.java:240)at io.undertow.server.HttpServerExchange $ WriteDispatchChannel.write(HttpServerExchange.java:2028)at io.undertow.servlet.spec.ServletOutputStreamImpl.writeBufferBlocking(ServletOutputStreamImpl .java:563)在i.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:216)的java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)java.io.BufferedOutputStream.write(BufferedOutputStream。 java:95) – 在javax.servlet.http.HttpServlet.service(HttpServlet)的com.eko.app.offlineKyc.servlet.KycPictureServlet.doGet(KycPictureServlet.java:58)上锁定(一个java.io.BufferedOutputStream) .java:687)在javax.servlet.http.HttpServl et.service(HttpServlet.java:790)at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)at io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter(FilterHandler.java:129) at com.eko.framework.CrossScriptingFilter.doFilter(CrossScriptingFilter.java:48)at […]

如何从WildFly中取消部署所有工件?

我正在开发一个Web应用程序并使用IntelliJ部署到WildFly 10.1。 我最近重命名了我的webapp模块,这导致我的war文件从foo.war重命名为bar.war 。 每次我启动时,都会收到此错误: 12:24:15,899 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit.”foo_war_exploded.war”.STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit.”foo_war_exploded.war”.STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment “foo_war_exploded.war” at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0160: Failed to mount deployment content at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:95) at […]

如何在Keycloak身份validation之前调用javax.servlet.Filter

我们使用resteasy开发了一个REST API。 (部署在wildfly 10中) 基本上这些REST API是从另一个应用程序内部调用的,端点是用keycloak保护的。 但是一个端点暴露给外部方(该端点也使用keycloak保护)。 但由于外部方无法提供Keycloak Autherization代码,我们已经完成了一个实现,其中客户端使用应用程序生成的auth_key进行注册,客户端将使用该auth_key调用端点。 然后在webfilter(javax.servlet.Filter)中,使用tha auth_key我们获得相关的keycloak authntication Bearer令牌。 如果需要(例如:令牌已过期),我们也会调用Keycloak Server。 收到后,我们将Autherization令牌添加到Webfilter中的httpRequest并继续到终点应用程序。 但问题是, 在Web Filter之前调用KeyCloak身份validation 。 我正在寻找的是“如何在密钥泄露认证之前调用Webfilter?” 编辑: 现在我正试图找到这里提到的方法。 在Keycloak中进行身份validation之前将请求标头设置为请求 。 我可以在身份validation发生之前接听电话。 但是我无法在那里设置请求标头。 web.xml中 Restful Web Application resteasy.scan true keycloak.config.resolver package.to.HeaderBasedKeycloakConfigResolver REST endpoints /ep-name/resource-name resource-name KEYCLOAK realm-name role-name-for-resource-1 role-name-for-resource-2 org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap resteasy-servlet org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher resteasy.servlet.mapping.prefix /ep-name resteasy-servlet /ep-name/* WebFilter package.to.filter.WebFilter WebFilter /desired-ep-name/*

获取事务已在另一个线程exception中回滚

所以我在Wildfly 10 Application Server中配置了2个xa-datsource,我使用的是Hibernate ORM 5.2.9。 DB是Postgres 9.6 在我的应用程序中,我有一个EJB,它有2个嵌套for循环,我必须在嵌套循环的每次迭代中从表中读取数据。 但过了一段时间我才得到这个例外 javax.ejb.EJBTransactionRolledbackException:org.hibernate.HibernateException:事务在另一个线程中回滚! 我不明白为什么会这样。 我有一个小概念validation应用程序,它使用JDBC连接到数据库,一切正常。 编辑这是我提到的exception抛出后的堆栈跟踪: 12:39:07,319 WARN [com.arjuna.ats.arjuna](默认任务-7)ARJUNA012077:Abort调用已经中止的primefaces动作0:ffffac280184:2edc54df:598adfb2:27f 12:39:07,320 ERROR [org.jboss。 as.ejb3.invocation](默认任务-7)WFLYEJB0034:对于方法public void com.actuariado.smartsolve.services.api.calculation.CalculationResource.calculateFinancial(org.jboss.resteasy.plugins),组件ejb / calculationResource上的EJB调用失败。 providers.multipart.MultipartFormDataInput)抛出com.actuariado.smartsolve.exceptions.AppException:javax.ejb.EJBTransactionRolledbackException:事务在org.jboss.as.ejb3.tx.CMTTxInterceptor.handleEndTransactionException(CMTTxInterceptor.java:137)回滚到org。位于org.jboss.as.ejb3.tx的org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:279)的jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:117)。位于org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvoca的CMTTxInterceptor.required(CMTTxInterceptor.java:327) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)at org(CMTTxInterceptor.java:239) .jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext) .java:340)org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)org.jboss.as。位于org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory $ 1.proces的org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)的ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)中的orInv.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)中的sInvocation(ShutDownInterceptorFactory.java:64)位于org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java)的org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)中的.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) :340)org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)org.jboss.invocation。 org.wboss.invocation.InterceptorContext.run上的org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)中的ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)org.wildfly.secu上的org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356) org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)中的org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)中的rity.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636) .jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)位于org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)的org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80) org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)位于org.jboss.as.ee.component的org.jboss.as.ee.component.ViewService $ View.invoke(ViewService.java:198)。位于org.jboss的org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)中的ViewDescription $ 1.processInvocation(ViewDescription.java:185)。 as.ee.component.ProxyInvoc ationHandler.invoke(ProxyInvocationHandler.java:73)位于sun.reflect的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的com.actuariado.smartsolve.services.api.calculation.CalculationResource $$$ view200.calculateFinancial(未知来源) .nativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)位于org.jboss.resteasy的java.lang.reflect.Method.invoke(Method.java:498)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)。 core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249) org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:209)org.jboss.r 位于org.jboss.resteasy.plugins的org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)中的esteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)。位于io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)的javax.servlet.http.HttpServlet.service(HttpServlet.java:790)中的server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)在io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)处于org.wildfly.extension.undertow.security的io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) .SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(S) […]

如何在Wildfly / Jboss中部署耳朵时防止HTTP 404

我们使用WildFly 10作为我们的应用程序服务器并通过Docker进行部署(在WF中部署是普通的热部署)。 我们没有使用WildFly的集群机制,而只是在前面安装了负载平衡器(HAProxys)。 问题是WF在EAR部署仍在进行时打开其HTTP端口。 这(当然?)会导致HTTP 404错误,我们不想在LB中专门处理这些错误。 这可能会导致漏报…… 有没有办法在EAR成功启动后才允许HTTP连接? 或者可以替换“404因为没有在这里部署” – 错误与“503服务不可用”? 这样可以更好地表达问题并且易于外部处理……

在WildFly 10中添加jar作为部署

有没有办法,我们可以像在weblogic服务器中那样在WildFly 10部署jar作为库/部署? 或者我们可以将jar放在服务器的任何文件夹中并定义provided依赖项吗?

在Wildfly 10应用程序中使用jboss-client.jar的最佳方法是什么?

我有一个Wildfly 10 ear应用程序(在服务器容器中运行),它需要能够发布到另一个wildfly服务器上托管的远程队列。 为此,我将此jar从wildfly \ bin \ client文件夹复制到ear的lib文件夹中。 这工作得很好。 但是现在,在官方打包之后,当我启动Wildfly和应用程序时,我收到一条错误消息……关于这个jar的清单文件。 设置应用程序的最佳方法是什么,以便各种类加载器找到这个jar? 似乎jar可以复制到ear \ lib,但是需要对manifest文件做些什么? 什么? 我假设另一个选择是在standalone-full.xml中指定一些东西,告诉wildfly类加载器在其类路径中包含wildfly / bin / client文件夹。 那你怎么样? 第三,我假设文件只能被复制粘贴到已经在wildfly类路径中的文件夹中。 第四个选项,我假设是在我的耳朵上添加一些产生pom.xml的东西,它会将这个jar添加到ear / lib …. 最好的方法是什么? 我得到的错误是: 14:54:45,578 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit.”InSyncEar.ear”.STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit.”InSyncEar.ear”.STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment “InSyncEar.ear” at […]

如何在WildFly 10中动态更改JMS队列MDB池大小

我正在使用WildFly 10.1,它与Artemis一起作为新的JMS提供程序提供,但我无法找到如何动态更改特定MDB的使用者线程数。 我有一个队列,消息监听器(MDB)消耗来自队列的消息,现在我想动态控制域必须启动的最大消费者线程数。 如何使用CLI执行此操作?