0

camel route ファイルを使用した cxf rest Web サービスの動作に混乱しています。コントロールが残りのサービス インターフェイスの実装クラス内に入らないことに気付きました。

以下は、cxf jaxrs と camel を使用して Web サービスを作成する手順です。

  1. インターフェイスを作成しました。

    @Path("/licence")
    public interface LicenceThresholdService {
        @POST
        @Consumes({MediaType.APPLICATION_JSON})
        @Path("/userThresholdBreached")
        Boolean isUsersThresholdBreached(User user);
    }
    
  2. 実装クラス

    public class LicenceThresholdServiceImpl implements LicenceThresholdService {
        @Override
        public Boolean isUsersThresholdBreached(final OEMUser user) {
            System.out.println("inside threshold breched method");
            return Boolean.FALSE;
        }
     }
    
  3. cxf jaxrs サーバーを作成する

    <beans ...
        xmlns:cxf="http://camel.apache.org/schema/cxf"
        ...
        xsi:schemaLocation="
         http://camel.apache.org/schema/cxf 
         http://camel.apache.org/schema/cxf/camel-cxf.xsd
        ...">
        <cxf:rsServer id="userProfileService"
            address="http://{{service.host}}:{{service.port}}/userProfile"
            serviceClass="com.jato.esb.service.licence.LicenceThresholdServiceImpl"
            loggingFeatureEnabled="true">
            <cxf:providers>
                <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
            </cxf:providers>
        </cxf:rsServer>
    </beans>
    
  4. camel route エンドポイントに cxf rsServer Bean を注入

    <from uri="cxfrs://bean://userProfileService" />
    

今私の問題は、このサービスを呼び出すたびに、コントロールがクラスisUsersThresholdBreachedのメソッド内に入らないことです。LicenceThresholdServiceImplこのため、cxf レスト サービスを十分に活用できません。

Mule esb と Spring アプリケーション ファイルを使用して cxf レスト サービスを試してみましたが、制御が常に実装クラス内にあることに気付きましたが、これはキャメル ルートには当てはまりません。redhat ヒューズ esb を使用しています。

この問題について私を助けてください。これは、キャメルを使用することに対する深刻な懸念事項です。

4

1 に答える 1