18
Июл
2017

как сделать запрос на веб сервис с помощью apache camel

Здраствуйте. У меня есть файлик request.xml с таким содержимым:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://localhost:8080/webservices">
   <soapenv:Header/>
   <soapenv:Body>
      <web:deviceRequest>
         <!--Optional:-->
         <devices>              
                <device id="1" value="123" date="2002-05-30T09:00:00"/>
                <device id="2" value="123" date="2004-05-30T09:00:00"/>
                <device id="3" value="123" date="2006-05-30T09:00:00"/>
                <device id="4" value="123" date="2008-05-30T09:00:00"/>
                <device id="5" value="123" date="2010-05-30T09:00:00"/>
         </devices>
      </web:deviceRequest>
   </soapenv:Body>
</soapenv:Envelope>

Мне нужно отправить запрос на веб сервис. У меня все работает если я отправляю запрос на обычной яве.

        SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
        SOAPConnection soapConnection = soapConnectionFactory.createConnection();
        String url = "http://localhost:8080/ws";
        SOAPMessage soapResponse = soapConnection.call( /* содержимое файлика request.xml сконвертированное в SOAPMessage */ request  , url);
        System.out.print("Response SOAP Message:");
        soapResponse.writeTo(System.out);
        soapConnection.close();

Выше приведенный код работает


Но мне нужно отправить содержимое посредством apache camel, я делаю так.

CamelContext camelContext = new DefaultCamelContext();
camelContext.addRoutes(new RouteBuilder() {
    @Override
    public void configure() {
        // uploadfolder - папка где лежит request.xml
        from("file:uploadfolder").to("spring-ws:http://localhost:8080/ws");
    }
});
camelContext.start();

Вот Pom.xml

<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.18.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-ws</artifactId>
        <version>2.18.1</version>
    </dependency>

При отправке через camel ничего не работает и пишется такое сообщение:

[http-nio-8080-exec-3] WARN  o.s.ws.server.EndpointNotFound - No endpoint mapping found for [SaajSoapMessage {http://schemas.xmlsoap.org/soap/envelope/}Envelope]

org.springframework.ws.client.WebServiceTransportException:  [404]

Помогите понять чего он хочет. Ведь если на обычной яве все нормально отправляется, значит проблема не в веб сервисе ?

Источник: https://ru.stackoverflow.com/questions/693666/%D0%BA%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-apache-camel

Share

Тебе может это понравится...