Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not find proper message validator for message type 'json', please define a capable message validator for this message type #1082

Open
petervalencic opened this issue Dec 5, 2023 · 3 comments

Comments

@petervalencic
Copy link

Citrus Version
2.8.0, tests are in XML files

Question
I've encountered an unusual problem while conducting integration tests using Citrus. During multiple runs of the same test, I'm consistently encountering an error that looks something like this:

com.consol.citrus.exceptions.TestCaseFailedException: Could not find proper message validator for message type 'json', please define a capable message validator for this message type at com.consol.citrus.TestCase.executeAction(TestCase.java:227) at com.consol.citrus.TestCase.doExecute(TestCase.java:152) at com.consol.citrus.actions.AbstractTestAction.execute(AbstractTestAction.java:42) at com.consol.citrus.Citrus.run(Citrus.java:403) at com.consol.citrus.testng.AbstractTestNGCitrusTest.invokeTestMethod(AbstractTestNGCitrusTest.java:131) at com.consol.citrus.testng.AbstractTestNGCitrusTest.run(AbstractTestNGCitrusTest.java:108) at com.consol.citrus.testng.AbstractTestNGCitrusTest.run(AbstractTestNGCitrusTest.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:212) at org.testng.internal.Invoker.invokeMethod(Invoker.java:707) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) at org.testng.TestRunner.privateRun(TestRunner.java:767) at org.testng.TestRunner.run(TestRunner.java:617) at org.testng.SuiteRunner.runTest(SuiteRunner.java:348) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305) at org.testng.SuiteRunner.run(SuiteRunner.java:254) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224) at org.testng.TestNG.runSuitesLocally(TestNG.java:1149) at org.testng.TestNG.run(TestNG.java:1057) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:115) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:204) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:107) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:112) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

This issue seems to occur intermittently and I'm uncertain about the root cause. Has anyone else experienced a similar problem with Citrus integration tests? Any insights or suggestions on how to troubleshoot or mitigate this recurring error would be greatly appreciated.

Thanks in advance!

What I've tried so far

Additional information

@christophd
Copy link
Member

Citrus tries to find a proper message validator for a received message. The message type and the message content is one criteria for Citrus how to determine a proper validator. It could be in these cases that the received message content is an unexpected error message (plain text error or HTML code representing an error page). In these scenarios Citrus fails to determine a proper message validator that matches the criteria.

What message type and content would you expect? Is it JSON or something else? Can you have a look into the received message content when the error occurs? It may give us some more insights why this is happening.

In general please consider updating Citrus to a newer version 3.x or 4.x as there have been many improvements also in the area of how to determine the proper message validator for a received message.

@christophd
Copy link
Member

any news on this? can we close this one?

@bbortt
Copy link
Collaborator

bbortt commented Jan 17, 2024

I know for sure that it works in the current release and I think a backport is unrealistic at this point. would close this imho @christophd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants