我有需要解析的模式,应该创建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>
你对此事的帮助非常值得。谢谢你。
答案 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。 为简单起见,您不需要这个