Due to environment restrictions, we need to deploy our Mule apps on Websphere. I am doing a PoC to get a Mule app to run on the Liberty profile server. I am however unable to get the Mule app (deployed as a war) to run. I've tried the example at https://stackoverflow.com/a/14859119/387927. The war gets deployed, but when I try to invoke the app, Mule throws an error stating "Server null". Am I missing something? The stack trace is as given below.
ERROR org.mule.transport.servlet.MuleReceiverServlet - message: Null input provided: Server null
java.lang.IllegalArgumentException: Null input provided: Server null
at com.ibm.ws.genericbnf.internal.BNFHeadersImpl.appendHeader(BNFHeadersImpl.java:397) ~[?:?]
at com.ibm.ws.http.dispatcher.internal.channel.HttpResponseImpl.addHeader(HttpResponseImpl.java:148) ~[?:?]
at com.ibm.ws.webcontainer.osgi.response.IResponseImpl.addHeader(IResponseImpl.java:81) ~[?:?]
at com.ibm.ws.webcontainer.srt.SRTServletResponse.addField(SRTServletResponse.java:350) ~[?:?]
at com.ibm.ws.webcontainer.srt.SRTServletResponse.addHeader(SRTServletResponse.java:2072) ~[?:?]
at org.mule.transport.servlet.ServletResponseWriter.setHttpHeadersOnServletResponse(ServletResponseWriter.java:174) ~[?:3.6.2]
at org.mule.transport.servlet.ServletResponseWriter.writeResponseFromMessage(ServletResponseWriter.java:124) ~[?:3.6.2]
at org.mule.transport.servlet.ServletResponseWriter.writeResponse(ServletResponseWriter.java:48) ~[?:3.6.2]
at org.mule.transport.servlet.AbstractReceiverServlet.writeResponse(AbstractReceiverServlet.java:151) [?:3.6.2]
at org.mule.transport.servlet.MuleReceiverServlet.processHttpRequest(MuleReceiverServlet.java:256) [?:3.6.2]
at org.mule.transport.servlet.MuleReceiverServlet.doAllMethods(MuleReceiverServlet.java:239) [?:3.6.2]
at org.mule.transport.servlet.MuleReceiverServlet.doGet(MuleReceiverServlet.java:187) [?:3.6.2]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) [com.ibm.ws.javaee.servlet.3.0_1.0.1.jar:?]
at org.mule.transport.servlet.MuleReceiverServlet.service(MuleReceiverServlet.java:176) [?:3.6.2]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) [com.ibm.ws.javaee.servlet.3.0_1.0.1.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1240) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:760) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1033) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4499) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:282) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:954) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:252) [com.ibm.ws.webcontainer_1.0.3.jar:?]
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:584) [com.ibm.ws.transport.http_1.0.2.jar:?]
at com.ibm.ws.threading.internal.Worker.executeWork(Worker.java:439) [com.ibm.ws.threading_1.0.3.jar:?]
at com.ibm.ws.threading.internal.Worker.run(Worker.java:421) [com.ibm.ws.threading_1.0.3.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]
Thanks for helping out!
The issue was resolved by adding a message property transformer as shown below
<message-properties-transformer doc:name="Set the Server property to a dummy value">
<add-message-property key="Server" value="dummyValue"/>
</message-properties-transformer>