Install of CA Gen 8.6 default EJB Web Service with Custom Web Service under WebSphere 9 fails to create default EJB Service WSDL document

book

Article ID: 206346

calendar_today

Updated On:

Products

CA Gen

Issue/Introduction

BACKGROUND:
A Custom Web Service is dependent on its default EJB Web Service and will not function without it. That requirement is enforced during the Assemble step where the Custom Web Service can only be assembled if the default EJB Web Service is also selected with it. So the only 2 options are to deploy the EJB Web Service on its own or deploy both the EJB Web Service with the Custom Web Service i.e. the Custom Web Service cannot be deployed on its own.
For deployment of a Custom Web Service to WebSphere Application Server (WAS) 9.x, the application appears to install successfully but the WSDL document for the default EJB Web Service is not created. Although the Custom Web Service WSDL document is created and can be viewed from a browser it will not execute because it is dependent on the default EJB Web Service.

For model example with:
Server Manager name = PSTEP1SM
Server Procedure Step name = PSTEP1

Default EJB Web Service tests:
- Trying to load page http://localhost:9080/PSTEP1SM/PSTEP1 will fail with "Error 500: javax.servlet.ServletException: com.ibm.ws.websvcs.exception.ConfigurationException: Could not retrieve server module metadata in Axis servlet for module: HTTP router for PSTEP1SM.jar"
- Trying to load page http://localhost:9080/PSTEP1SM/PSTEP1/PSTEP1.wsdl will fail with "Error 404: java.io.FileNotFoundException: SRVE0190E: File not found: /PSTEP1/PSTEP1.wsdl".
- Trying to execute it in SoapUI will give error:
"Error 500: javax.servlet.ServletException: com.ibm.ws.websvcs.exception.ConfigurationException: Could not retrieve server module metadata in Axis servlet for module: HTTP router for PSTEP1SM.jar"

Custom Web Service tests:
- Trying to execute in SoapUI will give error:
"[org.apache.axis2.AxisFault: HTTP ( 500 ) Internal Server Error address : http://localhost:9080/PSTEP1SM/PSTEP1]
Unable to forward message to target EJB. Please see server logs for more information."

Under WAS Admin console go to "Application" > "Service Providers" > PStep_Name
When click on "WSDL document" see error "WSWS4004E: The wsdl-file for module PSTEP1SM.jar was not found in the module."


The WAS SystemOut.log shows:

===
1/11/21 16:50:03:519 PST] 0000019d InstallSchedu I   ADMA5016I: Installation of LYNNWS started.
[1/11/21 16:50:53:991 PST] 0000019d InstallSchedu I   ADMA5013I: Application LYNNWS installed successfully.
[1/11/21 16:51:27:545 PST] 00000193 Axis2Utils    E   WSWS7258E: Web Services Description Language (WSDL) files for the PSTEP1SM.jar module will not be generated due to the following error: java.io.FileNotFoundException: File [ lynnws.war ] not found in archive [ C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\lvntest014852Node01Cell\LYNNWS.ear ] at [ C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\lvntest014852Node01Cell\LYNNWS.ear]
[1/11/21 16:51:27:560 PST] 00000193 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\ffdc\server1_a36e9efe_21.01.11_16.51.27.5495079911999886811592.txt com.ibm.ws.websvcs.utils.Axis2Utils.getApplicationClassPath 874
[1/11/21 16:51:28:012 PST] 00000193 WASWSDLGenera E   WSWS7054E: The Web Services Description Language (WSDL) file could not be generated for the lynnws.PSTEP1_Bean Web service implementation class because of the following error: java.lang.NoClassDefFoundError: com.ca.gen.vwrt.IImportView
[1/11/21 16:51:28:060 PST] 00000193 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\ffdc\server1_a36e9efe_21.01.11_16.51.28.0132342449937736748180.txt com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.buildServices 1426
[1/11/21 16:51:28:063 PST] 00000193 WSModuleDescr E   WSWS7027E: JAX-WS Service Descriptions could not be correctly built because of the following error: javax.xml.ws.WebServiceException: WSWS7054E: The Web Services Description Language (WSDL) file could not be generated for the lynnws.PSTEP1_Bean Web service implementation class because of the following error: java.lang.NoClassDefFoundError: com.ca.gen.vwrt.IImportView
 at com.ibm.ws.websvcs.wsdl.WASWSDLGenerator.generateWsdl(WASWSDLGenerator.java:299)
 at org.apache.axis2.jaxws.description.impl.EndpointDescriptionImpl.generateWSDL(EndpointDescriptionImpl.java:2102)
    ...
Caused by: java.lang.NoClassDefFoundError: com.ca.gen.vwrt.IImportView
 at java.lang.J9VMInternals.prepareClassImpl(Native Method)
    ...
 ... 68 more
Caused by: java.lang.ClassNotFoundException: com.ca.gen.vwrt.IImportView
    ...
 ... 84 more

[1/11/21 16:51:28:098 PST] 00000193 AppBinaryProc I   ADMA7021I: Distribution of application LYNNWS completed successfully.
===

Cause

This is a known problem and is documented along with a workaround in CA GEN 8.6 >Technical Requirements > Third Party Software Version > Application Servers

Environment

Release: CA Gen 8.6 Complete (WKS86200/SO09618)
Component: CA Gen EJB Web Services

Resolution

1. From the above Gen 8.6 techdocs link, the workaround is:



NOTE: It has been found that step 2 of the above workaround is not required.

Using the workaround, the updated .ear file containing modified Server_Manager.jar file installs successfully and the WSDL document is created for the default EJB Web Service. The reported errors above no longer occur and the WAS SystemOut.log file will also show no errors:
===
[1/11/21 17:00:05:921 PST] 000001c8 InstallSchedu I   ADMA5016I: Installation of LYNNWS started.
[1/11/21 17:00:47:158 PST] 000001c8 InstallSchedu I   ADMA5013I: Application LYNNWS installed successfully.
[1/11/21 17:00:58:491 PST] 000001a9 AppBinaryProc I   ADMA7021I: Distribution of application LYNNWS completed successfully.
===


2. A second workaround has recently been found which avoids having to modify the .ear file.
Create a custom property under "Java and Process Management > Process Definition > Java Virtual Machine > Custom Properties" with name:
com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath
Its value should be assigned to the full PATH of the Gen runtime jar file (genrt.jar for Gen 8.6).
Restart WAS and repeat the installation of the application .ear file.
This KB article also uses the same workaround when Gen runtime jar file is not deployed in .ear file and has more details:
CA Gen EJB Web Service and Custom Web Service install requires "Package runtime in EAR" at Assemble time - WebSphere

Additional Information

Related KB article: CA Gen 8.6 default EJB Web Service and Custom Web Service - WSDL URL formats for JBoss and WebSphere

Attachments