jboss等价或相应的ant taskdef ejbgen,xdoclet?

时间:2016-08-12 09:28:45

标签: ant jboss jaxb schema

我有需要解析的模式,应该创建ejb存根和jboss相关的部署描述符文件。

有人可以建议我使用哪个工具(例如:xdoclet jaxb,它的weblogic)生成jboss部署描述符文件以及ejb所需的接口。我一直在尝试使用下面的代码片段,但无法生成工件。

<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath" />
    <taskdef name="ejbdoclet" classname="xdoclet.modules.jboss.ejb.JBossSubTask" classpathref="xdoclet.classpath" />
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
            <classpath refid="compile.classpath" />
        </taskdef>

你对此事的帮助非常值得。谢谢你。

1 个答案:

答案 0 :(得分:0)

好像你正在使用ANT,我在build.xml中使用过这样的东西。编译任务必须依赖于此。

    <target name="createDeployDescriptor" description="create DeployDescriptor using XDoclet">
            <taskdef classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath" name="ejbdoclet" />

            <ejbdoclet destdir="${classes.dir}/META-INF" mergedir="etc/xdoclet/merge" excludedtags="@version,@author" ejbspec="2.1" force="true">
                    <fileset dir="${src.dir}">
                            <include name="**/*Bean.java" />
                            <exclude name="**/*test*" />
                    </fileset>

                    <remoteinterface destDir="${src.gen.dir}" />
                    <localinterface destDir="${src.gen.dir}" />
                    <homeinterface destDir="${src.gen.dir}" />
                    <localhomeinterface destDir="${src.gen.dir}" />
                    <!-- valueobject templateFile="etc/resources/xdoclet/valueobject.xdt" pattern="{0}" / -->
                    <!-- generate the primary key classes for the entities -->
                    <entitypk destDir="${src.gen.dir}" />
                    <utilobject destDir="${src.gen.dir}" kind="physical" cacheHomes="true" includeGUID="${xdoclet.ejb.include.guid}" pattern="{0}Locator" templateFile="etc/xdoclet/locator.xdt" />

                    <deploymentdescriptor validatexml="true">
                            <configParam name="Description" value="Deploymentdescriptor for WFink EJB2.1" />
                    </deploymentdescriptor>

                    <jboss version="4.0" mergeDir="etc/xdoclet/merge" />
            </ejbdoclet>
    </target>

Maven也可以这样做:

<build>
    <plugins>
        <!-- use XDoclet to generate the EJB2 artifacts, the plugin version is defined in the root pom -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>xdoclet-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xdoclet</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <ejbdoclet destdir="${project.build.outputDirectory}">
                                <fileset dir="${project.build.sourceDirectory}" includes="**/*Bean.java" />
                                <localinterface destDir="${project.build.directory}/generated-sources/xdoclet" />
                                <localhomeinterface destDir="${project.build.directory}/generated-sources/xdoclet" />
                                <remoteinterface destDir="${project.build.directory}/generated-sources/xdoclet" />
                                <homeinterface destDir="${project.build.directory}/generated-sources/xdoclet" />
                                <utilobject kind="physical" destDir="${project.build.directory}/generated-sources/xdoclet" />
                                <deploymentdescriptor destDir="${project.build.outputDirectory}/META-INF" />
                                <jboss version="4.0" destDir="${project.build.outputDirectory}/META-INF" datasource="java:jboss/datasources/ExampleDS" />
                            </ejbdoclet>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        ....
    </plugins>
</build>

您应该考虑两者都已过时,对于JBossAS7,WildFly和EAP6 +,生成的jboss.xml描述符将被忽略,您需要手动添加配置JBoss特定设置的jboss-ejb3.xml。 为简单起见,您不需要这个