我有需要解析的模式,它应该创建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>
你对这件事的帮助是非常感激的。提前感谢。
看起来您正在使用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 -ejb3.xml来配置JBoss的特定设置。为了简单的使用,你不应该需要这个