Spring コンテナーを使用した Jax-Ws Metro プロジェクトがあります。SoapHandler 内のフィールドを自動配線できません。インターネットリソースからすべてを試しましたが、成功しませんでした。フィールドは常に null です。フィールド名は「paymentPortalService」です。
私のハンドラクラス:
public class CustomSoapHeaderHandler extends SpringBeanAutowiringSupport implements SOAPHandler<SOAPMessageContext> {
private static final Logger log = Logger.getLogger(CustomSoapHeaderHandler.class);
@Autowire
private PaymentPortalService paymentPortalService;
}
リモート サービスを呼び出すプロキシ サービスがあります。このハンドラをリモート サービス コール メソッドのハンドラ チェーンに追加しました。
@Service
public class CustomServiceProxy {
private final Logger log = Logger.getLogger(CustomServiceProxy.class);
private RemoteServicePort pspPort;
public CustomServiceProxy() {
try {
pspPort = new RemoteService_Service(new URL("https://x?wsdl")).getRemoteServicePort();
Binding binding = ((BindingProvider) pspPort).getBinding();
List<Handler> handlers = binding.getHandlerChain();
handlers.add(new CustomSoapHeaderHandler());
binding.setHandlerChain(handlers);
}
}
@Autowire を @Resource に変更し、インターネットから他のソリューションをいくつか変更しようとしましたが、成功しませんでした。EE コンテナーなしで Apache Tomcat 8 を使用しています。
前もって感謝します!