내가하려는 것은 .properties 파일이나 any와 같은 것으로 끝점 주소 구성과 서비스 버전을 구분하는 것입니다. UAT 및 PRODUCTION 환경과 같은 다양한 환경에서 끝점이 달라집니다. 또한 서비스 제공자는 ABCDEF_10_4와 같은 명명법을 사용하여 서비스/메시지 버전을 제어하고 ABCDEF는 서비스의 이름이며 10.4는 릴리스 버전입니다. 우리는 서비스 소비자 일 뿐이므로 서버 쪽에서는 아무 것도 변경할 수 없습니다. .properties의 유사가wsdl 및 생성 된 스텁에 속성 파일에서 읽은 속성을 얻는 방법
endpointurl=http://xxx.xxx.xxx.xxx:10000
msgname=ABCDEF_10_4
servicename=myService
같은 파일 값 쌍 :
는 내가 찾던 나는 이름에 그 값을 지정할 수있는 곳
<wsdl:operation name="service1">
<soap:operation soapAction="**${endpointurl}/${msgname}**" />
<wsdl:input>
<soap:body use="literal" />
<soap:header use="literal" message="tns:MessageHeader" part="session" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
<soap:header use="literal" message="tns:MessageHeader" part="session" />
</wsdl:output>
</wsdl:operation>
<wsdl:service name="**${servicename}**">
<wsdl:port binding="tns:ServiceBinding" name="ServicePort">
<soap:address location="**${endpointurl}**" />
</wsdl:port>
</wsdl:service>
비슷한의 사용을 할 수있는 방법입니다
문제는 서비스 제공 업체가 새로운 버전의 서비스를 출시 할 때마다 wsdl을 변경하고 싶지 않으며 나와 팀이 한 곳에서만 서비스 버전을 관리하는 것이 더 쉬울 것입니다.
또한 우리는 UAT/DEV/PROD/TEST 환경에서 응용 프로그램을 배포 할 때 매번 wsdl을 변경하거나 각 환경에 대해 많은 wsdl 파일을 가질 필요가 없습니다.
우리는 클라이언트 스텁을 생성하기 위해 maven cxf codegen plugin을 사용하고 있습니다.
이와 비슷한 어떤 생각이나 가능한 방법이 있을까요?
내가 필요한 항목에 대처하기로되어있는 maven-properties-plugin을 발견했습니다. jar 파일을 빌드하고 wsdl을 검사했는데 wsdl 파일의 $ {param}이 .properties의 값으로 바뀌 었습니다. 그러나 생성 된 클라이언트 스텁의 $ {param}은 대체되지 않습니다. 생성 된 src의 모든 리소스를 properties에 지정된 값으로 대체 된 변수로 바꾸는 방법이 있습니까? 도움을 주시면 감사하겠습니다. – papokk