2016-07-19 31 views
0

CXFとSpringでRESTサービスを取得しようとしていて、この壁に衝突しました。私の/ services/pageにアクセスし、RESTサービスの下にリストされているMyServiceを見ることができるので、他のすべてはうまく見えます。私はサービスのWADLを見ることができます。私の方法がそこに現れています。私はそれにアクセスしようとすると、例外が発生します。CXF + Spring:ルートリソースに一致するリクエストパスが見つかりませんでした。

public class MyServiceImpl implements MyService { 

public Response testService() { 
     // Code 

     return Response.status(200).entity(gson.toJson(json)).build(); 
    } 
} 

Configurationクラス:

@Configuration 
public class WebServiceSpringConfig { 

    @Bean(name=Bus.DEFAULT_BUS_ID) 
     public SpringBus springBus() { 
      return new SpringBus(); 
     } 


     @Bean 
     public Server MyService() { 

      JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean(); 
      endpoint.setBus(springBus()); 
      endpoint.setAddress("/MyService"); 
      endpoint.setServiceBean(new MyServiceImpl()); 
      return endpoint.create(); 
     } 
    } 

春の設定とCXFサーブレットがweb.xmlで宣言されている私のサービス・インターフェース

@Path("/MyService") 
@Service 
public interface MyService { 

    @GET 
    @Path("/goTest") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response testService(); 
} 

サービス実装

WARNING: No root resource matching request path /testApp/services/MyService/goTest has been found, Relative Path: /goTest. Please enable FINE/TRACE log level for more details. 
Jul 19, 2016 4:30:50 PM org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse 
WARNING: javax.ws.rs.NotFoundException: HTTP 404 Not Found 

私は、以下のようにアクセスすることができCXF 3.1.4

答えて

3

であなたのURL goTestを春の4.2.0を使用しています。要するに

http://<ip-add>:<port>/<web-root>/services/MyService/MyService/goTest 

あなたは@Path

/testApp/services/MyService/MyService/goTest 
として setAddressととしてもMyServiceでを設定したとして再度MyServiceでを追加
関連する問題