Сгенерированный клиентом PortType_Stub не может быть приведен к javax.xml.ws.BindingProvider - PullRequest
1 голос
/ 30 марта 2012

При попытке получить доступ к веб-сервису через клиента, я не могу получить requestContext. Я пытаюсь получить доступ к requestContext, как это:

QuerySysStatService querySystem=new QuerySysStatService_Impl(wsdl);
QuerySysStatPortType qport=querySystem.getQuerySysStatPortType();
Map<String, Object> rContext =((BindingProvider)qport).getRequestContext();

Но когда я выполню:

((BindingProvider) qport)

Я получаю:

java.lang.ClassCastException: com.demo.client.service.QuerySysStatPortType_Stub нельзя преобразовать в javax.xml.ws.BindingProvider

Любые предложения / помощь приветствуется. Заранее спасибо.

1 Ответ

1 голос
/ 02 апреля 2012

Я обнаружил, что:

  • ((javax.xml.ws.BindingProvider) qport) можно безопасно вызывать на интерфейсах WSDL, сгенерированных с помощью JAX-WS (wsimport)
  • ((javax.xml.rpc.Stub) qport) можно безопасно вызывать на JAX-RPC клиентах (созданных clientgen)

В моем случае я создал интерфейсы WSDL с clientgen (JAX-RPC), поэтому свойства можно установить так:

javax.xml.rpc.Stub stub = (javax.xml.rpc.Stub) qport;
stub._setProperty("KEY","Value");
...