简体   繁体   English

使用manifest.mf类路径的运行时类路径

[英]runtime classpath using manifest.mf classpath

i built an ear using ant and the its compiling fine. 我用蚂蚁和它的编译罚款建立了耳朵。 however when i deploy i get the noclassdeffound error in the weblogic server logs. 但是,当我部署时,我在weblogic服务器日志中收到noclassdeffound错误。 so i added the libraries(jars) in server startup script ie the server java classpath it works fine. 所以我在服务器启动脚本中添加了库(罐子),即服务器java类路径正常工作。

Please help me how to resolve this runtime classpath issue using ant build. 请帮助我如何使用ant build解决此运行时类路径问题。 i assume adding classpath in manifest.mf file will help. 我认为在manifest.mf文件中添加classpath会有所帮助。 so far my build.xml is: 到目前为止,我的build.xml是:

Please advice 请指教

<?xml version="1.0"?>
<project name="xxx APP Check" default="all" basedir=".">


<target name="init">
<property name="software.version" value="1.0"/>
<property name="user.name" value="usrnme"/>
<property name="dirs.base" value="${basedir}"/>
<property name="classdir" value="${dirs.base}/build/src"/>
<property name="src" value="${dirs.base}/src"/>
<property name="mf" value="${dirs.base}/src/META-INF"/>
<property name="jar" value="${dirs.base}/build/jar"/>
<property name="web" value="${dirs.base}/web"/>
<property name="deploymentdescription" value="${dirs.base}/build/deploymentdescriptors"/>

<property name="warFile" value="xxxappchk.war"/>
<property name="earFile" value="xxxxappchk.ear"/>


<property name="earDir" value="${dirs.base}/build/ear"/>
<property name="warDir" value="${dirs.base}/build/war"/>
<property name="srcDir" value="${dirs.base}/build/src"/>


<!-- Create Web-inf and classes directories -->
<mkdir dir="${warDir}/WEB-INF"/>
<mkdir dir="${warDir}/WEB-INF/classes"/>
<mkdir dir="${warDir}/WEB-INF"/>
<mkdir dir="${warDir}/WEB-INF/lib"/>
<mkdir dir="${warDir}/WEB-INF/classes"/>

<!-- Create Meta-inf and classes directories -->
<mkdir dir="${warDir}/META-INF"/>
<mkdir dir="${earDir}/META-INF"/>


</target>

<!-- Main target -->
<target name="all" depends="init,build,buildWar,buildEar,clean"/>


<!-- Compile Java Files and store in /build/src directory -->
<target name="build" >
<path id="3rdparty.jar.path">
       <fileset dir="${jar}">
       <include name="*.jar" />
    </fileset>

</path>
<javac srcdir="${src}" includeantruntime="false" destdir="${classdir}" debug="true" includes="**/*.java" >
<classpath>
        <path refid="3rdparty.jar.path"/>
</classpath>
</javac>
</target>

<!-- Create the War File -->
<target name="buildWar" depends="init">
<copy todir="${warDir}/WEB-INF/classes">
<fileset dir="${classdir}" includes="**/*.class" /> 
</copy>

<jar destfile="${warDir}/WEB-INF/lib/xxxx-appcheck.jar"
      basedir="${warDir}/WEB-INF/classes"
/>
<echo message="Hyperion appcheck jar created."/>

<copy todir="${warDir}/WEB-INF/classes/com/ca/xxxx_appcheck">
<fileset dir="${src}" includes="**/*.java" /> 
</copy>


<copy todir="${warDir}/WEB-INF">
<fileset dir="${deploymentdescription}" includes="web.xml" /> 
</copy>

<copy todir="${warDir}/WEB-INF/lib">
<fileset dir="${jar}" includes="*.jar" /> 
</copy>


<copy todir="${warDir}">
<fileset dir="${web}" includes="**/*.*" /> 
</copy>

<!-- Create war file and place in ear directory -->
<jar jarfile="${earDir}/${warFile}" basedir="${warDir}" />


</target>


<!-- Create the War File -->
<target name="buildEar" depends="init">
<copy todir="${earDir}/META-INF">
<fileset dir="${deploymentdescription}" includes="application.xml" /> 
</copy>

<!-- Create ear file and place in ear directory -->
<jar jarfile="${dirs.base}/${earFile}" basedir="${earDir}" />
</target>

    <target name="clean" description="Delete all generated files">

        <delete dir="${srcDir}" failonerror="false"/>
        <delete dir="${earDir}" failonerror="false"/>
        <delete dir="${warDir}" failonerror="false"/>
        <echo message="Deleted the temp directories src, war, ear"/>
        <mkdir dir="${earDir}"/>
        <mkdir dir="${warDir}"/>
        <mkdir dir="${srcDir}"/>
        <echo message="created the temp directories src, war, ear"/>

    </target>

</project>

Usually you don't need to add anything to MANIFEST.MF to make your jars added to application classpath. 通常,您不需要向MANIFEST.MF添加任何内容即可将jar添加到应用程序类路径。

  1. Your web application (WAR) files should be directly under EAR. 您的Web应用程序(WAR)文件应直接位于EAR下。
  2. Overall dependencies (JAR) should be under EAR's APP-INF/lib directory. 总体依赖关系(JAR)应该在EAR的APP-INF / lib目录下。
  3. Web application own dependencies under WAR files WEB-INF/lib directory. Web应用程序自身在WAR文件WEB-INF / lib目录下的依赖项。 Looking at your build.xml, they should be there. 查看您的build.xml,它们应该在那里。

Before changing you Ant build script, please check these prerequisites and please provide the stacktrace from Weblogic error log. 在更改您的Ant构建脚本之前,请检查这些先决条件,并提供Weblogic错误日志中的stacktrace。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java Manifest.mf类路径问题 - Java Manifest.mf classpath issues 用类似java -cp的类路径描述MANIFEST.MF - Describe MANIFEST.MF with classpath like java -cp Maven 构建失败,涉及依赖 JAR 中的 MANIFEST.MF 类路径 - Maven build failure involving MANIFEST.MF classpath in dependency JARs 如何在MANIFEST.MF中处理类路径中带空格的文件? - How do I handle files with spaces in the classpath in MANIFEST.MF? 使用war文件的MANIFEST.MF将物理机文件夹中可用的jar文件添加到服务器类路径中 - Adding jar files available in folder of a physical machine into server classpath by using MANIFEST.MF of war file 在哪里定义服务器端jar的类路径? manifest.mf与CLI参数-cp - Where to define the classpath for server side jars ? manifest.mf versus CLI argument -cp Manifest.mf中的类路径定义会覆盖还是补充EARs中的库路径? - Does classpath definition in Manifest.mf override or supplement library-path in EARs? 在manifest.mf中设置类路径以访问可执行jar之外的配置文件 - Set classpath in manifest.mf to access config files outside an executable jar bnd-使生成的MANIFEST.MF每个Bundle-ClassPath和RequireBundle条目具有一行 - bnd - Make resulted MANIFEST.MF to have one line per Bundle-ClassPath and RequireBundle entries 在MANIFEST.MF中将Velocity jar从Bundle-ClassPath移到Import-Package(插件依赖)。然后,.vm文件的位置在哪里? - Moved Velocity jar from Bundle-ClassPath to Import-Package(Plugin dependancies) in MANIFEST.MF Then what should be the place for .vm file?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM