Alfresco自定义操作对话框未显示

时间:2014-02-14 16:42:15

标签: alfresco

我使用其中一个示例SDK项目创建了一个自定义的Alfresco操作对话框 作为基础。我为我的java文件保留了示例项目“org.alfresco.sample”包 它工作得很好。 然后我尝试将包名更改为“com.xxxxxx.xxxxx”,它停止工作。 我检查了项目中的所有文件,以确保我用我的新包名替换了“org.alfresco.sample”的每个实例。 任何人都可以提出可能的原因吗? 谢谢

我发现当我构建项目时,它不是构建java文件。任何人都可以 建议为什么它没有使用新包名构建java文件? 感谢

我再次获得了java文件。但新行动仍未被使用。新操作使用评估程序,但似乎没有运行。 (它通常会写入 日志。)

以下是build.xml的一部分:

<project name="Custom Dialog Build File" default="package-amp" basedir=".">
<property name="project.dir" value="."/>
<property name="build.dir" value="${project.dir}/build"/>
<property name="config.dir" value="${project.dir}/config"/>
<property name="jsp.dir" value="${project.dir}/web/jsp"/>
    <property name="web.dir" value="${project.dir}/web" />
<property name="package.file.jar" value="${build.dir}/lib/custom-dialog.jar"/>
    <property name="package.file.zip" value="${build.dir}/lib/custom-dialog.zip"/>
    <property name="amp.file" value="${build.dir}/dist/retailChannels.amp"/>

    <path id="class.path">
      <dirset dir="${build.dir}" />
      <fileset dir="../../lib/server" includes="**/*.jar"/>
    </path>

    <target name="compile">
      <mkdir dir="${build.dir}" />
      <javac classpathref="class.path" srcdir="${project.dir}/source" destdir="${build.dir}" />
    </target>

<target name="package-jar" depends="increment-build-number">
      <delete file="${package.file.jar}" />  
    <jar destfile="${package.file.jar}">
        <fileset dir="${build.dir}">
            <exclude name="dist/**" />
            <exclude name="lib/**" />
            <exclude name="web/**" />
        </fileset>
    </jar>
</target>

    <target name="mkdirs">
      <mkdir dir="${build.dir}/dist" />
      <mkdir dir="${build.dir}/lib" />
    </target>

    <target name="clean">
    <delete includeemptydirs="true">
        <fileset dir="${build.dir}/dist" includes="**/*"/>
    </delete>
    </target>

    <target name="package-amp" depends="clean, mkdirs, package-jar" description="Package the Module" >
        <delete file="${amp.file}" /> 
        <zip destfile="${amp.file}" >
            <fileset dir="${project.dir}/build" includes="lib/*.jar" />
    <fileset dir="${project.dir}/config/alfresco/module/alfresco" includes="*.properties" />
            <fileset dir="${project.dir}" includes="config/**/*.*" excludes="**/module.properties" />
    <fileset dir="${project.dir}/source">
            <include name="web/jsp/**/*.jsp" />
            <include name="web/images/**" />
    </fileset>
        </zip>
   </target> 

</project>  

我刚尝试了一下你建议的maven SDK教程,但我得到了 这个错误:  2014年2月14日下午3:42:48 org.apache.catalina.core.ContainerBase startInternal 严重:子容器在启动时失败 java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:PermGen space         at java.util.concurrent.FutureTask.report(FutureTask.java:122)         在java.util.concurrent.FutureTask.get(FutureTask.java:188)

1 个答案:

答案 0 :(得分:1)

检查build.xml文件。仔细检查compile和package-jar任务(或类似的)。例如,这些任务中的一个或两个可能具有一个文件集,该文件集使用模式来使用包结构包含您的类,并且现在您已经更改了包名称,它可能不再匹配。

如果没有看到build.xml,很难说清楚。

顺便说一句,如果您想要在Alfresco中创建操作的更新的示例,请查看本教程:http://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html

它使用Alfresco Maven SDK打包AMP。 Alfresco Maven SDK比您正在使用的旧SDK更受欢迎。