You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "sharad.hunk" <sh...@gmail.com> on 2015/12/31 13:38:10 UTC

Not able to call a direct http soap service using rest service, different exceptions are coming

I just need to call a soap url using a rest service, it is quite urgent but
no success even after some reading and searching on web.

The rest service is just for calling soap service with getHelloWorldAsString
method.

I have followed many thread but no success, my soap service is running file
and I can access it directly.

I am using spring with Jboss eap, here is my camel context file:

-------------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>


<beans xmlns="http://www.springframework.org/schema/beans"

	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cxf="http://camel.apache.org/schema/cxf"

	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:context="http://www.springframework.org/schema/context"
	xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xs="http://www.w3.org/2001/XMLSchema"

	xsi:schemaLocation="

http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd

http://camel.apache.org/schema/cxf
http://camel.apache.org/schema/cxf/camel-cxf.xsd

http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd

http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd ">



	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />


	<bean class="com.aexp.loyalty.web.controller.ConsumerController"
		id="consumerController" />

	<bean class="com.aexp.loyalty.dao.impl.ConsumerDAOImpl" id="DaoImpl" />
	<bean class="com.aexp.loyalty.services.impl.ConsumerServiceImpl"
		id="ServiceImpl" />
	<bean id="myProcessor" class="com.apex.loyalty.processor.MyProcessor" />




	<cxf:rsServer id="restcxfService" address="/">
		<cxf:serviceBeans>
			<ref bean="consumerController" />
		</cxf:serviceBeans>

		<cxf:providers>
			<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
		</cxf:providers>
	</cxf:rsServer>

	<cxf:cxfEndpoint id="customerSoapServiceEndpoint"
		address="http://localhost:9090/ws/hello"
wsdlURL="http://localhost:9090/ws/hello?wsdl"
		serviceClass="com.aexp.loyalty.mock.soap.ws.HelloWorldImplService"
		endpointName="s:HelloWorldImplPort" serviceName="s:HelloWorldImplService"
		xmlns:s="http://ws.soap.mock.loyalty.aexp.com/" />
	
	
	


	
	<camelContext xmlns="http://camel.apache.org/schema/spring">

		

		<route id="rsRoute">
			<from uri="cxfrs:bean:restcxfService" />
			<to uri="log:input" />
			<process ref="myProcessor" />
			<removeHeaders pattern="CamelHttp*" />
			
			
			
			
			
			
			
			
			
			
			
			<to uri="direct:callingSoapDirect" />
			
			
		</route>

		<route id="callingSoapDirect">
			<from uri="direct:callingSoapDirect" />
			
			
			<to uri="direct:invokePartnerEnrollmentSOAP" />
		</route>

		<route id="invokePartnerEnrollmentSOAP">
			<from uri="direct:invokePartnerEnrollmentSOAP" />
			
			
			<removeHeaders pattern="CamelHttp*" />

			<to
uri="http://localhost:9090/ws/hello/getHelloWorldAsString?bridgeEndpoint=true"
/>

		</route>















	</camelContext>

</beans>
----------------------------------------------------------------------------------------


public class MyProcessor implements Processor {

	@Override
	public void process(Exchange exchange) throws Exception {
		System.err.println(" I am processing the rest request");
		// exchange.getIn().setHeader("operationName", "getHelloWorldAsString");
		exchange.getIn().setBody("");
		// exchange.getIn().setBody(new InputStream() {
		//
		// @Override
		// public int read() throws IOException {
		// // TODO Auto-generated method stub
		// return 0;
		// }
		// });

	}

}
--------------------------------------------------------------------

Controller for rest, I am just getHelloWorldAsString method rest is useless:

@Component
@Path("/v1")
public class ConsumerController {


	ConsumerService consumerService;

	Logger log = Logger.getLogger(ConsumerController.class);

	@GET
	@Path("getHelloWorldAsString")
	@Produces("application/json")
	public Response getHelloWorldAsString() {
		return Response.ok().build();
		
	}
	
	@GET
	@Path("consumers/{consumerId}")
	@Produces("application/json")
	public Response getConsumerId(@PathParam("consumerId")Integer consumerId) {
		return null;

		/*log.info("Inside getConsumerId :: consumerId :: "+consumerId);

		if(consumerId <= 0){
			return Response
					.status(Response.Status.BAD_REQUEST)
					.entity("{\"error\":\"Invalid consumer id
\"}").type("application/json")
					.build();
		}

		try{
			consumerService = (ConsumerService)
ApplicationContextProvider.getBean("consumerService");

			Consumer consumer = consumerService.fetchConsumerByIdService(consumerId);

			log.info("fetched consumer :: "+consumer);

			if(consumer != null && consumer.getConsumerId() != null)
				return Response.ok().entity(consumer).build();
		}
		catch(Exception exception){
			log.error(exception.getMessage());
		}

		return Response
				.status(Response.Status.NOT_FOUND)
				.entity("{\"error\":\"Consumer information not
found\"}").type("application/json")
				.build();
*/
	}

	@POST
	@Path("consumer")
	@Produces("application/json")
	public Response saveConsumer(Consumer consumer){
		return null;

		/*log.info("inside saveConsumer:: consumer::"+consumer);

		if(consumer != null && consumer.getName() != null){
			try{
				consumerService = (ConsumerService)
ApplicationContextProvider.getBean("consumerService");

				Consumer createdConsumer = consumerService.saveConsumer(consumer);

				if(createdConsumer != null){
					return Response
							.status(Response.Status.CREATED)
							.entity(createdConsumer).type("application/json")
							.build();
				}

			}catch(Exception exception){
				log.error(exception.getMessage());
			}
		}
		return Response
				.status(Response.Status.BAD_REQUEST)
				.entity("{\"error\":\"Unfortunately, the application cannot process your
request at this time \"}").type("application/json")
				.build();*/
	}
	
/*	@PUT
	@Path("put/consumer")
	@Produces("application/json")
	public Response updateConsumer(Consumer consumer){

		log.info("inside UPDATEConsumer:: consumer::"+consumer);

		if(consumer != null && consumer.getConsumerId() != null &&
consumer.getName() != null){
			try{
				consumerService = (ConsumerService)
ApplicationContextProvider.getBean("consumerService");

				Consumer updatedConsumer = consumerService.updateConsumer(consumer);
				
				if(updatedConsumer != null){
					return Response
							.status(Response.Status.OK)
							.entity(updatedConsumer).type("application/json")
							.build();
				}

			}catch(Exception exception){
				log.error(exception.getMessage());
			}
		}
		return Response
				.status(Response.Status.NOT_FOUND)
				.entity("{\"error\":\"Consumer information not
found\"}").type("application/json")
				.build();
	}


	@DELETE
	@Path("delete/consumers/{consumerId}")
	@Produces("application/json")
	public Response deleteConsumerId(@PathParam("consumerId")Integer
consumerId) {

		log.info("Inside deleteConsumerId :: consumerId :: "+consumerId);

		if(consumerId <= 0){
			return Response
					.status(Response.Status.BAD_REQUEST)
					.entity("{\"error\":\"Invalid consumer id
\"}").type("application/json")
					.build();
		}

		try{
			consumerService = (ConsumerService)
ApplicationContextProvider.getBean("consumerService");

			Consumer consumer =
consumerService.deleteConsumerByIdService(consumerId);

			log.info("deleted consumer :: "+consumer);

			if(consumer != null && consumer.getConsumerId() != null)
				return Response.ok().entity(consumer).build();
		}
		catch(Exception exception){
			log.error(exception.getMessage());
		}

		return Response
				.status(Response.Status.NOT_FOUND)
				.entity("{\"error\":\"Consumer information not
found\"}").type("application/json")
				.build();

	}*/




}






--
View this message in context: http://camel.465427.n5.nabble.com/Not-able-to-call-a-direct-http-soap-service-using-rest-service-different-exceptions-are-coming-tp5775642.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Not able to call a direct http soap service using rest service, different exceptions are coming

Posted by "sharad.hunk" <sh...@gmail.com>.
FYI, I used the SOAP URL directly as I was getting few errors regarding http
component and binding OperationInfo so making a cxf end point to soap call
is redundant in xml.



--
View this message in context: http://camel.465427.n5.nabble.com/Not-able-to-call-a-direct-http-soap-service-using-rest-service-different-exceptions-are-coming-tp5775642p5775643.html
Sent from the Camel - Users mailing list archive at Nabble.com.