Igor Kromin |   Consultant. Coder. Blogger. Tinkerer. Gamer.

I've noted previously that the JWSC Ant Task fails to build Java sources above 1.5 source version due to a hardcoded "1.5" value in one of the Jar files. That was happening for the 12.1.2 version of the Ant task, it also appears to be a problem in the 12.1.2 Maven plugin as well as the 12.1.3 Maven plugin.

So if you're using this plugin...
 Maven Plugin

...and you're trying to compile Java source code that has 1.6 or 1.7 features e.g. diamond operator or try-with-resources, your compilation will fail.

Hang on you say, there is an Oracle Patch #19942919 that addresses this exact issue. I tried that and ironically the patch itself throws a NullPointerException...
 Exception Stacktrace
[ERROR] Failed to execute goal com.oracle.weblogic:weblogic-maven-plugin:12.1.3-0-0:ws-jwsc (jwsc) on project MyCoolWS: ws-jwsc goal failed: java.lang.NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.oracle.weblogic:weblogic-maven-plugin:12.1.3-0-0:ws-jwsc (jwsc) on project DocXRegistryWS: ws-jwsc goal failed:
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: ws-jwsc goal failed:
at weblogic.tools.maven.plugins.webservices.JwscMojo.execute(JwscMojo.java:150)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: java.lang.NullPointerException
at weblogic.wsee.tools.anttasks.JwscTask.execute(JwscTask.java:249)
at weblogic.tools.maven.plugins.webservices.JwscMojo.execute(JwscMojo.java:148)
... 22 more
Caused by: java.lang.NullPointerException
at weblogic.wsee.tools.anttasks.JwscTask.initialize(JwscTask.java:289)
at weblogic.wsee.tools.anttasks.JwscTask.execute(JwscTask.java:234)
... 23 more

So what's the solution? Well in fact there are two ways around this.

Solution 1
1. Follow the steps in my previous article.
2. Package the modified .class file into a Jar file.
3. Install the Jar file into your Maven repository.
4. Add the installed Jar file as a dependency INSIDE THE MAVEN WEBLOGIC PLUGIN so that it overwrites the default .class file for JamUtils.

e.g. (based on Maven Documentation. Replace with whatever you used for the groupId, artifactId and version in step 3.
 Plugin Dependency

Solution 2
Upgrade to the 12.2.1 version of the plugin. This is probably an easier feat, but you will need to download the 12.2.1 version of WebLogic to get the plugin. Follow these instructions to set up the plugin.

Either solution works, of course Solution 1 is not official and would not be supported.


Have comments or feedback on what I wrote? Please share them below!
comments powered by Disqus
Other posts you may like...