Vaadin Flow Deployment Issue with WebLogic 12.1.3

Hello,

I am attempting to deploy a Vaadin Flow application to our WebLogic 12.1.3 (HP-UX) server. I get the following error after selected the .war file and clicking ‘install’ on the deployment screen of the Admin web console.

Unable to access the selected application.
Error java.io.IOException
Error weblogic.utils.compiler.ToolFailureException

The log file says:
<Aug 16, 2018 6:53:26 PM GMT> <AppMerge failed to merge your application. If you are running AppMerge on the command-line, merge again with the -verbose option for more details. See the error message(s) below.>
URI was not reported to parser for entity [document]

I was able to successfully deploy the same .war file to a local instance of WebLogic, however there are two main differences. 1. The successful deployment was on a Windows 10 laptop. 2. The WebLogic server version on the laptop is 12.2.1.2.0.

The application is based on the Beverage starter pack, it uses @Push annotation in the the MainLayout class. Are there any suggestions how I might be able to accomplish this deployment? Any help would be greatly appreciated.

Steve

Maybe https://github.com/vaadin/flow/issues/3923 if the error message is java.lang.IllegalStateException: Not in 'deploy' scope. and it works without @Push. Otherwise, you need to dig out the error message from the server

Interesting. I will look into it. It seems like that issue (3923) occurs when the application has been deployed, which is further along than what I have been able to achieve. I plan on removing the @Push annotation and scour the server logs during attempts at deployment. Ironically, the app I created is a log viewer / search utility…

Well, this morning I tested my situation with two base Vaadin projects. The Vaadin Flow Beverage Buddy and a skeleton Vaadin 8, using the first few steps of the V8 tutorial. Both .war files deployed to the WebLogic 12.1.3 server. The V8 project started and I was able to enter a name in the text field and the server side echoed it back.

V10 project did not start. It said: weblogic.management.DeploymentException: Servlet 3.1+ is required.

Checked into the Standards list for WLS 12.1.3 at: https://docs.oracle.com/middleware/1213/wls/NOTES/whatsnew.htm#NOTES128 WLS 12.1.3 supports Servlet version 3.0, not 3.1. So, the Flow projects build and run on my laptop because I am using 12.2.1.2.0, which does support Servlet 3.1.

I have three options at this point, either upgrade WLS to 12.2.1.2.0,downgrade my application to V8 or figure out how to get the Flow Application to run using Servlet 3.0 instead of 3.1.

I am going to look into running the application under Servlet 3.0, https://vaadin.com/docs/v10/flow/advanced/tutorial-application-lifecycle.html has some information about configuring a VaadinServlet using @WebServlet for Servlet 3.0.

The lesson here is to make sure the version of Vaadin selected is compatible with the application server’s Servlet specification. I am going to test the base Beverage Buddy app to see if I can’t get it to use the @WebServlet annotation to have it run the 3.0 specification.

Researching this issue I found in the V8 documentation references to Servlet 3.0 specification, https://vaadin.com/docs/v8/framework/application/application-environment.html

Looking in the V10 documentation, the Application Lifecycle document: https://vaadin.com/docs/v10/flow/advanced/tutorial-application-lifecycle.html#application.lifecycle.servlet-service was helpful.

I thought I had edited my previous post, however it may not have gone through. Long and short, I googled “vaadin Servlet 3.1+ is required” and went to the release notes: https://github.com/vaadin/platform/releases It is spelled out for me there, V10 requires WLS 12.2.1+. Moving on with the second option of downgrading the application to V8.

Thanks,
Steve