2012-01-16 3 views
2

Я пытаюсь реализовать клиентский веб-сервис (AXIS 2 1.6.1) в JBoss 5.1.0 GA.Axis 2 (1.6.1) client webservice Basic Auth

Я создавал заглушки, и первый вызов (to mockService) отлично работает.

Теперь я хочу вызвать мой веб-сервис (без mockService), и мне нужно реализовать Basic-Authentication.

Я уже реализую базовый код аутентификации, и я почти уверен, что в коде отсутствует ошибка.

HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator(); 
basicAuth.setUsername("userName"); 
basicAuth.setPassword("password"); 
basicAuth.setPreemptiveAuthentication(true); 

stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, basicAuth); 

Поскольку я могу сделать вызов с использованием SOAP UI, я твердо верю, что моя проблема в том, что я haven't установить мой «Тип О-пароль» и «О TimeToLive» (я имею такое же ошибку когда я отключу эти свойства в SOAP-UI).

Я думаю, что мне может понадобиться поставить на сервер axis2.xml, чтобы поместить эти свойства, но ... Когда я добавляю свой файл конфигурации (в JBoss)? Или где я определяю путь к этому файлу? Или что-то еще?

Спасибо всем.

Примечание: Я попытался unsucessfully это решение: Adding User/Password to SOAPHeader for WebService client call with AXIS2

Моя ошибка является:

Exception in thread "main" org.apache.axis2.AxisFault: Internal Error (from server) 
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) 
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375) 
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) 
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
    at myPackage.process(MyStub.java:187) 

P.S- Обратите внимание, что веб-службы сервера обмениваться данными по протоколу HTTPS.

P.S.2 - Tks Эдвард

+0

я решить мою проблему, используя решение в этом посте: http://stackoverflow.com/questions/7910776/adding-user-password-to-soapheader-for-webservice-client-call-with-axis2 I был ли неправильный префикс в UsernameToken. После исправления этого он отлично работает, но это решение является более обходным решением. :( Проблема в первом решении заключается в том, что Axis2 doen't не включает в себя заголовок для запроса. Это ошибка Axis? – JMarques

ответ