You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ravi21588 <ra...@gmail.com> on 2017/05/09 16:48:02 UTC

NoTypeConversionAvailableException exception while running junit test case

Hi iam getting NoTypeConversionAvailableException  while using xpath in
camel,iam using camel 2.10.Iam getting this exception only in junit test
case,but it is working fine while deployed in Jboss EAP server.

My camel route is as below:

<?xml version="1.0" encoding="ASCII"?>
<routes xmlns="http://camel.apache.org/schema/spring">
	<route id="TranslatorRoute" streamCache="true">
		<from uri="switchyard://TranslatorService" />
		<doTry>
			<choice>
				<when>
					<xpath>//response-type='ERROR'</xpath>
					<log message="choice ${body} " loggingLevel="INFO"/> 
				</when>
				<otherwise>
					<log message="Otherwise ${body} " loggingLevel="INFO"/> 
					
				</otherwise>
			</choice>
			
			<doCatch>
				<exception>java.lang.Exception</exception>
				<handled>
					<constant>false</constant>
				</handled>
				<log message="Exception " loggingLevel="INFO" />
			</doCatch>
		</doTry>
	</route>
</routes>

iam sending a jaxb object as input for the switchyard://TranslatorService
service when invoking from Junit test case.

Iam getting the below type conversion exception when it is calling the camel
XPATH.


org.apache.camel.RuntimeCamelException:
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: com.company.esb.message.model.v2.EsbMessage
to the required type: org.w3c.dom.Document with value <?xml version="1.0"
encoding="UTF-8" standalone="yes"?>
<ns2:esb-message xmlns:ns2="http://messagev2.esb.company.com/">
	<header>
		<identity>
			<user-id>esb_USER</user-id>
		</identity>
		<esb-service-name>createPolicy</esb-service-name>
		<source-system-id>CU_MC</source-system-id>
		<message-type>RES</message-type>
		<message-id>ID-CG02B459-61540-1470327657377-0-4</message-id>
		<correlation-id>ID-CG02B459-61540-1470327657377-0-4</correlation-id>
		<source-transaction-id>1234567890</source-transaction-id>
		<message-date-time>2017-05-09T17:21:33</message-date-time>
		<esb-environment>DEV</esb-environment>
                <response-type>DONE</response-type>
	</header>
</ns2:esb-message>


I have already defined the typeconverter for the Object as below and added
the TypeConverter file in META-INF services.

package com.company.esb.message.camel;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import org.apache.camel.Converter;

import com.company.esb.message.esbMessageHandler;
import com.company.esb.message.model.v2.esbMessage;

@Converter
public class esbMessageConverter {

	@Converter
	public static InputStream toInputStream (esbMessage msg) throws Exception {
		String val=new esbMessageHandler(msg).getMessageAsString();
		return new ByteArrayInputStream(val.getBytes("UTF-8"));
	}
	
	@Converter
	public static String toString (esbMessage msg) throws Exception {
		return new esbMessageHandler(msg).getMessageAsString();
	}
	
	@Converter
	public static esbMessage fromString (String src) throws Exception {
		return esbMessageHandler.readesbMessageFromXml(src);
	}
}

can you please help me with this issue.





--
View this message in context: http://camel.465427.n5.nabble.com/NoTypeConversionAvailableException-exception-while-running-junit-test-case-tp5799177.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: NoTypeConversionAvailableException exception while running junit test case

Posted by Tomohisa Igarashi <tm...@gmail.com>.
Ravi, answer for you is always same, use latest camel 2.19.0 without SwitchYard or ask Red Hat support. Stop abuse camel user community.


On 05/10/2017 01:48 AM, ravi21588 wrote:
> Hi iam getting NoTypeConversionAvailableException  while using xpath in
> camel,iam using camel 2.10.Iam getting this exception only in junit test
> case,but it is working fine while deployed in Jboss EAP server.
> 
> My camel route is as below:
> 
> <?xml version="1.0" encoding="ASCII"?>
> <routes xmlns="http://camel.apache.org/schema/spring">
> 	<route id="TranslatorRoute" streamCache="true">
> 		<from uri="switchyard://TranslatorService" />
> 		<doTry>
> 			<choice>
> 				<when>
> 					<xpath>//response-type='ERROR'</xpath>
> 					<log message="choice ${body} " loggingLevel="INFO"/>
> 				</when>
> 				<otherwise>
> 					<log message="Otherwise ${body} " loggingLevel="INFO"/>
> 					
> 				</otherwise>
> 			</choice>
> 			
> 			<doCatch>
> 				<exception>java.lang.Exception</exception>
> 				<handled>
> 					<constant>false</constant>
> 				</handled>
> 				<log message="Exception " loggingLevel="INFO" />
> 			</doCatch>
> 		</doTry>
> 	</route>
> </routes>
> 
> iam sending a jaxb object as input for the switchyard://TranslatorService
> service when invoking from Junit test case.
> 
> Iam getting the below type conversion exception when it is calling the camel
> XPATH.
> 
> 
> org.apache.camel.RuntimeCamelException:
> org.apache.camel.NoTypeConversionAvailableException: No type converter
> available to convert from type: com.company.esb.message.model.v2.EsbMessage
> to the required type: org.w3c.dom.Document with value <?xml version="1.0"
> encoding="UTF-8" standalone="yes"?>
> <ns2:esb-message xmlns:ns2="http://messagev2.esb.company.com/">
> 	<header>
> 		<identity>
> 			<user-id>esb_USER</user-id>
> 		</identity>
> 		<esb-service-name>createPolicy</esb-service-name>
> 		<source-system-id>CU_MC</source-system-id>
> 		<message-type>RES</message-type>
> 		<message-id>ID-CG02B459-61540-1470327657377-0-4</message-id>
> 		<correlation-id>ID-CG02B459-61540-1470327657377-0-4</correlation-id>
> 		<source-transaction-id>1234567890</source-transaction-id>
> 		<message-date-time>2017-05-09T17:21:33</message-date-time>
> 		<esb-environment>DEV</esb-environment>
>                  <response-type>DONE</response-type>
> 	</header>
> </ns2:esb-message>
> 
> 
> I have already defined the typeconverter for the Object as below and added
> the TypeConverter file in META-INF services.
> 
> package com.company.esb.message.camel;
> 
> import java.io.ByteArrayInputStream;
> import java.io.InputStream;
> 
> import org.apache.camel.Converter;
> 
> import com.company.esb.message.esbMessageHandler;
> import com.company.esb.message.model.v2.esbMessage;
> 
> @Converter
> public class esbMessageConverter {
> 
> 	@Converter
> 	public static InputStream toInputStream (esbMessage msg) throws Exception {
> 		String val=new esbMessageHandler(msg).getMessageAsString();
> 		return new ByteArrayInputStream(val.getBytes("UTF-8"));
> 	}
> 	
> 	@Converter
> 	public static String toString (esbMessage msg) throws Exception {
> 		return new esbMessageHandler(msg).getMessageAsString();
> 	}
> 	
> 	@Converter
> 	public static esbMessage fromString (String src) throws Exception {
> 		return esbMessageHandler.readesbMessageFromXml(src);
> 	}
> }
> 
> can you please help me with this issue.
> 
> 
> 
> 
> 
> --
> View this message in context: http://camel.465427.n5.nabble.com/NoTypeConversionAvailableException-exception-while-running-junit-test-case-tp5799177.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>