1

我需要自动化使用 HermesJMS 和 Maven2 的 SoapUI 项目。我得到的问题是 SoapUI 确实无法将 HermesJMS 集成到其类路径中。

2012-09-20 15:48:21,340 ERROR [SoapUI] An error occured [java.lang.NullPointerException], see error log for details
2012-09-20 15:48:21,465 ERROR [errorlog] java.lang.NullPointerException
java.lang.NullPointerException
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.addHermesJarsToClasspath(HermesUtils.java:120)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.getHermes(HermesUtils.java:74)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.hermesContext(HermesUtils.java:55)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.getHermes(HermesUtils.java:200)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.HermesJmsRequestTransport.getHermes(HermesJmsRequestTransport.java:211)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.HermesJmsRequestTransport.init(HermesJmsRequestTransport.java:102)

似乎集成并不像我想象的那么顺利。

这里的插件配置:

<plugin>
        <groupId>eviware</groupId>
        <artifactId>maven-soapui-plugin</artifactId>
        <version>4.5.1</version>
        <dependencies>
                <!-- Start IBM DB2 Support -->
                <dependency>
                        <groupId>com.ibm.db2</groupId>
                        <artifactId>db2jcc</artifactId>
                        <version>3.1.57</version>
                </dependency>
                <dependency>
                        <groupId>com.ibm.db2</groupId>
                        <artifactId>db2jcc_license_cu</artifactId>
                        <version>3.1.57</version>
                </dependency>
                <dependency>
                        <groupId>com.ibm.db2</groupId>
                        <artifactId>db2jcc_license_cisuz</artifactId>
                        <version>3.1.57</version>
                </dependency>
                <!-- End IBM DB2 Support -->
                <dependency>
                        <groupId>hermesjms</groupId>
                        <artifactId>hermes</artifactId>
                        <version>1.14</version>
                </dependency>
        </dependencies>
        <configuration>
                <projectFile>src/test/resources/config/BATS-soapui.xml</projectFile>
                <testSuite>BATS</testSuite>
                <outputFolder>${basedir}/target/soapui</outputFolder>
                <projectProperties>
                        <value>outputFileLocation=${outputFileLocation}</value>
                        <value>malpakke=${malpakke}</value>
                        <value>fagomrade=${fagomrade}</value>
                        <value>useDatabase=${useDatabase}</value>
                </projectProperties>
        </configuration>
        <executions>
                <execution>
                        <phase>integration-test</phase>
                        <goals>
                                <goal>test</goal>
                        </goals>
                </execution>
        </executions>
</plugin>

我猜 SoapUI 没有正确找到 Hermes - 但我该如何解决呢?

4

3 回答 3

1

我通过以下步骤启动并运行它:

  • 在 pom.xml 中添加 hermes-1.14 依赖
  • 将 hermesJMS 安装复制到构建服务器的文件系统
  • 将 hermes-config.xml 添加到项目中,但在每次构建之前将其复制到文件系统
  • 将soapui-settings.xml 添加到项目中,并与soapui-maven-plugin 中的-tag 一起使用
  • 使用您的 hermesJMS 安装路径更新 soapui-settings.xml
  • 使用您的 hermes-config.xml 位置的路径更新 SoapUI 项目文件

(请记住,配置文件中的路径位置最好与操作系统无关)。

于 2013-10-23T09:30:35.503 回答
0

我知道它已经晚了,但无论如何它会对其他人有所帮助。

通过在配置元素下的 pom xml 中指定 SOAPUI 设置 XML 的位置,我让 Hermes 与 Maven 一起工作:

<settingsFile>C:/softwares/soapui/soapui-settings.xml</settingsFile>

这样,我们就不需要复制hermes文件夹了。

于 2013-06-05T22:56:44.710 回答
0

我终于解决了这个问题。事实证明,pom.xml 中 hermes 的依赖项并没有使 hermes 可用于soapUi。我们最终将 hermes 文件夹包含在我们的 /src/test/resources 文件夹中,并指向项目 XML 中的这个文件夹。

于 2012-09-24T10:02:34.923 回答