0

我有一个打算安装在 WAS8.5 服务器上的 Maven EJB 项目。一切都可以编译到 EAR,但是,当我尝试部署应用程序时,MDB 映射不会自动填充。我提取了 jar(在耳朵内),我看到了......

--META-INF
----ejb-jar.xml
----ibm-ejb-jar-bnd.xml

那么为什么没有提取映射呢?我的插件中有我需要的配置吗?

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <ejbVersion>3.0</ejbVersion>
                <generateClient>true</generateClient>
                <archive>
                    <manifest>
                        <!-- generate manifest file properly -->
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

更新:

这看起来更像是 ibm-web-bnd.xml 的问题。我已经确认那是在最后的战争中。

更新问题...

我正在使用激活规范,据我所知,这些在 ejb 项目的 ibm-ejb-bnd.xml 中得到了很好的处理。我可以在耳朵里看到它们。但是,它仍然不起作用。另外,我有一个由旧系统构建的耳朵,在这里我发现以下文件没有真正的区别......

  • 应用程序.xml
  • ibm-web-bnd.xml
  • ibm-ejb-jar-bnd.xml

我还浏览了 web.xml 和 MANIFEST 文件,但什么也没看到。

最后,另一个奇怪的注意事项是当我尝试安装我看到的 maven 生成的...

在此处输入图像描述

但是,当我尝试上传 Ant(以前的版本)时,我看到了这些选项

在此处输入图像描述

更新:根据评论

我将这些文件添加到一个名为 new 的文件夹和一个名为 old 的文件夹中。

~/My Documents/tmp/file
$ ls old/
application.xml  ibm-ejb-jar-bnd.xml  ibm-web-ext.xml
ejb-jar.xml      ibm-web-bnd.xml

然后我区分了这两个文件夹,这是结果......

diff new/application.xml old/application.xml
5c5
<       <module id="Module_1352494482335">^M
---
>       <module id="Module_1276803943498">^M
4

2 回答 2

0

I played around with so many things my resolution was unscientific. However, this SEEMED to work for me....

<plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>verify</phase>
                    <configuration>
                        <tasks>
                            <property name="was6.home" value="C:\Program Files\IBM\WebSphere\AppServer" />
                            <property name="user.install.root" value="${was6.home}" />   
                            <path id="was.classpath">
                                <fileset dir="${was6.home}/lib">
                                    <include name="webservices.jar" />
                                    <include name="wsprofile.jar" />
                                    <include name="j2ee.jar" />
                                    <include name="ffdc.jar" />
                                    <include name="wsdl4j.jar" />
                                    <include name="bootstrap.jar" />
                                    <include name="commons-logging-api.jar" />
                                    <include name="commons-discovery.jar" />
                                    <include name="ras.jar" />
                                    <include name="wsexception.jar" />
                                    <include name="emf.jar" />
                                    <include name="classloader.jar" />
                                </fileset>
                                <fileset dir="${was6.home}/dev">
                                    <include name="was_public.jar" />
                                </fileset>
                                <fileset dir="${was6.home}/plugins">
                                    <include name="com.ibm.ws.runtime.jar" />
                                </fileset>
                                <fileset dir="${was6.home}/java/jre/lib">
                                    <include name="xml.jar" />
                                    <include name="ibmorb.jar" />
                                    <include name="ibmorbapi.jar" />
                                </fileset>
                            </path>
                            <path id="wsejbdeploy.path">
                                <path refid="maven.compile.classpath"/>
                                <fileset dir="${was6.home}/java/jre/lib">
                                    <include name="xml.jar" />
                                    <include name="ibmorb.jar" />
                                    <include name="ibmorbapi.jar" />
                                </fileset>
                            </path>
                            <taskdef name="wasEjbDeploy" classname="com.ibm.websphere.ant.tasks.WsEjbDeploy" 
                                 classpathref="was.classpath" />

                            <echo> 
                                Hello World: FYI
                                project.name=${project.name}
                                project.artifactId=${project.artifactId}
                                project.groupId=${project.groupId}
                                project.version=${project.version}
                                project.packaging=${project.packaging}
                                project.description=${project.description}
                            </echo>

                            <delete dir="${project.build.directory}/ejbdeply-working" />
                            <wasEjbDeploy 
                                inputJar="${project.build.directory}/${project.artifactId}-${project.version}.jar" 
                                outputJar="${project.build.directory}/${project.artifactId}-${project.version}-OUTPUT.jar" 
                                wasHome="${was6.home}" 
                                classpathref="wsejbdeploy.path"
                                workingDirectory="${project.build.directory}/ejbdeply-working"
                                keepGenerated="true"
                                failonerror="true"
                                trace="true" />

                            <move file="${project.build.directory}/${project.artifactId}-${version}.jar" 
                                tofile="${project.build.directory}/${project.artifactId}-${version}-INPUT.jar"  />

                            <move file="${project.build.directory}/${project.artifactId}-${version}-OUTPUT.jar" 
                               tofile="${project.build.directory}/${project.artifactId}-${version}.jar"  />

                            <echo> **** Task WsEJBDeploy Complete! **** </echo>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
于 2012-11-21T15:47:14.507 回答
0

您可以尝试使用 was6-maven-plugin。

它做的事情完全相同(它使用 Websphere 自定义标签(如 wsejbdeploy)生成一个 ant 文件,然后使用 Websphere ws_ant 实用程序调用它),但它会为您计算大部分属性和路径。

还有一个名为 wsDefaultBindings 的 ant 任务(请参阅上面的链接),您可以直接使用它或通过 was6-maven-plugin 使用它,它可以帮助您使用外部文件创建绑定

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.javadoc.doc%2Fweb%2Fapidocs%2Findex.html&com%2Fibm%2Fwebsphere%2Fant%2Ftasks %2FInstallApplication.html

问候

于 2013-10-23T10:51:18.773 回答