2010-01-30 3 views
5

я должен соединиться с клиентом Java к WCF веб-службы, которая имеет следующие привязки конфигурации:Как подключить Java-клиент для службы WCF с помощью clientCredentialType = «Basic»

<basicHttpBinding> 
    <binding name="basicHttpBindingSecurity"> 
     <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Basic"/> 
     </security> 
    </binding> 
</basicHttpBinding> 

Я использую JAX-WS. Можете ли вы дать мне фрагмент кода, показывающий, как установить имя пользователя и пароль в Java-клиенте?

Я попытался это:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username"); 
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 

, но это не сработало. Я также пробовал:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://username:[email protected]:8090/MyService"); 

По-прежнему нет успеха.

Спасибо, Рафал

+0

+1 Для хорошо сформулированного и хорошо отформатированного вопроса. –

ответ

2

Oops! Извините ...

Первое решение работает, но я ошибся в настройке службы WCF. Так basicaly если у вас есть аналогичная проблема, уставшее это:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username"); 
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 

С наилучшими пожеланиями, Rafal

+0

Какая ошибка вы сделали в конфигурации WCF. Я пытаюсь вызвать службу WCF с помощью jax-ws-клиента, используя тот же подход, но я получаю 401 неподтвержденную ошибку, wherease же работает через .net-клиент – Abs