Apache camel cxfrs - 无法找到<url> Observer的请求

时间:2015-05-29 08:25:11

标签: rest apache-camel jax-rs cxfrs

我尝试开发一个休息服务,并通过Apache Camel的CXFRS公开它。我按照http://camel.apache.org/cxfrs.html中给出的所有步骤进行了操作,并且还提到了许多给出的样本。我已经提到问题Can't find the the request for url Observer,但就我而言,这是一个简单的休息请求。下面是使用的Service类,Route类和cxf上下文:

<?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:camel="http://camel.apache.org/schema/spring"
xmlns:cxf="http://camel.apache.org/schema/cxf"  xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"

   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://camel.apache.org/schema/spring
   http://camel.apache.org/schema/spring/camel-spring.xsd
   http://camel.apache.org/schema/cxf
   http://camel.apache.org/schema/cxf/camel-cxf.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://cxf.apache.org/jaxrs
   http://cxf.apache.org/schemas/jaxrs.xsd">

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

<!-- enable Spring @Component scan -->
<context:component-scan base-package="org.camelsample.rest" />

<cxf:rsServer id="rsServer" address="/rest"
    serviceClass="org.camelsample.rest.service.SampleRestService"
    loggingFeatureEnabled="true" loggingSizeLimit="20">
    <cxf:providers>
        <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
    </cxf:providers>
</cxf:rsServer>

<camel:camelContext id="samplerestservice"
    xmlns="http://camel.apache.org/schema/spring">
    <contextScan />
    <jmxAgent id="agent" createConnector="true" />
</camel:camelContext>

</beans>

服务类:

package org.camelsample.rest.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

public class SampleRestService {

    @GET
    @Path("/")
    public String sampleService() {
      return null;
    }
}

路线类:

package org.camelsample.rest.route;

import org.apache.camel.spring.SpringRouteBuilder;

public class SampleRestRoute extends SpringRouteBuilder {

    @Override
    public void configure() throws Exception {
        // TODO Auto-generated method stub
        from("cxfrs:bean:rsServer").log("Into Sample   Route").setBody(constant("Success"));
    }
}

但是当我尝试使用http://localhost:8080/rest进行测试时,我总是收到以下错误消息:

2015-05-29 13:38:37.920  WARN 6744 --- [nio-8080-exec-2] o.a.c.t.servlet.ServletController        : Can't find the the request for http://localhost:8080/favicon.ico's Observer 
2015-05-29 13:38:40.295  WARN 6744 --- [nio-8080-exec-3] o.a.c.t.servlet.ServletController        : Can't find the the request for http://localhost:8080/rest's Observer 

使用Spring启动来测试其余样本。

1 个答案:

答案 0 :(得分:0)

是否可以使用此网址?

http://localhost:8181/cxf/rest

如果您只使用address="/rest"作为您的地址,那么您可能会获得默认的Jetty端口8181和默认的CXF servlet路径/cxf作为基本URL。

如果您特别想使用您提供的网址,请尝试以下方式:

address="http://0.0.0.0:8080/rest"