Reputation: 25
I am migrating an application from weblogic 8.1 to weblogic 10.3.5 version. while building application through ant script; I am getting below error:-
weblogic.appc.run:
[java] Usage: java weblogic.appc [options] <ear, jar, war or rar file or directory>
[java]
[java] where options include:
[java] -help Print the standard usage message.
[java] -version Print version information.
[java] -output <file> Specifies an alternate output archive or
[java] directory. If not set, output will be
[java] placed in the source archive or directory.
[java] -plan <file> Specifies an optional deployment plan.
[java] -forceGeneration Force generation of EJB and JSP classes.
[java] Without this flag the classes may not be
[java] regenerated if it is determined to be
[java] unnecessary.
[java] -quiet Turns off output except for errors
[java] -lineNumbers Add JSP line numbers to generated class
[java] files to aid in debugging.
[java] -library <file> Comma-separated list of libraries. Each
[java] library may optionally set its name and
[java] versions, if not already set in its
[java] manifest, using the following syntax: <file>
[java] [@name=<string>@libspecver=<version>
[java] @libimplver=<version|string>]
[java] -librarydir <dir> Registers all files in specified directory
[java] as libraries.
[java] -writeInferredDescriptors Write out the descriptors with inferred
[java] information including annotations.
[java] -manifest <file> Include manifest information from specified
[java] manifest file.
[java] -clientJarOutputDir <dir> Specifies a directory to put generated
[java] client jars.
[java] Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/j2ee/J2EELogger
[java] -keepgenerated Keep the generated .java files.
[java] -verbose Compile with verbose output.
[java] -classpath <path> Classpath to use.
[java] -source <source> Source version.
[java] -target <target> Target version.
[java] -advanced Print advanced usage options.
[java]
[java] at weblogic.application.compiler.Appc.runBody(Appc.java:205)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:158)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:115)
[java] at weblogic.application.compiler.Appc.main(Appc.java:262)
[java] at weblogic.appc.main(appc.java:14)
[java] Caused by: java.lang.ClassNotFoundException: weblogic.j2ee.J2EELogger
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[java] ... 5 more
Below are ANT script which I am running over it.
<java classname="weblogic.appc" failonerror="true" fork="true" maxmemory="512m">
<arg value="-disableHotCodeGen"/>
<arg line="-verbose"/>
<arg line="${weblogic.arg.line.compiler}"/>
<arg line="-compilerclass com.sun.tools.javac.Main"/>
<arg line="${weblogic.appc.options}"/>
<arg value="${compile.dir}/${ejb.domain}-ejbc.jar"/>
<arg value="${project.dir}/src/java"/>
<arg value="${compile.dir}/ejb/${ejb.domain}"/>
<classpath>
<path refid="weblogic.classpath"/>
<path refid="project.classpath"/>
<fileset dir="${java.home}/../lib" includes="tools.jar"/>
</classpath>
</java>
Even though I am not able to find java.lang.NoClassDefFoundError: weblogic/j2ee/J2EELogger . which jar does supports this? Also I have set PATH and CLASSPATH properly.
Let me know if more information is required from my side.
Upvotes: 1
Views: 15202
Reputation: 1749
In short, ensure you have /wlserver_10.3/server/lib/weblogic.jar
in your weblogic.classpath
variable.
The class that isn't loading is from /modules/com.oracle.core.weblogic.msgcat_1.1.0.0.jar
. This should be imported by virtue of the MANIFEST.MF file in /wlserver_10.3/server/lib/weblogic.jar
. Assuming that you have weblogic.jar in your weblogic.classpath
then the class weblogic.j2ee.J2EELogger
should be loaded.
weblogic.jar
loads /modules/features/weblogic.server.modules_10.3.5.0.jar
which in turn through it's own MANIFEST.MF loads /modules/com.oracle.core.weblogic.msgcat_1.1.0.0.jar
.
You also have multiple <arg line="">
tags in your ant configuration. You will need to revise these.
<arg line="-disableHotCodeGen -verbose -compilerclass com.sun.tools.javac.Main ${weblogic.appc.options} ${compile.dir}/${ejb.domain}-ejbc.jar ${project.dir}/src/java ${compile.dir}/ejb/${ejb.domain}">
Another example below is how I currently execute appc in my ant build.
<target name="appc" depends="compile,jar">
<java classname="weblogic.appc" fork="yes" jvm="${bea.java.home}/bin/java" maxmemory="1G" failonerror="true">
<arg line="${archive.jarfile} -J-Xmx1g"/>
<classpath>
<pathelement path="${container.cp};${server.additional.classpath}"/>
<pathelement path="${archive.jarfile}"/>
</classpath>
</java>
</target>
Also, run ant with the -v
switch to see the command being issued, it should help to find your problem.
Upvotes: 2