Tibco 未收到来自柑橘测试的柑橘 JDBC 消息

Tibco is not receiving Citrus JDBC Message from citrus-test

我开始了解柑橘框架,所以我用 XML DSL 做了一些基本测试,直到我想用柑橘测试一个简单的 JDBC 查询。它不适用于 XML DSL,所以我切换到 Java DSL,但我遇到了同样的错误。

JMS 接收器被触发后,我在 tibco 中执行 SQL 查询,如果出现任何错误,我的 JMS 错误队列就会被触发。 因此,对于 Citrus 的任何测试,我都会收到一条 JMS 错误队列消息,其中包含所提供的错误。和 Tibco 中的 MSG 代码:BW-JDBC-100014

我将最新的 citrus-db 驱动程序放在 ../tibco/tpcl/5.10/jdbc/../tibco/tpcl/5.10/lib/ 中,并用以下内容更新了 designer.tra 文件

## this will be prepended to tibco.class.path.extended
tibco.env.CUSTOM_CP_EXT ... :%TPCL_HOME%/jdbc/citrus-db-driver-0.2-....-full.jar

# Set CLASS PATH
tibco.env.STD_CP_EXT ... :%TPCL_HOME%/jdbc/citrus-db-driver-0.2-...-full.jar

我不知道该尝试什么,可能是我犯了一些基本错误?

<?xml version = "1.0" encoding = "UTF-8"?>
<exceptiondata>
    <ActivityErrors>
        <ns0:JDBCSQLException xmlns:ns0 = "http://schemas.tibco.com/bw/plugins/jdbc/5.0/jdbcExceptions">
            <msg>"JDBC error reported: (SQLState = null) - java.sql.SQLException: com.shaded.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.consol.citrus.db.driver.exchange.DatabaseResult` out of START_ARRAY token  at [Source: (org.shaded.apache.http.conn.EofSensorInputStream); line: 1, column: 1]"</msg>
            <msgCode>BW-JDBC-100014</msgCode>
            <sqlState/>
            <detailStr>java.sql.SQLException: com.shaded.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.consol.citrus.db.driver.exchange.DatabaseResult` out of START_ARRAY token
 at [Source: (org.shaded.apache.http.conn.EofSensorInputStream); line: 1, column: 1]
            </detailStr>
        </ns0:JDBCSQLException>
    </ActivityErrors>
</exceptiondata>

正如我所说,我的测试结果正常,但在我的 Tibco Designer 中出现上述错误。

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Citrus Integration Test 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ CitrusTest ---
[INFO] Deleting /local-home/workspace/myProject/CitrusTest/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ CitrusTest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /local-home/workspace/myProject/CitrusTest/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ CitrusTest ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ CitrusTest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] Copying 6 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ CitrusTest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to /local-home/workspace/myProject/CitrusTest/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.20.1:test (default-test) @ CitrusTest ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running de.myProject.ea.MyJdbcTest
10:59:54,419 INFO  BeanDefinitionReader| Loading XML bean definitions from URL [file:/local-home/workspace/myProject/CitrusTest/target/test-classes/citrus-context.xml]
10:59:55,319 INFO              util.log| Logging initialized @1777ms to org.eclipse.jetty.util.log.Slf4jLog
10:59:55,374 INFO  .EmbeddedJettyServer| == Spark has ignited ...
10:59:55,374 INFO  .EmbeddedJettyServer| >> Listening on 0.0.0.0:3307
10:59:55,377 INFO         server.Server| jetty-9.4.11.v20180605; built: 2018-06-05T18:24:03.829Z; git: d5fc0523cfa96bfebfbda19606cad384d772f04c; jvm 1.8.0_152-b16
10:59:55,402 INFO        server.session| DefaultSessionIdManager workerName=node0
10:59:55,402 INFO        server.session| No SessionScavenger set, using defaults
10:59:55,403 INFO        server.session| node0 Scavenging every 660000ms
10:59:55,442 INFO  er.AbstractConnector| Started ServerConnector@74a8c155{HTTP/1.1,[http/1.1]}{0.0.0.0:3307}
10:59:55,442 INFO         server.Server| Started @1900ms
10:59:55,442 INFO     server.JdbcServer| Started server: jdbcServer_DBName
10:59:55,498 INFO         server.Server| jetty-9.4.11.v20180605; built: 2018-06-05T18:24:03.829Z; git: d5fc0523cfa96bfebfbda19606cad384d772f04c; jvm 1.8.0_152-b16
10:59:55,529 INFO   ContextHandler.ROOT| Initializing Spring FrameworkServlet 'WebServer_webservicename-servlet'
10:59:55,529 INFO  ageDispatcherServlet| FrameworkServlet 'WebServer_webservicename-servlet': initialization started
10:59:55,673 INFO  ageDispatcherServlet| FrameworkServlet 'WebServer_webservicename-servlet': initialization completed in 144 ms
10:59:55,673 INFO  ndler.ContextHandler| Started o.e.j.s.ServletContextHandler@726a17c4{/,file:///local-home/workspace/myProject/CitrusTest/src/main/resources,AVAILABLE}
10:59:55,680 INFO  er.AbstractConnector| Started ServerConnector@2687f956{HTTP/1.1,[http/1.1]}{0.0.0.0:12345}
10:59:55,680 INFO         server.Server| Started @2138ms
10:59:55,680 INFO  ver.WebServiceServer| Started server: WebServer_webservicename
10:59:55,714 INFO  port.LoggingReporter| 
10:59:55,714 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:55,714 INFO  port.LoggingReporter|        .__  __                       
10:59:55,714 INFO  port.LoggingReporter|   ____ |__|/  |________ __ __  ______
10:59:55,714 INFO  port.LoggingReporter| _/ ___\|  \   __\_  __ \  |  \/  ___/
10:59:55,714 INFO  port.LoggingReporter| \  \___|  ||  |  |  | \/  |  /\___ \ 
10:59:55,714 INFO  port.LoggingReporter|  \___  >__||__|  |__|  |____//____  >
10:59:55,714 INFO  port.LoggingReporter|      \/                           \/
10:59:55,714 INFO  port.LoggingReporter| 
10:59:55,715 INFO  port.LoggingReporter| C I T R U S  T E S T S  2.8.0
10:59:55,715 INFO  port.LoggingReporter| 
10:59:55,715 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:55,715 INFO  port.LoggingReporter| 
10:59:55,715 INFO  port.LoggingReporter| 
10:59:55,715 INFO  port.LoggingReporter| BEFORE TEST SUITE: SUCCESS
10:59:55,715 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:55,715 INFO  port.LoggingReporter| 
10:59:55,763 WARN     server.JdbcServer| Unable to create test context factory from Spring application context - using minimal test context factory
10:59:55,765 INFO  .EmbeddedJettyServer| == Spark has ignited ...
10:59:55,765 INFO  .EmbeddedJettyServer| >> Listening on 0.0.0.0:3308
10:59:55,765 INFO         server.Server| jetty-9.4.11.v20180605; built: 2018-06-05T18:24:03.829Z; git: ...; jvm 1.8.0_152-b16
10:59:55,767 INFO        server.session| DefaultSessionIdManager workerName=node0
10:59:55,767 INFO        server.session| No SessionScavenger set, using defaults
10:59:55,767 INFO        server.session| node0 Scavenging every 600000ms
10:59:55,772 INFO  er.AbstractConnector| Started ServerConnector@13db0f9f{HTTP/1.1,[http/1.1]}{0.0.0.0:3308}
10:59:55,772 INFO         server.Server| Started @2231ms
10:59:55,772 INFO     server.JdbcServer| Started server: JdbcServer
10:59:55,816 INFO  port.LoggingReporter| 
10:59:55,816 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:55,816 INFO  port.LoggingReporter| 
10:59:55,817 INFO  port.LoggingReporter| 
10:59:56,289 INFO  PurgeJmsQueuesAction| Purged JMS queues
10:59:56,290 INFO  port.LoggingReporter| 
10:59:56,290 INFO  port.LoggingReporter| 
10:59:56,290 INFO    actions.EchoAction|  Queues erfolgreich bereinigt! 
10:59:56,291 INFO  port.LoggingReporter| 
10:59:56,291 INFO  port.LoggingReporter| 
10:59:56,332 INFO  endpoint.JmsProducer| Message was sent to JMS destination: 'jdbc.trigger'
10:59:56,333 INFO  port.LoggingReporter| 
10:59:56,333 INFO  port.LoggingReporter| 
10:59:56,333 INFO    actions.EchoAction| JMS Message was sent to: myJmsJdbcSender
10:59:56,333 INFO  port.LoggingReporter| 
10:59:56,333 INFO  port.LoggingReporter| 
10:59:56,429 INFO     server.JdbcServer| GET http://localhost:3308/connection/transaction
10:59:56,440 INFO     server.JdbcServer| POST http://localhost:3308/query
10:59:56,442 INFO  intAdapterController| Received execute query request: select o.value from order_db o where o.orderid=? - (123)
10:59:56,494 INFO  .ChannelSyncProducer| Message was sent to channel: 'JdbcServer.inbound'
10:59:56,530 INFO  TextMessageValidator| XML message validation successful: All values OK
10:59:56,530 INFO  ssageHeaderValidator| Message header validation successful: All values OK
10:59:56,530 INFO  port.LoggingReporter| 
10:59:56,530 INFO  port.LoggingReporter| 
10:59:56,530 INFO    actions.EchoAction| SQL Query erfolgreich: select o.value from order_db o where o.orderid=? - (123)
10:59:56,530 INFO  port.LoggingReporter| 
10:59:56,530 INFO  port.LoggingReporter| 
10:59:56,533 INFO  .ChannelSyncConsumer| Message was sent to reply channel: 'org.springframework.messaging.core.GenericMessagingTemplate$TemporaryReplyChannel@5c1f6d57'
10:59:56,533 INFO  .ChannelSyncProducer| Received synchronous response from reply channel
10:59:56,533 INFO  port.LoggingReporter| 
10:59:56,533 INFO  port.LoggingReporter| 
10:59:56,533 INFO    actions.EchoAction| SQL Antwort erfolgreich.
10:59:56,533 INFO  port.LoggingReporter| 
10:59:56,601 INFO     server.JdbcServer| GET http://localhost:3308/statement
10:59:56,638 INFO  port.LoggingReporter| 
10:59:56,639 INFO  port.LoggingReporter| TEST SUCCESS MyJdbcTest (de.myProject.ea)
10:59:56,639 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:56,639 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| AFTER TEST SUITE: SUCCESS
10:59:56,656 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,656 INFO  port.LoggingReporter| CITRUS TEST RESULTS
10:59:56,656 INFO  port.LoggingReporter| 
10:59:56,657 INFO  port.LoggingReporter|  MyJdbcTest ..................................................... SUCCESS
10:59:56,657 INFO  port.LoggingReporter| 
10:59:56,657 INFO  port.LoggingReporter| TOTAL: 1
10:59:56,658 INFO  port.LoggingReporter| FAILED:    0 (0.0%)
10:59:56,658 INFO  port.LoggingReporter| SUCCESS:   1 (100.0%)
10:59:56,658 INFO  port.LoggingReporter| 
10:59:56,658 INFO  port.LoggingReporter| ------------------------------------------------------------------------
10:59:56,680 INFO  ctOutputFileReporter| Generated test report: target/citrus-reports/citrus-test-results.html
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.943 s - in de.myProject.ea.MyJdbcTest
10:59:56,800 INFO  er.AbstractConnector| Stopped ServerConnector@2687f956{HTTP/1.1,[http/1.1]}{0.0.0.0:12345}
10:59:56,800 INFO   ContextHandler.ROOT| Destroying Spring FrameworkServlet 'WebServer_webservicename-servlet'
10:59:56,803 INFO  ndler.ContextHandler| Stopped o.e.j.s.ServletContextHandler@726a17c4{/,file:///local-home/workspace/myProject/CitrusTest/src/main/resources,UNAVAILABLE}
10:59:56,804 INFO  .EmbeddedJettyServer| >>> Spark shutting down ...
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ CitrusTest ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /local-home/workspace/myProject/CitrusTest/target/CitrusTest-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.522 s
[INFO] Finished at: 2019-07-12T10:59:57+02:00
[INFO] Final Memory: 34M/601M
[INFO] ------------------------------------------------------------------------

编辑:如果我错过了一些重要的事情,请怜悯一下,这是我的第一个 post,但很长一段时间 Whosebug-reader。 :-)

EDIT2:当我将 JDBC 查询更改为 JDBC 更新(Tibco 工具)时,它工作正常。我不明白为什么,如果我不得不猜测是发送的答案无法正确阅读?

我不知道这是否是一个错误,但是当我切换到 citrus-db-driver 的旧版本时,SQL 查询不再有问题。

所以 citrus-db-driver-0.2-20180506.225718-22-full.jar 它确实有效但是 citrus-db-driver-0.2.0-20190610.094549-9-full.jar 我遇到了问题 运行 SQL 在 Tibco 中使用简单的 Select 语句查询 'SELECT title from book where id = 123'.