[jboss-jira] [JBoss JIRA] (WFLY-11999) Wildfly creates to many instances of all web service classes

Stefan Frings (Jira) issues at jboss.org
Wed Apr 17 10:42:00 EDT 2019


     [ https://issues.jboss.org/browse/WFLY-11999?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Frings updated WFLY-11999:
---------------------------------
    Description: 
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}

  was:
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}



> Wildfly creates to many instances of all web service classes
> ------------------------------------------------------------
>
>                 Key: WFLY-11999
>                 URL: https://issues.jboss.org/browse/WFLY-11999
>             Project: WildFly
>          Issue Type: Bug
>          Components: EE
>    Affects Versions: 8.0.0.Final, 16.0.0.Final
>         Environment: Ubuntu 18.10 64bit, Open JDK 8 or Open JDK 11
>            Reporter: Stefan Frings
>            Assignee: Brian Stansberry
>            Priority: Minor
>         Attachments: Test.zip
>
>
> 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.12.1#712002)


More information about the jboss-jira mailing list