]
Saisha Naik updated JBWS-3992:
------------------------------
Attachment: WsdlXsdExample.war
wsdl diretory is not cleaned on application deploy/undeploy thereby
leaving an empty folder under "/wsdl/data" directory
------------------------------------------------------------------------------------------------------------------------
Key: JBWS-3992
URL:
https://issues.jboss.org/browse/JBWS-3992
Project: JBoss Web Services
Issue Type: Bug
Components: jbossws-cxf
Affects Versions: jbossws-cxf-4.3, jbossws-cxf-4.3.2
Reporter: Saisha Naik
Fix For: jbossws-cxf-5.2.0.Final
Attachments: TestEar.ear, WsdlXsdExample.war
Tested the issue in two different scenarios listed below :
*Scenario 1:*
When a web-service test EAR(having an EJB JAR/WAR inside it) is deployed in JBoss EAP, it
creates a wsdl folder inside the data directory with the name of the deployed application.
Suppose, there is an application TestEar.ear having an EJB web-service jar(MyEjb1.jar) in
it. When this application is deployed in JBoss EAP, its wsdl will be published at
`/data/wsdl/TestEar.ear/MyEjb1.jar/HelloService.wsdl`.
{code:java}
wsdl
└── TestEar.ear
└── MyEjb1.jar
└── HelloWebServiceBeanService.wsdl
{code}
When the server is stopped or the application is undeployed, the wsdl content is removed
from the location, however the folder is never deleted, thereby leaving an empty folder in
the "/data/wsdl" directory:
{code:java}
wsdl
└── TestEar.ear
{code}
This is not the scenario when a war/jar application is deployed, in which case the
content is completely removed along with the folder.
*Scenario 2:*
In case of a war, the wsdl folder inside the application has the below structure :
{code:java}
[sanaik@sanaik WEB-INF]$ tree
.
├── classes
.....
└── wsdl
├── base
│ └── as
│ └── ServerInfoService_schema1.xsd
├── ServerInfoService.wsdl
└── ServerInfoService.wsdl~
...
{code}
Deploying the application creates the below structure under "/data/wsdl"
directory :
{code:java}
[sanaik@sanaik WsdlXsdExample.war]$ tree
.
├── base
│ └── as
│ └── ServerInfoService_schema1.xsd
└── ServerInfoService.wsdl
{code}
On disabling the application via admin console, "ServerInfoService.wsdl" is
cleared, however the below contents still remains :
{code:java}
[sanaik@sanaik WsdlXsdExample.war]$ tree
.
└── base
└── as
└── ServerInfoService_schema1.xsd
{code}
And JBoss does gives the below WARN message :
{code:java}
[Server:server-one] 11:53:30,835 WARN [org.jboss.ws.cxf.deployment] (MSC service thread
1-4) JBWS024097: Could not delete wsdl file
/NotBackedUp/NEW/Cases/CASE-01604047/jboss-eap-6.4/domain/servers/server-one/data/wsdl/WsdlXsdExample.war/base
[Server:server-one] 11:53:30,836 WARN [org.jboss.ws.cxf.deployment] (MSC service thread
1-4) JBWS024100: Could not delete wsdl directory
/NotBackedUp/NEW/Cases/CASE-01604047/jboss-eap-6.4/domain/servers/server-one/data/wsdl/WsdlXsdExample.war
{code}
This is only the case if any xsd is placed inside a folder under the "/wsdl"
directory and referenced in the wsdl.