問題
-
新しいエンドポイントを作成するには、次のドキュメントに従ってカスタマイズSOAP拡張モジュールを作成します。
-
コンポーネントは、フォルダ resources → configuration next files の中にある:
-
com.liferay.portal.remote.cxf.common.configuration.CXFEndpointPublisherConfiguration-authservice.config
-
com.liferay.portal.remote.soap.extender.internal.configuration.SoapExtenderConfiguration-authservicejaxws.config
-
- このコンフィギュレーションは、以下のコンフィギュレーションを作成した:
コントロールパネル -> システム設定 -> Web API → CXF Endopint および SOAP Extender は四半期ごとにバージョンアップします。
- この設定方法は、現在の四半期バージョンで変更されています。
注:以下の解決策はカスタマイズが必要であり、チームの裁量によってのみ実施されるべきである。 Liferayサポートはカスタマイズの設計や実装を支援することはできません。
環境
- 2024.Q1+
解像度
- 2024.q1 以降、カスタム・モジュールのコンフィギュレーションの作成方法が変更されました。 このコンフィギュレーションを正しく作成するための手順:
-
configuratorという名前のフォルダを作成し、モジュールのルートにconfigurations.jsonというファイルを1つ置く。 このファイルは、以前にconfigsファイルに保存されたコンフィギュレーションを含むJSONファイルでなければならない。SoapExtenderConfigurationコンフィギュレーションの具体的なケースでは、Liferayソースコードのクラス自体を参照し、同じフィールドとフォーマットでJSONを記入してください。 同じことがCXFEndpointPublisherConfiguration. - モジュールがこのコンフィギュレーションを受け入れるように、
bndファイルを以下のように更新する:
-
Require-Capability:♪
osgi.extender;♪
filter := "(&(osgi.extender=osgi.configurator)(version>=1.0)(!(version>=2.0)))"
-includeresource:OSGI-INF/configurator=configurator
-
- 以下は
configurations.jsonファイルの例である:
- 以下は
{
"com.liferay.portal.remote.soap.extender.internal.configuration.SoapExtenderConfiguration~testjaxws": {
"contextPaths": [
"/test"
],
"jaxWsHandlerFilterStrings":[],
"jaxWsServiceFilterStrings":[
"(jaxws.application=true)",
"(component.name=com.liferay.XXXX)"
],
"soapDescriptorBuilderFilter":""
},
"com.liferay.portal.remote.cxf.common.configuration.CXFEndpointPublisherConfiguration~test": {
"contextPath": "/test",
"authVerifierProperties":[
"auth.verifier.PortalSessionAuthVerifier.urls.includes=*",
"auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes=*"
],
"extensions":[]
}
}
追加情報
- このカスタマイズされた開発とは別に、コンフィギュレーションは、従来の.configコンフィギュレーションファイルを使用して、ポータル(LIFERAY_HOME-> osgi -> configs)を介して追加することができます。
- ポータル自体(LIFERAY_HOME-> osgi -> configs)とカスタムモジュールの両方に同じ設定のコンフィギュレーションが同時に存在する場合、ポータルのコンフィギュレーションがカスタムのものより優先されます。