camel route ファイルを使用した cxf rest Web サービスの動作に混乱しています。コントロールが残りのサービス インターフェイスの実装クラス内に入らないことに気付きました。
以下は、cxf jaxrs と camel を使用して Web サービスを作成する手順です。
インターフェイスを作成しました。
@Path("/licence") public interface LicenceThresholdService { @POST @Consumes({MediaType.APPLICATION_JSON}) @Path("/userThresholdBreached") Boolean isUsersThresholdBreached(User user); }
実装クラス
public class LicenceThresholdServiceImpl implements LicenceThresholdService { @Override public Boolean isUsersThresholdBreached(final OEMUser user) { System.out.println("inside threshold breched method"); return Boolean.FALSE; } }
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>
camel route エンドポイントに cxf rsServer Bean を注入
<from uri="cxfrs://bean://userProfileService" />
今私の問題は、このサービスを呼び出すたびに、コントロールがクラスisUsersThresholdBreached
のメソッド内に入らないことです。LicenceThresholdServiceImpl
このため、cxf レスト サービスを十分に活用できません。
Mule esb と Spring アプリケーション ファイルを使用して cxf レスト サービスを試してみましたが、制御が常に実装クラス内にあることに気付きましたが、これはキャメル ルートには当てはまりません。redhat ヒューズ esb を使用しています。
この問題について私を助けてください。これは、キャメルを使用することに対する深刻な懸念事項です。