[
https://issues.redhat.com/browse/WFLY-11999?page=com.atlassian.jira.plugi...
]
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 (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.
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 attaches 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}
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)