[jboss-jira] [JBoss JIRA] (WFLY-11999) Wildfly creates to many instances of all web service classes
Stefan Frings (Jira)
issues at jboss.org
Tue Jun 2 02:01:01 EDT 2020
[ https://issues.redhat.com/browse/WFLY-11999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14129410#comment-14129410 ]
Stefan Frings edited comment on WFLY-11999 at 6/2/20 2:00 AM:
--------------------------------------------------------------
Thanks for your answer.
This example code is a minimalized extract from a larger application. First we had a SOAP interface only but later decided to add a Java interface as well for performance reason. I thought that I have to add the @ApplicationScoped (or any other scope) to make this class injectable.
But as you wrote, it works also without it. So thanks for that, it solves the issue partially.
The test program is now reduced to:
{code}
package com.mvneco.test;
import javax.jws.WebMethod;
import javax.jws.WebService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@WebService
public class SoapService
{
private Log log = LogFactory.getLog(SoapService.class);
public SoapService()
{
log.debug("Init SoapService 1");
}
@WebMethod
public String test(String payload)
{
log.debug("Start test(). payload="+payload);
return "OK";
}
}
{code}
There is no other file (beside the pom.xml of course). I still get multiple log messages about the initialization:
{code}
2020-06-02 07:55:24,908 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0027: Starting deployment of "Test-1.0-SNAPSHOT.war" (runtime-name: "Test-1.0-SNAPSHOT.war")
2020-06-02 07:55:24,913 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-7) WFLYDS0013: Started FileSystemDeploymentService for directory /home/sfrings/wildfly/standalone/deployments
2020-06-02 07:55:25,653 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0006: Undertow HTTPS listener https listening on 127.0.0.1:8443
2020-06-02 07:55:25,797 INFO [org.jboss.ws.common.management] (MSC service thread 1-2) JBWS022052: Starting JBossWS 5.2.4.Final (Apache CXF 3.2.7)
2020-06-02 07:55:26,274 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-7) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.mariadb.jdbc.Driver (version 2.4)
2020-06-02 07:55:26,332 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0018: Started Driver service with driver-name = mariadb-java-client-2.4.1.jar
2020-06-02 07:55:26,493 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcopayDS
2020-06-02 07:55:26,493 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcocoreDS
2020-06-02 07:55:26,501 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcobillDS
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jboss.invocation.proxy.AbstractProxyFactory$1 (jar:file:/home/sfrings/wildfly/modules/system/layers/base/org/jboss/invocation/main/jboss-invocation-1.5.2.Final.jar!/) to method java.lang.Object.clone()
WARNING: Please consider reporting this to the maintainers of org.jboss.invocation.proxy.AbstractProxyFactory$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2020-06-02 07:55:26,654 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-5) JBWS024061: Adding service endpoint metadata: id=com.mvneco.test.SoapService
address=http://localhost:8080/Test-1.0-SNAPSHOT/SoapService
implementor=com.mvneco.test.SoapService
serviceName={http://test.mvneco.com/}SoapServiceService
portName={http://test.mvneco.com/}SoapServicePort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
2020-06-02 07:55:26,766 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Infinity Minus ONE +2' 9.4.8.Final
2020-06-02 07:55:27,491 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 66) WFLYCLINF0002: Started client-mappings cache from ejb container
2020-06-02 07:55:27,523 DEBUG [com.mvneco.test.SoapService] (MSC service thread 1-5) Init SoapService 1 <<<<<<<<<<<<<<<<<
2020-06-02 07:55:27,592 INFO [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-5) Creating Service {http://test.mvneco.com/}SoapServiceService from class com.mvneco.test.SoapService
2020-06-02 07:55:27,912 INFO [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-5) Setting the server's publish address to be http://localhost:8080/Test-1.0-SNAPSHOT/SoapService
2020-06-02 07:55:27,975 INFO [org.jboss.ws.cxf.deployment] (MSC service thread 1-5) JBWS024074: WSDL published to: file:/home/sfrings/wildfly/standalone/data/wsdl/Test-1.0-SNAPSHOT.war/SoapServiceService.wsdl
2020-06-02 07:55:28,037 INFO [org.jboss.as.webservices] (MSC service thread 1-2) WFLYWS0003: Starting service jboss.ws.endpoint."Test-1.0-SNAPSHOT.war"."com.mvneco.test.SoapService"
2020-06-02 07:55:28,213 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 66) WFLYUT0021: Registered web context: '/Test-1.0-SNAPSHOT' for server 'default-server'
2020-06-02 07:55:28,259 INFO [org.jboss.as.server] (ServerService Thread Pool -- 39) WFLYSRV0010: Deployed "Test-1.0-SNAPSHOT.war" (runtime-name : "Test-1.0-SNAPSHOT.war")
2020-06-02 07:55:28,259 INFO [org.jboss.as.server] (ServerService Thread Pool -- 39) WFLYSRV0010: Deployed "mariadb-java-client-2.4.1.jar" (runtime-name : "mariadb-java-client-2.4.1.jar")
2020-06-02 07:55:28,384 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
2020-06-02 07:55:28,387 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
2020-06-02 07:55:28,394 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
2020-06-02 07:55:28,394 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 16.0.0.Final (WildFly Core 8.0.0.Final) started in 8988ms - Started 456 of 647 services (334 services are lazy, passive or on-demand)
2020-06-02 07:56:42,513 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1 <<<<<<<<<<<<<<<<<<<<
2020-06-02 07:56:42,518 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1 <<<<<<<<<<<<<<<<<<<<
2020-06-02 07:56:42,518 DEBUG [com.mvneco.test.SoapService] (default task-1) Start test(). payload=?
{code}
The message "Init SoapService 1" occurs 3 times.
was (Author: s.frings74):
Thanks for your answer.
This example code is a minimalized extract from a larger application. First we had a SOAP interface only but later decided to add a Java interface as well for performance reason. I thought that I have to add the @ApplicationScoped (or any other scope) to make this class injectable.
But as you wrote, it works also without it. So thanks for that, it solves the issue partially.
The test program is now reduced to (only this one file):
{code}
package com.mvneco.test;
import javax.jws.WebMethod;
import javax.jws.WebService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@WebService
public class SoapService
{
private Log log = LogFactory.getLog(SoapService.class);
public SoapService()
{
log.debug("Init SoapService 1");
}
@WebMethod
public String test(String payload)
{
log.debug("Start test(). payload="+payload);
return "OK";
}
}
{code}
I still get multiple log messages about the initialization:
{code}
2020-06-02 07:55:24,908 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0027: Starting deployment of "Test-1.0-SNAPSHOT.war" (runtime-name: "Test-1.0-SNAPSHOT.war")
2020-06-02 07:55:24,913 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-7) WFLYDS0013: Started FileSystemDeploymentService for directory /home/sfrings/wildfly/standalone/deployments
2020-06-02 07:55:25,653 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0006: Undertow HTTPS listener https listening on 127.0.0.1:8443
2020-06-02 07:55:25,797 INFO [org.jboss.ws.common.management] (MSC service thread 1-2) JBWS022052: Starting JBossWS 5.2.4.Final (Apache CXF 3.2.7)
2020-06-02 07:55:26,274 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-7) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.mariadb.jdbc.Driver (version 2.4)
2020-06-02 07:55:26,332 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0018: Started Driver service with driver-name = mariadb-java-client-2.4.1.jar
2020-06-02 07:55:26,493 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcopayDS
2020-06-02 07:55:26,493 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcocoreDS
2020-06-02 07:55:26,501 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0098: Bound non-transactional data source: java:jboss/datasources/EcobillDS
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jboss.invocation.proxy.AbstractProxyFactory$1 (jar:file:/home/sfrings/wildfly/modules/system/layers/base/org/jboss/invocation/main/jboss-invocation-1.5.2.Final.jar!/) to method java.lang.Object.clone()
WARNING: Please consider reporting this to the maintainers of org.jboss.invocation.proxy.AbstractProxyFactory$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2020-06-02 07:55:26,654 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-5) JBWS024061: Adding service endpoint metadata: id=com.mvneco.test.SoapService
address=http://localhost:8080/Test-1.0-SNAPSHOT/SoapService
implementor=com.mvneco.test.SoapService
serviceName={http://test.mvneco.com/}SoapServiceService
portName={http://test.mvneco.com/}SoapServicePort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
2020-06-02 07:55:26,766 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Infinity Minus ONE +2' 9.4.8.Final
2020-06-02 07:55:27,491 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 66) WFLYCLINF0002: Started client-mappings cache from ejb container
2020-06-02 07:55:27,523 DEBUG [com.mvneco.test.SoapService] (MSC service thread 1-5) Init SoapService 1 <<<<<<<<<<<<<<<<<
2020-06-02 07:55:27,592 INFO [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-5) Creating Service {http://test.mvneco.com/}SoapServiceService from class com.mvneco.test.SoapService
2020-06-02 07:55:27,912 INFO [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-5) Setting the server's publish address to be http://localhost:8080/Test-1.0-SNAPSHOT/SoapService
2020-06-02 07:55:27,975 INFO [org.jboss.ws.cxf.deployment] (MSC service thread 1-5) JBWS024074: WSDL published to: file:/home/sfrings/wildfly/standalone/data/wsdl/Test-1.0-SNAPSHOT.war/SoapServiceService.wsdl
2020-06-02 07:55:28,037 INFO [org.jboss.as.webservices] (MSC service thread 1-2) WFLYWS0003: Starting service jboss.ws.endpoint."Test-1.0-SNAPSHOT.war"."com.mvneco.test.SoapService"
2020-06-02 07:55:28,213 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 66) WFLYUT0021: Registered web context: '/Test-1.0-SNAPSHOT' for server 'default-server'
2020-06-02 07:55:28,259 INFO [org.jboss.as.server] (ServerService Thread Pool -- 39) WFLYSRV0010: Deployed "Test-1.0-SNAPSHOT.war" (runtime-name : "Test-1.0-SNAPSHOT.war")
2020-06-02 07:55:28,259 INFO [org.jboss.as.server] (ServerService Thread Pool -- 39) WFLYSRV0010: Deployed "mariadb-java-client-2.4.1.jar" (runtime-name : "mariadb-java-client-2.4.1.jar")
2020-06-02 07:55:28,384 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
2020-06-02 07:55:28,387 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
2020-06-02 07:55:28,394 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
2020-06-02 07:55:28,394 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 16.0.0.Final (WildFly Core 8.0.0.Final) started in 8988ms - Started 456 of 647 services (334 services are lazy, passive or on-demand)
2020-06-02 07:56:42,513 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1 <<<<<<<<<<<<<<<<<<<<
2020-06-02 07:56:42,518 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1 <<<<<<<<<<<<<<<<<<<<
2020-06-02 07:56:42,518 DEBUG [com.mvneco.test.SoapService] (default task-1) Start test(). payload=?
{code}
The message "Init SoapService 1" occurs 3 times.
> Wildfly creates to many instances of all web service classes
> ------------------------------------------------------------
>
> Key: WFLY-11999
> URL: https://issues.redhat.com/browse/WFLY-11999
> Project: WildFly
> Issue Type: Bug
> Components: Web Services
> Affects Versions: 8.0.0.Final, 16.0.0.Final, 19.0.0.Final
> Environment: Ubuntu 18.10 64bit, Open JDK 8 or Open JDK 11
> Reporter: Stefan Frings
> Assignee: Parul Sharma
> Priority: Minor
> Attachments: Test-1.0-SNAPSHOT.war, Test.zip, standalone.xml
>
>
> 1) My @Webservice classes are all constructed multiple times (3x - 4x) but I expected only one instance.
> 2) Only the second instance receives a call to the observer method for initialization. I expect that this method is called in each instance.
> The issue can be reproduced with the attached minimum project on Wildfly 8 with JDK 8 as well as Wildfly 16 with JDK 11.
> Complete source code of the whole application:
> {code}
> package com.mvneco.test;
> import javax.enterprise.context.ApplicationScoped;
> import javax.enterprise.context.Initialized;
> import javax.enterprise.event.Observes;
> import javax.jws.WebMethod;
> import javax.jws.WebService;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> @ApplicationScoped
> @WebService
> public class SoapService
> {
> private Log log = LogFactory.getLog(SoapService.class);
> public SoapService()
> {
> log.debug("Init SoapService 1");
> }
> @WebMethod(exclude = true)
> public void init(@Observes @Initialized(ApplicationScoped.class) Object init)
> {
> log.debug("Init SoapService 2");
> }
> @WebMethod
> public String test(String payload)
> {
> log.debug("Start test(). payload="+payload);
> return "OK";
> }
> }
> {code}
> Extract from Log messages that show the issue (the complete log is in the attached ZIP):
> {code}
> 2019-04-17 13:12:21,399 DEBUG [com.mvneco.test.SoapService] (MSC service thread 1-2) Init SoapService 1
> 2019-04-17 13:12:23,068 DEBUG [com.mvneco.test.SoapService] (ServerService Thread Pool -- 74) Init SoapService 1
> 2019-04-17 13:12:23,070 DEBUG [com.mvneco.test.SoapService] (ServerService Thread Pool -- 74) Init SoapService 2
> 2019-04-17 13:12:23,475 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 16.0.0.Final (WildFly Core 8.0.0.Final) started in 10514ms - Started 510 of 699 services (337 services are lazy, passive or on-demand)
> 2019-04-17 13:12:28,920 INFO [org.apache.cxf.services.SoapService.REQ_IN] (default task-1) REQ_IN
> Address: http://localhost:8080/Test-1.0-SNAPSHOT/SoapService
> ...
> 2019-04-17 13:12:28,932 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1
> 2019-04-17 13:12:28,937 DEBUG [com.mvneco.test.SoapService] (default task-1) Init SoapService 1
> 2019-04-17 13:12:28,937 DEBUG [com.mvneco.test.SoapService] (default task-1) Start test(). payload=?
> 2019-04-17 13:12:28,969 INFO [org.apache.cxf.services.SoapService.RESP_OUT] (default task-1) RESP_OUT
> Content-Type: text/xml
> ...
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jboss-jira
mailing list