tomcat - 复制任务中的问题

标签 tomcat spring-mvc war winrar

当我 war 一个 spring mvc 项目时,war 文件无法部署到 tomcat,ZipException 超额订阅文字/长度树。我发现当我尝试使用 winrar 打开 WEB-INF/LIB/*.jar 中的所有文件时,我得到了“意外的存档文件”

我有 2 个像这样的 Ant 目标

<target name="build" description="Compile main source tree java files">
        <mkdir dir="${build.dir}" />
        <copy todir="${web.dir}/WEB-INF/">
            <fileset dir="src/main/webapp/WEB-INF/">
                <include name="**/*.*" />
            </fileset>
            <filterchain>
                <striplinecomments>
                    <comment value="!" />
                </striplinecomments>
                <replacetokens>
                    <token key="hibernate.connection.url" value="${hibernate.connection.url}" />
                    <token key="hibernate.connection.username" value="${hibernate.connection.username}" />
                    <token key="hibernate.connection.password" value="${hibernate.connection.password}" />
                    <token key="fontFamily" value="arial, helvetica, sans-serif" />
                </replacetokens>
            </filterchain>
        </copy>
        <copy todir="${build.dir}">
            <fileset dir="src/main/resources">
                <include name="**/*.*" />
            </fileset>
            <filterchain>
                <striplinecomments>
                    <comment value="!" />
                </striplinecomments>
                <replacetokens>
                    <token key="hibernate.connection.url" value="${hibernate.connection.url}" />
                    <token key="hibernate.connection.username" value="${hibernate.connection.username}" />
                    <token key="hibernate.connection.password" value="${hibernate.connection.password}" />
                    <token key="fontFamily" value="arial, helvetica, sans-serif" />
                </replacetokens>
            </filterchain>
        </copy>

        <javac destdir="${build.dir}" source="1.6" target="1.6" debug="true" deprecation="false" optimize="false" failonerror="true">
            <src path="${src.dir}" />
            <classpath refid="master-classpath" />
        </javac>
    </target>

    <target name="deploywar" depends="build" description="Deploy application as a WAR file">
        <war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
            <fileset dir="${web.dir}">
                <include name="**/*.*" />
            </fileset>
        </war>
        <copy todir="${deploy.path}" preservelastmodified="true">
            <fileset dir=".">
                <include name="*.war" />
            </fileset>
        </copy>

我现在发现复制目标中存在问题,当它将 *.jar 文件复制到外部文件夹时,它们会损坏。

最佳答案

我发现了问题。

        <copy todir="${web.dir}/WEB-INF/">
            <fileset dir="src/main/webapp/WEB-INF/">
                <include name="**/*.*" />
            </fileset>
            <filterchain>
                <striplinecomments>
                    <comment value="!" />
                </striplinecomments>
                <replacetokens>
                    <token key="hibernate.connection.url" value="${hibernate.connection.url}" />
                    <token key="hibernate.connection.username" value="${hibernate.connection.username}" />
                    <token key="hibernate.connection.password" value="${hibernate.connection.password}" />
                    <token key="fontFamily" value="arial, helvetica, sans-serif" />
                </replacetokens>
            </filterchain>
        </copy>

应该是

        <copy todir="${web.dir}/WEB-INF/">
            <fileset dir="src/main/webapp/WEB-INF/">
                <include name="**/*.*" />
            </fileset>
        </copy>

关于tomcat - 复制任务中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637819/

相关文章:

java - 在实时服务器上部署 Java EE 应用程序

java - 如何从多个动态 Web 项目创建单个 war 文件

Tomcat ExpiresFilter 无法正常工作

apache - 安装 mod_jk 后 squirrelmail 不工作

java - 在java中执行后关闭批处理文件

java - @Pattern , JSR303 bean 验证 : regex check max 5 words and not blank

java - 使用参数部署 *.war 文件

java - 找不到 javac 编译器

windows - 使用 APR 和 OpenSSL 解决 Tomcat 上的 Heartbleed 问题。编译错误

java - 在 Url 查询参数中区分空值和空字符串 ("")