CA Gen Custom Web Service (EJB) fails to execute under JBoss or WildFly
search cancel

CA Gen Custom Web Service (EJB) fails to execute under JBoss or WildFly

book

Article ID: 100993

calendar_today

Updated On:

Products

Gen Gen - Workstation Toolset Gen - Host Encyclopedia Gen - Run Time Distributed

Issue/Introduction

After successful deployment to JBoss 6.4 the default EJB Web Service is executing successfully but the Custom Web Service is failing.
In SoapUI see HTTP/1.1 500 Internal Server Error 
When check the JBoss application log it shows some problem with com.ca.gen.wsrt.router: 
2018-05-14 14:52:10,224 ERROR [org.jboss.as.webservices.invocation.InvocationHandlerJAXWS] (http-0.0.0.0:8080-2) JBAS015594: Method invocation failed with exception: null: java.lang.NullPointerException 
at java.util.Properties$LineReader.readLine(Properties.java:434) [rt.jar:1.8.0_111] 
at java.util.Properties.load0(Properties.java:353) [rt.jar:1.8.0_111] 
at java.util.Properties.load(Properties.java:341) [rt.jar:1.8.0_111] 
at com.ca.gen.wsrt.router.GenServiceRouter.readPropertyFile(Unknown Source) 


Also later testing with WildFly 10.1 shows this error in SoapUI:
<SOAP-ENV:Fault ...>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>[Could not send Message.]
Unable to forward message to target EJB. Please see server logs for more information. </faultstring>
</SOAP-ENV:Fault>

Environment

Gen 8.6

Cause

Until recently Gen only supported JBoss 5.1 and support confirmed that using JBoss 5.1 is successful using Assemble steps as follows:
a. Under Application Server tab select Application Server="GENERIC".
b. Under Web Services tab select "Custom Web Service" (defaults of localhost and 8080 are then picked up).
After deploy the resulting ear file the browser successfully displays the wsdl and SoapUI can also execute it 
Default EJB Web Service: http://localhost:8080/HELLOW1/HELLO_WORLD?wsdl 
Custom Web Service: http://localhost:8080/MyFirstWebservice/MyFirstWebservice?wsdl
where:
HELLOW1 = Server Manager name
HELLO_WORLD = Server Procedure Step name

Root cause of other JBoss & Wildfly versions having a problem with Custom Web Service is that the endpoint of deployed default EJB Web Service is different in those versions i.e. it has an extra node level: http://localhost:8080/HELLOW1/HELLO_WORLD/HELLO_WORLD?wsdl 
So the soapActionURI.properties file which the Assemble step places into the .war file (MyFirstWebservice.war) inside the .ear file contains an incorrect URI. 
However Wildfly 10.1 support is now available subject to the associated PTFs being installed:
https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-gen/8-6/technical-requirements/third-party-software-version.html

The Wildfly 10.1 Gen 8.6 Build Tool PTF provides a new Application Server option for "Wildfly" which ensures that the soapActionURI.properties file has the correct URI node levels for the default EJB Web Service so that the Custom Web Service can find it. 

Resolution

a. Install the Wildfly 10.1 Gen 8.6 PTFs, specifically the Build Tool PTF BTN86111/SS03612. 
b. NOTE: There should be no need to regenerate/rebuild code for this web service scenario because only the Assemble step is impacted. 
c. During the Assemble step, under Application Server tab select the new option Application Server="Wildfly" and on the Web Services tab just set "Custom Web Service" (defaults of localhost and 8080 are then picked up) 
d. After deploy the resulting ear file check the wsdl will display successfully in a browser as per the endpoint definitions in Wildfly i.e. 
Default EJB Web Service: http://localhost:8080/HELLOW1/HELLO_WORLD/HELLO_WORLD?wsdl 
Custom Web Service: http://localhost:8080/MyFirstWebservice/MyFirstWebservice?wsdl 
e. The executions from SoapUI are also successful.